diff --git a/.gitignore b/.gitignore index 121f581..67d96fd 100755 --- a/.gitignore +++ b/.gitignore @@ -5,4 +5,4 @@ debug.log *.pyc staticfiles/ *.__pycache__.* -celerybeat-schedule +celerybeat-schedule* diff --git a/vpn/admin.py b/vpn/admin.py index 45faf4c..ac2b431 100644 --- a/vpn/admin.py +++ b/vpn/admin.py @@ -24,7 +24,9 @@ from .server_plugins import ( WireguardServer, WireguardServerAdmin, OutlineServer, - OutlineServerAdmin) + OutlineServerAdmin, + XrayCoreServer, + XrayCoreServerAdmin) @admin.register(TaskExecutionLog) @@ -246,7 +248,7 @@ class LastAccessFilter(admin.SimpleListFilter): @admin.register(Server) class ServerAdmin(PolymorphicParentModelAdmin): base_model = Server - child_models = (OutlineServer, WireguardServer) + child_models = (OutlineServer, WireguardServer, XrayCoreServer) list_display = ('name_with_icon', 'server_type', 'comment_short', 'user_stats', 'server_status_compact', 'registration_date') search_fields = ('name', 'comment') list_filter = ('server_type', ) @@ -682,6 +684,7 @@ class ServerAdmin(PolymorphicParentModelAdmin): icons = { 'outline': '🔵', 'wireguard': '🟢', + 'xray_core': '🟣', } icon = icons.get(obj.server_type, '') name_part = f"{icon} {obj.name}" if icon else obj.name @@ -772,6 +775,7 @@ class ServerAdmin(PolymorphicParentModelAdmin): server_type_icons = { 'outline': '🔵', 'wireguard': '🟢', + 'xray_core': '🟣', } icon = server_type_icons.get(obj.server_type, '⚪') @@ -894,7 +898,7 @@ class UserAdmin(admin.ModelAdmin): links = list(acl.links.all()) # Server header (no slow server status checks) - type_icon = '🔵' if server.server_type == 'outline' else '🟢' if server.server_type == 'wireguard' else '' + type_icon = '🔵' if server.server_type == 'outline' else '🟢' if server.server_type == 'wireguard' else '🟣' if server.server_type == 'xray_core' else '' html += f'
' html += f'
{type_icon} {server.name}
' @@ -969,7 +973,7 @@ class UserAdmin(admin.ModelAdmin): html += '
➕ Available Servers
' html += '
' for server in unassigned_servers: - type_icon = '🔵' if server.server_type == 'outline' else '🟢' if server.server_type == 'wireguard' else '' + type_icon = '🔵' if server.server_type == 'outline' else '🟢' if server.server_type == 'wireguard' else '🟣' if server.server_type == 'xray_core' else '' html += f'