mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-17 12:42:52 -06:00
Clean up plugin URL registration
This commit is contained in:
parent
dd9fc4173d
commit
cb344a3792
@ -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')
|
|
||||||
]
|
|
||||||
|
@ -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))
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user