1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00

Update plugin URL loading logic

This commit is contained in:
Jeremy Stretch
2020-03-20 15:51:14 -04:00
parent bc50c2aa55
commit ad1522f428

View File

@ -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 `<url_slug>/<path>`
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 `<url_slug>/<path>`
plugin_api_patterns.append(
path('{}/'.format(url_slug), include((urls.urlpatterns, app.label)))