From ad1522f42802dc3e08ade11022c4685fc32ce8d9 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Fri, 20 Mar 2020 15:51:14 -0400 Subject: [PATCH] Update plugin URL loading logic --- netbox/netbox/urls.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/netbox/netbox/urls.py b/netbox/netbox/urls.py index 651aef14a..657e3d6b4 100644 --- a/netbox/netbox/urls.py +++ b/netbox/netbox/urls.py @@ -8,6 +8,7 @@ from django.views.static import serve from drf_yasg import openapi from drf_yasg.views import get_schema_view +from extras.plugins import PluginConfig from netbox.views import APIRootView, HomeView, StaticMediaFailureView, SearchView from users.views import LoginView, LogoutView from .admin import admin_site @@ -76,11 +77,11 @@ plugin_patterns = [] plugin_api_patterns = [] for app in apps.get_app_configs(): # Loop over all apps look for installed plugins - if hasattr(app, 'NetBoxPluginMeta'): + if isinstance(app, PluginConfig): # Check if the plugin specifies any URLs if importlib.util.find_spec('{}.urls'.format(app.name)): urls = importlib.import_module('{}.urls'.format(app.name)) - url_slug = getattr(app.NetBoxPluginMeta, 'url_slug', app.label) + url_slug = getattr(app, 'url_slug') or app.label if hasattr(urls, 'urlpatterns'): # Mount URLs at `/` plugin_patterns.append( @@ -91,7 +92,7 @@ for app in apps.get_app_configs(): if importlib.util.find_spec('{}.api.urls'.format(app.name)): urls = importlib.import_module('{}.api.urls'.format(app.name)) if hasattr(urls, 'urlpatterns'): - url_slug = getattr(app.NetBoxPluginMeta, 'url_slug', app.label) + url_slug = getattr(app, 'url_slug') or app.label # Mount URLs at `/` plugin_api_patterns.append( path('{}/'.format(url_slug), include((urls.urlpatterns, app.label)))