refactor url definition into plugin

This commit is contained in:
Matthias 2021-11-20 12:54:51 +01:00
parent 4171fe42d9
commit 2f306d951f
No known key found for this signature in database
GPG Key ID: F50EF5741D33E076
3 changed files with 7 additions and 7 deletions

View File

@ -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')),

View File

@ -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):

View File

@ -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 = [