From 2f306d951f36c87c907eaf833ee0d19f98fcbd7a Mon Sep 17 00:00:00 2001 From: Matthias Date: Sat, 20 Nov 2021 12:54:51 +0100 Subject: [PATCH] refactor url definition into plugin --- InvenTree/InvenTree/urls.py | 4 ++-- InvenTree/plugin/apps.py | 5 ++--- InvenTree/plugin/urls.py | 5 +++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/InvenTree/InvenTree/urls.py b/InvenTree/InvenTree/urls.py index e74f34c956..2a70ea6e14 100644 --- a/InvenTree/InvenTree/urls.py +++ b/InvenTree/InvenTree/urls.py @@ -18,7 +18,7 @@ from part.urls import part_urls from stock.urls import stock_urls from build.urls import build_urls from order.urls import order_urls -from plugin.urls import plugin_urls, PLUGIN_BASE +from plugin.urls import plugin_urls, get_integration_urls from barcodes.api import barcode_api_urls from common.api import common_api_urls @@ -160,7 +160,7 @@ urlpatterns = [ # plugin urls url(r'^plugins/', include(plugin_urls)), - url(f'^{PLUGIN_BASE}/', include(([], 'plugin'))), # on startup we do not have any plugins enabled + get_integration_urls(), # appends currently loaded plugin urls = None url(r'^markdownx/', include('markdownx.urls')), diff --git a/InvenTree/plugin/apps.py b/InvenTree/plugin/apps.py index b7ed20f365..c518e185f2 100644 --- a/InvenTree/plugin/apps.py +++ b/InvenTree/plugin/apps.py @@ -385,15 +385,14 @@ class PluginAppConfig(AppConfig): def _update_urls(self): from InvenTree.urls import urlpatterns - from plugin.urls import PLUGIN_BASE, get_integration_urls + from plugin.urls import get_integration_urls for index, a in enumerate(urlpatterns): if hasattr(a, 'app_name'): if a.app_name == 'admin': urlpatterns[index] = url(r'^admin/', admin.site.urls, name='inventree-admin') elif a.app_name == 'plugin': - integ_urls = get_integration_urls() - urlpatterns[index] = url(f'^{PLUGIN_BASE}/', include((integ_urls, 'plugin'))) + urlpatterns[index] = get_integration_urls() clear_url_caches() def _reload_apps(self, force_reload: bool = False): diff --git a/InvenTree/plugin/urls.py b/InvenTree/plugin/urls.py index 2a6c64b73c..76de305ebc 100644 --- a/InvenTree/plugin/urls.py +++ b/InvenTree/plugin/urls.py @@ -2,18 +2,19 @@ URL lookup for plugin app """ from django.conf import settings +from django.conf.urls import url, include PLUGIN_BASE = 'plugin' # Constant for links def get_integration_urls(): - """collect all plugin urls""" + """returns a urlpattern that can be integrated into the global urls""" urls = [] for plugin in settings.INTEGRATION_PLUGINS.values(): if plugin.mixin_enabled('urls'): urls.append(plugin.urlpatterns) - return urls + return url(f'^{PLUGIN_BASE}/', include((urls, 'plugin'))) plugin_urls = [