diff --git a/InvenTree/InvenTree/settings.py b/InvenTree/InvenTree/settings.py index 0ca0c50735..8a44468c15 100644 --- a/InvenTree/InvenTree/settings.py +++ b/InvenTree/InvenTree/settings.py @@ -661,6 +661,6 @@ INTEGRATION_PLUGIN_LIST = {} for plugin in INTEGRATION_PLUGINS: plugin = plugin() INTEGRATION_PLUGIN_LIST[plugin.plugin_name()] = plugin - if plugin.module('settings') and plugin.has_settings: + if plugin.module_enabled('settings'): INTEGRATION_PLUGIN_SETTING[plugin.plugin_name()] = plugin.settingspatterns INTEGRATION_PLUGIN_SETTINGS.update(plugin.settingspatterns) diff --git a/InvenTree/InvenTree/urls.py b/InvenTree/InvenTree/urls.py index b5cd6c691e..ee26e518ef 100644 --- a/InvenTree/InvenTree/urls.py +++ b/InvenTree/InvenTree/urls.py @@ -133,7 +133,7 @@ interation_urls = [] for plugin in integration_plugins: # initialize plugin = plugin() - if plugin.module('urls') and plugin.has_urls: + if plugin.module_enabled('urls'): interation_urls.append(plugin.urlpatterns) urlpatterns = [ diff --git a/InvenTree/plugins/integration/integration.py b/InvenTree/plugins/integration/integration.py index c556e34f61..8977d7b826 100644 --- a/InvenTree/plugins/integration/integration.py +++ b/InvenTree/plugins/integration/integration.py @@ -15,7 +15,7 @@ class SettingsMixin: def __init__(self): super().__init__() - self.add_mixin('settings') + self.add_mixin('settings', 'has_settings') self.settings = self.setup_settings() def setup_settings(self): @@ -45,15 +45,15 @@ class UrlsMixin: def __init__(self): super().__init__() - self.add_mixin('urls') + self.add_mixin('urls', 'has_urls') self.urls = self.setup_urls() def setup_urls(self): """ setup url endpoints for this plugin """ - if self.urlpatterns: - return self.urlpatterns + if hasattr(self, 'URLS'): + return self.URLS return None @property @@ -86,10 +86,18 @@ class IntegrationPlugin(plugin.InvenTreePlugin): self.add_mixin('base') super().__init__() - def add_mixin(self, key: str): + def add_mixin(self, key: str, fnc_enabled=None): if not hasattr(self, 'mixins'): self.mixins = {} self.mixins[key] = True + if fnc_enabled: + self.mixins[key] = fnc_enabled def module(self, key): return key in self.mixins + + def module_enabled(self, key): + if self.module(key): + fnc_name = self.mixins.get(key) + return getattr(self, fnc_name, True) + return False