From 1571b99ed259b8b8be4a07c17a0c4fc451e0b1b9 Mon Sep 17 00:00:00 2001 From: Matthias Date: Wed, 11 May 2022 14:28:26 +0200 Subject: [PATCH] rename IntegrationPluginBase to InvenTreePlugin --- InvenTree/common/models.py | 4 ++-- InvenTree/plugin/__init__.py | 4 ++-- InvenTree/plugin/base/action/test_action.py | 8 +++---- .../plugin/base/integration/test_mixins.py | 24 +++++++++---------- .../builtin/action/simpleactionplugin.py | 4 ++-- .../builtin/barcodes/inventree_barcode.py | 4 ++-- .../builtin/integration/core_notifications.py | 4 ++-- InvenTree/plugin/models.py | 4 ++-- InvenTree/plugin/plugin.py | 6 ++--- InvenTree/plugin/registry.py | 4 ++-- .../plugin/samples/event/event_sample.py | 4 ++-- .../samples/integration/another_sample.py | 6 ++--- .../plugin/samples/integration/api_caller.py | 4 ++-- .../plugin/samples/integration/broken_file.py | 4 ++-- .../samples/integration/broken_sample.py | 4 ++-- .../integration/custom_panel_sample.py | 4 ++-- .../plugin/samples/integration/sample.py | 4 ++-- .../samples/integration/scheduled_task.py | 4 ++-- .../integration/test_scheduled_task.py | 4 ++-- InvenTree/plugin/test_plugin.py | 20 ++++++++-------- 20 files changed, 62 insertions(+), 62 deletions(-) diff --git a/InvenTree/common/models.py b/InvenTree/common/models.py index e50fb06b6e..d378c7616a 100644 --- a/InvenTree/common/models.py +++ b/InvenTree/common/models.py @@ -257,9 +257,9 @@ class BaseInvenTreeSetting(models.Model): plugin = kwargs.get('plugin', None) if plugin is not None: - from plugin import IntegrationPluginBase + from plugin import InvenTreePlugin - if issubclass(plugin.__class__, IntegrationPluginBase): + if issubclass(plugin.__class__, InvenTreePlugin): plugin = plugin.plugin_config() filters['plugin'] = plugin diff --git a/InvenTree/plugin/__init__.py b/InvenTree/plugin/__init__.py index 827072b5ae..3b2f9fe871 100644 --- a/InvenTree/plugin/__init__.py +++ b/InvenTree/plugin/__init__.py @@ -3,13 +3,13 @@ Utility file to enable simper imports """ from .registry import registry -from .plugin import IntegrationPluginBase +from .plugin import InvenTreePlugin from .helpers import MixinNotImplementedError, MixinImplementationError __all__ = [ 'registry', - 'IntegrationPluginBase', + 'InvenTreePlugin', 'MixinNotImplementedError', 'MixinImplementationError', ] diff --git a/InvenTree/plugin/base/action/test_action.py b/InvenTree/plugin/base/action/test_action.py index 273aaa8b94..24caf175fc 100644 --- a/InvenTree/plugin/base/action/test_action.py +++ b/InvenTree/plugin/base/action/test_action.py @@ -2,7 +2,7 @@ from django.test import TestCase -from plugin import IntegrationPluginBase +from plugin import InvenTreePlugin from plugin.mixins import ActionMixin @@ -11,11 +11,11 @@ class ActionMixinTests(TestCase): ACTION_RETURN = 'a action was performed' def setUp(self): - class SimplePlugin(ActionMixin, IntegrationPluginBase): + class SimplePlugin(ActionMixin, InvenTreePlugin): pass self.plugin = SimplePlugin('user') - class TestActionPlugin(ActionMixin, IntegrationPluginBase): + class TestActionPlugin(ActionMixin, InvenTreePlugin): """a action plugin""" ACTION_NAME = 'abc123' @@ -30,7 +30,7 @@ class ActionMixinTests(TestCase): self.action_plugin = TestActionPlugin('user') - class NameActionPlugin(ActionMixin, IntegrationPluginBase): + class NameActionPlugin(ActionMixin, InvenTreePlugin): PLUGIN_NAME = 'Aplugin' self.action_name = NameActionPlugin('user') diff --git a/InvenTree/plugin/base/integration/test_mixins.py b/InvenTree/plugin/base/integration/test_mixins.py index b611454d1b..2283a3a1d2 100644 --- a/InvenTree/plugin/base/integration/test_mixins.py +++ b/InvenTree/plugin/base/integration/test_mixins.py @@ -5,7 +5,7 @@ from django.conf import settings from django.urls import include, re_path from django.contrib.auth import get_user_model -from plugin import IntegrationPluginBase +from plugin import InvenTreePlugin from plugin.mixins import AppMixin, SettingsMixin, UrlsMixin, NavigationMixin, APICallMixin from plugin.urls import PLUGIN_BASE @@ -26,11 +26,11 @@ class SettingsMixinTest(BaseMixinDefinition, TestCase): TEST_SETTINGS = {'SETTING1': {'default': '123', }} def setUp(self): - class SettingsCls(SettingsMixin, IntegrationPluginBase): + class SettingsCls(SettingsMixin, InvenTreePlugin): SETTINGS = self.TEST_SETTINGS self.mixin = SettingsCls() - class NoSettingsCls(SettingsMixin, IntegrationPluginBase): + class NoSettingsCls(SettingsMixin, InvenTreePlugin): pass self.mixin_nothing = NoSettingsCls() @@ -61,13 +61,13 @@ class UrlsMixinTest(BaseMixinDefinition, TestCase): MIXIN_ENABLE_CHECK = 'has_urls' def setUp(self): - class UrlsCls(UrlsMixin, IntegrationPluginBase): + class UrlsCls(UrlsMixin, InvenTreePlugin): def test(): return 'ccc' URLS = [re_path('testpath', test, name='test'), ] self.mixin = UrlsCls() - class NoUrlsCls(UrlsMixin, IntegrationPluginBase): + class NoUrlsCls(UrlsMixin, InvenTreePlugin): pass self.mixin_nothing = NoUrlsCls() @@ -100,7 +100,7 @@ class AppMixinTest(BaseMixinDefinition, TestCase): MIXIN_ENABLE_CHECK = 'has_app' def setUp(self): - class TestCls(AppMixin, IntegrationPluginBase): + class TestCls(AppMixin, InvenTreePlugin): pass self.mixin = TestCls() @@ -115,14 +115,14 @@ class NavigationMixinTest(BaseMixinDefinition, TestCase): MIXIN_ENABLE_CHECK = 'has_naviation' def setUp(self): - class NavigationCls(NavigationMixin, IntegrationPluginBase): + class NavigationCls(NavigationMixin, InvenTreePlugin): NAVIGATION = [ {'name': 'aa', 'link': 'plugin:test:test_view'}, ] NAVIGATION_TAB_NAME = 'abcd1' self.mixin = NavigationCls() - class NothingNavigationCls(NavigationMixin, IntegrationPluginBase): + class NothingNavigationCls(NavigationMixin, InvenTreePlugin): pass self.nothing_mixin = NothingNavigationCls() @@ -131,7 +131,7 @@ class NavigationMixinTest(BaseMixinDefinition, TestCase): self.assertEqual(self.mixin.navigation, [{'name': 'aa', 'link': 'plugin:test:test_view'}, ]) # check wrong links fails with self.assertRaises(NotImplementedError): - class NavigationCls(NavigationMixin, IntegrationPluginBase): + class NavigationCls(NavigationMixin, InvenTreePlugin): NAVIGATION = ['aa', 'aa'] NavigationCls() @@ -146,7 +146,7 @@ class APICallMixinTest(BaseMixinDefinition, TestCase): MIXIN_ENABLE_CHECK = 'has_api_call' def setUp(self): - class MixinCls(APICallMixin, SettingsMixin, IntegrationPluginBase): + class MixinCls(APICallMixin, SettingsMixin, InvenTreePlugin): PLUGIN_NAME = "Sample API Caller" SETTINGS = { @@ -170,11 +170,11 @@ class APICallMixinTest(BaseMixinDefinition, TestCase): return self.api_call('api/users/2') self.mixin = MixinCls() - class WrongCLS(APICallMixin, IntegrationPluginBase): + class WrongCLS(APICallMixin, InvenTreePlugin): pass self.mixin_wrong = WrongCLS() - class WrongCLS2(APICallMixin, IntegrationPluginBase): + class WrongCLS2(APICallMixin, InvenTreePlugin): API_URL_SETTING = 'test' self.mixin_wrong2 = WrongCLS2() diff --git a/InvenTree/plugin/builtin/action/simpleactionplugin.py b/InvenTree/plugin/builtin/action/simpleactionplugin.py index e9c7c48386..ef69511cfe 100644 --- a/InvenTree/plugin/builtin/action/simpleactionplugin.py +++ b/InvenTree/plugin/builtin/action/simpleactionplugin.py @@ -1,10 +1,10 @@ # -*- coding: utf-8 -*- """sample implementation for ActionMixin""" -from plugin import IntegrationPluginBase +from plugin import InvenTreePlugin from plugin.mixins import ActionMixin -class SimpleActionPlugin(ActionMixin, IntegrationPluginBase): +class SimpleActionPlugin(ActionMixin, InvenTreePlugin): """ An EXTREMELY simple action plugin which demonstrates the capability of the ActionMixin class diff --git a/InvenTree/plugin/builtin/barcodes/inventree_barcode.py b/InvenTree/plugin/builtin/barcodes/inventree_barcode.py index 939bf12c08..6b84f4a8c2 100644 --- a/InvenTree/plugin/builtin/barcodes/inventree_barcode.py +++ b/InvenTree/plugin/builtin/barcodes/inventree_barcode.py @@ -13,7 +13,7 @@ references model objects actually exist in the database. import json -from plugin import IntegrationPluginBase +from plugin import InvenTreePlugin from plugin.mixins import BarcodeMixin from stock.models import StockItem, StockLocation @@ -22,7 +22,7 @@ from part.models import Part from rest_framework.exceptions import ValidationError -class InvenTreeBarcodePlugin(BarcodeMixin, IntegrationPluginBase): +class InvenTreeBarcodePlugin(BarcodeMixin, InvenTreePlugin): PLUGIN_NAME = "InvenTreeBarcode" diff --git a/InvenTree/plugin/builtin/integration/core_notifications.py b/InvenTree/plugin/builtin/integration/core_notifications.py index a26c69e877..dbde7747e9 100644 --- a/InvenTree/plugin/builtin/integration/core_notifications.py +++ b/InvenTree/plugin/builtin/integration/core_notifications.py @@ -5,7 +5,7 @@ from django.utils.translation import ugettext_lazy as _ from allauth.account.models import EmailAddress -from plugin import IntegrationPluginBase +from plugin import InvenTreePlugin from plugin.mixins import BulkNotificationMethod, SettingsMixin import InvenTree.tasks @@ -15,7 +15,7 @@ class PlgMixin: return CoreNotificationsPlugin -class CoreNotificationsPlugin(SettingsMixin, IntegrationPluginBase): +class CoreNotificationsPlugin(SettingsMixin, InvenTreePlugin): """ Core notification methods for InvenTree """ diff --git a/InvenTree/plugin/models.py b/InvenTree/plugin/models.py index a3cc25ec96..1c5dff6b68 100644 --- a/InvenTree/plugin/models.py +++ b/InvenTree/plugin/models.py @@ -11,7 +11,7 @@ from django.contrib.auth.models import User import common.models -from plugin import IntegrationPluginBase, registry +from plugin import InvenTreePlugin, registry class PluginConfig(models.Model): @@ -135,7 +135,7 @@ class PluginSetting(common.models.GenericReferencedSettingClass, common.models.B if plugin: - if issubclass(plugin.__class__, IntegrationPluginBase): + if issubclass(plugin.__class__, InvenTreePlugin): plugin = plugin.plugin_config() kwargs['settings'] = registry.mixins_settings.get(plugin.key, {}) diff --git a/InvenTree/plugin/plugin.py b/InvenTree/plugin/plugin.py index 0f6b5d9675..45acb55e65 100644 --- a/InvenTree/plugin/plugin.py +++ b/InvenTree/plugin/plugin.py @@ -142,11 +142,11 @@ class MixinBase: return mixins -class IntegrationPluginBase(MixinBase, InvenTreePluginBase): +class InvenTreePlugin(MixinBase, InvenTreePluginBase): """ - The IntegrationPluginBase class is used to integrate with 3rd party software + The InvenTreePlugin class is used to integrate with 3rd party software - DO NOT USE THIS DIRECTLY, USE plugin.IntegrationPluginBase + DO NOT USE THIS DIRECTLY, USE plugin.InvenTreePlugin """ AUTHOR = None diff --git a/InvenTree/plugin/registry.py b/InvenTree/plugin/registry.py index 7c2c538103..4975144bfc 100644 --- a/InvenTree/plugin/registry.py +++ b/InvenTree/plugin/registry.py @@ -25,7 +25,7 @@ from django.utils.text import slugify from maintenance_mode.core import maintenance_mode_on from maintenance_mode.core import get_maintenance_mode, set_maintenance_mode -from .plugin import IntegrationPluginBase +from .plugin import InvenTreePlugin from .helpers import handle_error, log_error, get_plugins, IntegrationPluginError @@ -204,7 +204,7 @@ class PluginsRegistry: # Collect plugins from paths for plugin in settings.PLUGIN_DIRS: - modules = get_plugins(importlib.import_module(plugin), IntegrationPluginBase) + modules = get_plugins(importlib.import_module(plugin), InvenTreePlugin) if modules: [self.plugin_modules.append(item) for item in modules] diff --git a/InvenTree/plugin/samples/event/event_sample.py b/InvenTree/plugin/samples/event/event_sample.py index dddb97da1d..2e629a48a4 100644 --- a/InvenTree/plugin/samples/event/event_sample.py +++ b/InvenTree/plugin/samples/event/event_sample.py @@ -2,11 +2,11 @@ Sample plugin which responds to events """ -from plugin import IntegrationPluginBase +from plugin import InvenTreePlugin from plugin.mixins import EventMixin -class EventPluginSample(EventMixin, IntegrationPluginBase): +class EventPluginSample(EventMixin, InvenTreePlugin): """ A sample plugin which provides supports for triggered events """ diff --git a/InvenTree/plugin/samples/integration/another_sample.py b/InvenTree/plugin/samples/integration/another_sample.py index 9b3a3d8ec7..d36dbf13e8 100644 --- a/InvenTree/plugin/samples/integration/another_sample.py +++ b/InvenTree/plugin/samples/integration/another_sample.py @@ -1,9 +1,9 @@ """sample implementation for IntegrationPlugin""" -from plugin import IntegrationPluginBase +from plugin import InvenTreePlugin from plugin.mixins import UrlsMixin -class NoIntegrationPlugin(IntegrationPluginBase): +class NoIntegrationPlugin(InvenTreePlugin): """ An basic integration plugin """ @@ -11,7 +11,7 @@ class NoIntegrationPlugin(IntegrationPluginBase): PLUGIN_NAME = "NoIntegrationPlugin" -class WrongIntegrationPlugin(UrlsMixin, IntegrationPluginBase): +class WrongIntegrationPlugin(UrlsMixin, InvenTreePlugin): """ An basic integration plugin """ diff --git a/InvenTree/plugin/samples/integration/api_caller.py b/InvenTree/plugin/samples/integration/api_caller.py index 36e1583ba0..3de07508a0 100644 --- a/InvenTree/plugin/samples/integration/api_caller.py +++ b/InvenTree/plugin/samples/integration/api_caller.py @@ -1,11 +1,11 @@ """ Sample plugin for calling an external API """ -from plugin import IntegrationPluginBase +from plugin import InvenTreePlugin from plugin.mixins import APICallMixin, SettingsMixin -class SampleApiCallerPlugin(APICallMixin, SettingsMixin, IntegrationPluginBase): +class SampleApiCallerPlugin(APICallMixin, SettingsMixin, InvenTreePlugin): """ A small api call sample """ diff --git a/InvenTree/plugin/samples/integration/broken_file.py b/InvenTree/plugin/samples/integration/broken_file.py index c575cfb623..f28c72bef6 100644 --- a/InvenTree/plugin/samples/integration/broken_file.py +++ b/InvenTree/plugin/samples/integration/broken_file.py @@ -1,8 +1,8 @@ """sample of a broken python file that will be ignored on import""" -from plugin import IntegrationPluginBase +from plugin import InvenTreePlugin -class BrokenFileIntegrationPlugin(IntegrationPluginBase): +class BrokenFileIntegrationPlugin(InvenTreePlugin): """ An very broken integration plugin """ diff --git a/InvenTree/plugin/samples/integration/broken_sample.py b/InvenTree/plugin/samples/integration/broken_sample.py index 8901d83dfd..50aecc3c35 100644 --- a/InvenTree/plugin/samples/integration/broken_sample.py +++ b/InvenTree/plugin/samples/integration/broken_sample.py @@ -1,8 +1,8 @@ """sample of a broken integration plugin""" -from plugin import IntegrationPluginBase +from plugin import InvenTreePlugin -class BrokenIntegrationPlugin(IntegrationPluginBase): +class BrokenIntegrationPlugin(InvenTreePlugin): """ An very broken integration plugin """ diff --git a/InvenTree/plugin/samples/integration/custom_panel_sample.py b/InvenTree/plugin/samples/integration/custom_panel_sample.py index 73ca863576..36793ddf6a 100644 --- a/InvenTree/plugin/samples/integration/custom_panel_sample.py +++ b/InvenTree/plugin/samples/integration/custom_panel_sample.py @@ -2,14 +2,14 @@ Sample plugin which renders custom panels on certain pages """ -from plugin import IntegrationPluginBase +from plugin import InvenTreePlugin from plugin.mixins import PanelMixin, SettingsMixin from part.views import PartDetail from stock.views import StockLocationDetail -class CustomPanelSample(PanelMixin, SettingsMixin, IntegrationPluginBase): +class CustomPanelSample(PanelMixin, SettingsMixin, InvenTreePlugin): """ A sample plugin which renders some custom panels. """ diff --git a/InvenTree/plugin/samples/integration/sample.py b/InvenTree/plugin/samples/integration/sample.py index 2df3bc116a..115a943f87 100644 --- a/InvenTree/plugin/samples/integration/sample.py +++ b/InvenTree/plugin/samples/integration/sample.py @@ -2,7 +2,7 @@ Sample implementations for IntegrationPlugin """ -from plugin import IntegrationPluginBase +from plugin import InvenTreePlugin from plugin.mixins import AppMixin, SettingsMixin, UrlsMixin, NavigationMixin from django.http import HttpResponse @@ -10,7 +10,7 @@ from django.utils.translation import gettext_lazy as _ from django.urls import include, re_path -class SampleIntegrationPlugin(AppMixin, SettingsMixin, UrlsMixin, NavigationMixin, IntegrationPluginBase): +class SampleIntegrationPlugin(AppMixin, SettingsMixin, UrlsMixin, NavigationMixin, InvenTreePlugin): """ A full integration plugin example """ diff --git a/InvenTree/plugin/samples/integration/scheduled_task.py b/InvenTree/plugin/samples/integration/scheduled_task.py index 9ec70e2795..fe1069efb8 100644 --- a/InvenTree/plugin/samples/integration/scheduled_task.py +++ b/InvenTree/plugin/samples/integration/scheduled_task.py @@ -2,7 +2,7 @@ Sample plugin which supports task scheduling """ -from plugin import IntegrationPluginBase +from plugin import InvenTreePlugin from plugin.mixins import ScheduleMixin, SettingsMixin @@ -15,7 +15,7 @@ def print_world(): print("World") # pragma: no cover -class ScheduledTaskPlugin(ScheduleMixin, SettingsMixin, IntegrationPluginBase): +class ScheduledTaskPlugin(ScheduleMixin, SettingsMixin, InvenTreePlugin): """ A sample plugin which provides support for scheduled tasks """ diff --git a/InvenTree/plugin/samples/integration/test_scheduled_task.py b/InvenTree/plugin/samples/integration/test_scheduled_task.py index 314f3f3f1f..c4d234b0ba 100644 --- a/InvenTree/plugin/samples/integration/test_scheduled_task.py +++ b/InvenTree/plugin/samples/integration/test_scheduled_task.py @@ -2,7 +2,7 @@ from django.test import TestCase -from plugin import registry, IntegrationPluginBase +from plugin import registry, InvenTreePlugin from plugin.helpers import MixinImplementationError from plugin.registry import call_function from plugin.mixins import ScheduleMixin @@ -53,7 +53,7 @@ class ScheduledTaskPluginTests(TestCase): def test_init(self): """Check that all MixinImplementationErrors raise""" - class Base(ScheduleMixin, IntegrationPluginBase): + class Base(ScheduleMixin, InvenTreePlugin): PLUGIN_NAME = 'APlugin' class NoSchedules(Base): diff --git a/InvenTree/plugin/test_plugin.py b/InvenTree/plugin/test_plugin.py index 601c557a1a..09adbfd2da 100644 --- a/InvenTree/plugin/test_plugin.py +++ b/InvenTree/plugin/test_plugin.py @@ -9,8 +9,8 @@ from django.test import TestCase from plugin.samples.integration.sample import SampleIntegrationPlugin from plugin.samples.integration.another_sample import WrongIntegrationPlugin, NoIntegrationPlugin import plugin.templatetags.plugin_extras as plugin_tags -from plugin import registry, IntegrationPluginBase -from plugin.plugin import IntegrationPluginBase +from plugin import registry, InvenTreePlugin +from plugin.plugin import InvenTreePlugin class PluginTagTests(TestCase): @@ -58,24 +58,24 @@ class PluginTagTests(TestCase): self.assertEqual(plugin_tags.plugin_errors(), registry.errors) -class IntegrationPluginBaseTests(TestCase): - """ Tests for IntegrationPluginBase """ +class InvenTreePluginTests(TestCase): + """ Tests for InvenTreePlugin """ def setUp(self): - self.plugin = IntegrationPluginBase() + self.plugin = InvenTreePlugin() - class NamedPlugin(IntegrationPluginBase): + class NamedPlugin(InvenTreePlugin): """a named plugin""" PLUGIN_NAME = 'abc123' self.named_plugin = NamedPlugin() - class SimpeIntegrationPluginBase(IntegrationPluginBase): + class SimpleInvenTreePlugin(InvenTreePlugin): PLUGIN_NAME = 'SimplePlugin' - self.plugin_simple = SimpeIntegrationPluginBase() + self.plugin_simple = SimpleInvenTreePlugin() - class NameIntegrationPluginBase(IntegrationPluginBase): + class NameInvenTreePlugin(InvenTreePlugin): PLUGIN_NAME = 'Aplugin' PLUGIN_SLUG = 'a' PLUGIN_TITLE = 'a titel' @@ -86,7 +86,7 @@ class IntegrationPluginBaseTests(TestCase): WEBSITE = 'http://aa.bb/cc' LICENSE = 'MIT' - self.plugin_name = NameIntegrationPluginBase() + self.plugin_name = NameInvenTreePlugin() self.plugin_sample = SampleIntegrationPlugin() def test_basic_plugin_init(self):