Просмотр исходного кода

Clean up plugin URL registration

Jeremy Stretch 5 лет назад
Родитель
Сommit
cb344a3792
2 измененных файлов с 12 добавлено и 20 удалено
  1. 10 15
      netbox/extras/plugins/urls.py
  2. 2 5
      netbox/netbox/urls.py

+ 10 - 15
netbox/extras/plugins/urls.py

@@ -6,16 +6,22 @@ from django.utils.module_loading import import_string
 
 
 from . import views
 from . import views
 
 
-# Plugins
+# Initialize URL base, API, and admin URL patterns for plugins
 plugin_patterns = []
 plugin_patterns = []
-plugin_api_patterns = []
+plugin_api_patterns = [
+    path('', views.PluginsAPIRootView.as_view(), name='api-root'),
+    path('installed-plugins/', views.InstalledPluginsAPIView.as_view(), name='plugins-list')
+]
+plugin_admin_patterns = [
+    path('installed-plugins/', views.installed_plugins_admin_view, name='plugins_list')
+]
 
 
+# Register base/API URL patterns for each plugin
 for plugin in settings.PLUGINS:
 for plugin in settings.PLUGINS:
     app = apps.get_app_config(plugin)
     app = apps.get_app_config(plugin)
-
     base_url = getattr(app, 'base_url') or app.label
     base_url = getattr(app, 'base_url') or app.label
 
 
-    # Check if the plugin specifies any URLs
+    # Check if the plugin specifies any base URLs
     try:
     try:
         urlpatterns = import_string(f"{plugin}.urls.urlpatterns")
         urlpatterns = import_string(f"{plugin}.urls.urlpatterns")
         plugin_patterns.append(
         plugin_patterns.append(
@@ -32,14 +38,3 @@ for plugin in settings.PLUGINS:
         )
         )
     except ImportError:
     except ImportError:
         pass
         pass
-
-# Plugin list admin view
-admin_plugin_patterns = [
-    path('', views.installed_plugins_admin_view, name='plugins_list')
-]
-
-# Plugin list API view
-plugin_api_patterns += [
-    path('', views.PluginsAPIRootView.as_view(), name='api-root'),
-    path('installed-plugins/', views.InstalledPluginsAPIView.as_view(), name='plugins-list')
-]

+ 2 - 5
netbox/netbox/urls.py

@@ -1,6 +1,3 @@
-import importlib
-
-from django.apps import apps
 from django.conf import settings
 from django.conf import settings
 from django.conf.urls import include
 from django.conf.urls import include
 from django.urls import path, re_path, reverse
 from django.urls import path, re_path, reverse
@@ -9,7 +6,7 @@ from django.views.static import serve
 from drf_yasg import openapi
 from drf_yasg import openapi
 from drf_yasg.views import get_schema_view
 from drf_yasg.views import get_schema_view
 
 
-from extras.plugins.urls import admin_plugin_patterns, plugin_patterns, plugin_api_patterns
+from extras.plugins.urls import plugin_admin_patterns, plugin_patterns, plugin_api_patterns
 from netbox.views import APIRootView, HomeView, StaticMediaFailureView, SearchView
 from netbox.views import APIRootView, HomeView, StaticMediaFailureView, SearchView
 from users.views import LoginView, LogoutView
 from users.views import LoginView, LogoutView
 from .admin import admin_site
 from .admin import admin_site
@@ -88,7 +85,7 @@ _patterns = [
     # Plugins
     # Plugins
     path('plugins/', include((plugin_patterns, 'plugins'))),
     path('plugins/', include((plugin_patterns, 'plugins'))),
     path('api/plugins/', include((plugin_api_patterns, 'plugins-api'))),
     path('api/plugins/', include((plugin_api_patterns, 'plugins-api'))),
-    path('admin/plugins/installed-plugins/', include(admin_plugin_patterns))
+    path('admin/plugins/', include(plugin_admin_patterns))
 ]
 ]