diff --git a/src/backend/InvenTree/plugin/base/event/events.py b/src/backend/InvenTree/plugin/base/event/events.py index 4508f72e73..3596b3711c 100644 --- a/src/backend/InvenTree/plugin/base/event/events.py +++ b/src/backend/InvenTree/plugin/base/event/events.py @@ -12,6 +12,7 @@ import InvenTree.exceptions from common.settings import get_global_setting from InvenTree.ready import canAppAccessDatabase, isImportingData from InvenTree.tasks import offload_task +from plugin import PluginMixinEnum from plugin.registry import registry tracer = trace.get_tracer(__name__) @@ -73,7 +74,7 @@ def register_event(event, *args, **kwargs): with transaction.atomic(): for slug, plugin in registry.plugins.items(): - if not plugin.mixin_enabled('events'): + if not plugin.mixin_enabled(PluginMixinEnum.EVENTS): continue # Only allow event registering for 'active' plugins diff --git a/src/backend/InvenTree/plugin/base/integration/AppMixin.py b/src/backend/InvenTree/plugin/base/integration/AppMixin.py index e0819cb30f..532cc2578e 100644 --- a/src/backend/InvenTree/plugin/base/integration/AppMixin.py +++ b/src/backend/InvenTree/plugin/base/integration/AppMixin.py @@ -57,7 +57,7 @@ class AppMixin: # add them to the INSTALLED_APPS for _key, plugin in plugins: - if plugin.mixin_enabled('app'): + if plugin.mixin_enabled(PluginMixinEnum.APP): plugin_path = cls._get_plugin_path(plugin) if plugin_path not in settings.INSTALLED_APPS: settings.INSTALLED_APPS += [plugin_path] diff --git a/src/backend/InvenTree/plugin/base/integration/ScheduleMixin.py b/src/backend/InvenTree/plugin/base/integration/ScheduleMixin.py index 8adaf9a2f6..152f95887c 100644 --- a/src/backend/InvenTree/plugin/base/integration/ScheduleMixin.py +++ b/src/backend/InvenTree/plugin/base/integration/ScheduleMixin.py @@ -67,7 +67,10 @@ class ScheduleMixin: if settings.PLUGIN_TESTING or get_global_setting('ENABLE_PLUGINS_SCHEDULE'): for _key, plugin in plugins: - if plugin.mixin_enabled('schedule') and plugin.is_active(): + if ( + plugin.mixin_enabled(PluginMixinEnum.SCHEDULE) + and plugin.is_active() + ): # Only active tasks for plugins which are enabled plugin.register_tasks() task_keys += plugin.get_task_names() diff --git a/src/backend/InvenTree/plugin/base/integration/SettingsMixin.py b/src/backend/InvenTree/plugin/base/integration/SettingsMixin.py index 989e1e24b8..215795718a 100644 --- a/src/backend/InvenTree/plugin/base/integration/SettingsMixin.py +++ b/src/backend/InvenTree/plugin/base/integration/SettingsMixin.py @@ -47,7 +47,7 @@ class SettingsMixin: registry.mixins_settings = {} for slug, plugin in plugins: - if plugin.mixin_enabled('settings'): + if plugin.mixin_enabled(PluginMixinEnum.SETTINGS): plugin_setting = plugin.settings registry.mixins_settings[slug] = plugin_setting diff --git a/src/backend/InvenTree/plugin/base/integration/UrlsMixin.py b/src/backend/InvenTree/plugin/base/integration/UrlsMixin.py index 499b163775..654a4fb7d2 100644 --- a/src/backend/InvenTree/plugin/base/integration/UrlsMixin.py +++ b/src/backend/InvenTree/plugin/base/integration/UrlsMixin.py @@ -49,7 +49,7 @@ class UrlsMixin: urls_changed = False # check whether an activated plugin extends UrlsMixin for _key, plugin in plugins: - if plugin.mixin_enabled('urls'): + if plugin.mixin_enabled(PluginMixinEnum.URLS): urls_changed = True # if apps were changed or force loading base apps -> reload if urls_changed or force_reload or full_reload: diff --git a/src/backend/InvenTree/plugin/urls.py b/src/backend/InvenTree/plugin/urls.py index 5d6485e4ec..406e6cee97 100644 --- a/src/backend/InvenTree/plugin/urls.py +++ b/src/backend/InvenTree/plugin/urls.py @@ -4,6 +4,7 @@ from django.conf import settings from django.urls import include, re_path from common.validators import get_global_setting +from plugin import PluginMixinEnum PLUGIN_BASE = 'plugin' # Constant for links @@ -16,7 +17,7 @@ def get_plugin_urls(): if get_global_setting('ENABLE_PLUGINS_URL', False) or settings.PLUGIN_TESTING_SETUP: for plugin in registry.plugins.values(): - if plugin.mixin_enabled('urls'): + if plugin.mixin_enabled(PluginMixinEnum.URLS): urls.append(plugin.urlpatterns) return re_path(f'^{PLUGIN_BASE}/', include((urls, 'plugin'))) diff --git a/src/backend/InvenTree/report/api.py b/src/backend/InvenTree/report/api.py index b873cde37f..d80240ba16 100644 --- a/src/backend/InvenTree/report/api.py +++ b/src/backend/InvenTree/report/api.py @@ -11,8 +11,6 @@ from django_filters.rest_framework import DjangoFilterBackend from rest_framework.generics import GenericAPIView from rest_framework.response import Response -import InvenTree.exceptions -import InvenTree.helpers import InvenTree.permissions import report.helpers import report.models @@ -22,6 +20,7 @@ from common.serializers import DataOutputSerializer from InvenTree.api import MetadataView from InvenTree.filters import InvenTreeSearchFilter from InvenTree.mixins import ListCreateAPI, RetrieveUpdateDestroyAPI +from plugin import PluginMixinEnum from plugin.builtin.labels.inventree_label import InvenTreeLabelPlugin @@ -121,7 +120,7 @@ class LabelPrint(GenericAPIView): error = _('Plugin not found') elif not plugin.is_active(): error = _('Plugin is not active') - elif not plugin.mixin_enabled('labels'): + elif not plugin.mixin_enabled(PluginMixinEnum.LABELS): error = _('Plugin does not support label printing') if error: