mirror of
				https://github.com/inventree/InvenTree.git
				synced 2025-10-31 05:05:42 +00:00 
			
		
		
		
	rename IntegrationPluginBase to InvenTreePlugin
This commit is contained in:
		| @@ -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 | ||||
|   | ||||
| @@ -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', | ||||
| ] | ||||
|   | ||||
| @@ -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') | ||||
|   | ||||
| @@ -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() | ||||
|  | ||||
|   | ||||
| @@ -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 | ||||
|   | ||||
| @@ -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" | ||||
|  | ||||
|   | ||||
| @@ -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 | ||||
|     """ | ||||
|   | ||||
| @@ -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, {}) | ||||
|   | ||||
| @@ -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 | ||||
|   | ||||
| @@ -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] | ||||
|  | ||||
|   | ||||
| @@ -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 | ||||
|     """ | ||||
|   | ||||
| @@ -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 | ||||
|     """ | ||||
|   | ||||
| @@ -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 | ||||
|     """ | ||||
|   | ||||
| @@ -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 | ||||
|     """ | ||||
|   | ||||
| @@ -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 | ||||
|     """ | ||||
|   | ||||
| @@ -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. | ||||
|     """ | ||||
|   | ||||
| @@ -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 | ||||
|     """ | ||||
|   | ||||
| @@ -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 | ||||
|     """ | ||||
|   | ||||
| @@ -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): | ||||
|   | ||||
| @@ -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): | ||||
|   | ||||
		Reference in New Issue
	
	Block a user