2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-05-13 10:33:07 +00:00

Mixin cleanup (#9142)

* Remove legacy SettingsContentMixin

- Only used for rendering into old UI
- No longer useful

* Refactor path for NavigationMixin

* Fix typos

* Fix borked import
This commit is contained in:
Oliver 2025-02-22 17:13:29 +11:00 committed by GitHub
parent e447e4037b
commit 74e3122581
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 7 additions and 33 deletions

View File

@ -51,26 +51,3 @@ class NavigationMixin:
def navigation_icon(self): def navigation_icon(self):
"""Icon-name for navigation tab.""" """Icon-name for navigation tab."""
return getattr(self, 'NAVIGATION_TAB_ICON', 'fas fa-question') return getattr(self, 'NAVIGATION_TAB_ICON', 'fas fa-question')
class SettingsContentMixin:
"""Mixin which allows integration of custom HTML content into a plugins settings page.
The 'get_settings_content' method must return the HTML content to appear in the section
"""
class MixinMeta:
"""Meta for mixin."""
MIXIN_NAME = 'SettingsContent'
def __init__(self):
"""Register mixin."""
super().__init__()
self.add_mixin('settingscontent', True, __class__)
def get_settings_content(self, view, request):
"""This method *must* be implemented by the plugin class."""
raise MixinNotImplementedError(
f"{__class__} is missing the 'get_settings_content' method"
)

View File

@ -23,7 +23,7 @@ class BaseMixinDefinition:
"""Mixin to test the meta functions of all mixins.""" """Mixin to test the meta functions of all mixins."""
def test_mixin_name(self): def test_mixin_name(self):
"""Test that the mixin registers itseld correctly.""" """Test that the mixin registers itself correctly."""
# mixin name # mixin name
self.assertIn( self.assertIn(
self.MIXIN_NAME, self.MIXIN_NAME,
@ -154,7 +154,7 @@ class NavigationMixinTest(BaseMixinDefinition, TestCase):
MIXIN_HUMAN_NAME = 'Navigation Links' MIXIN_HUMAN_NAME = 'Navigation Links'
MIXIN_NAME = 'navigation' MIXIN_NAME = 'navigation'
MIXIN_ENABLE_CHECK = 'has_naviation' MIXIN_ENABLE_CHECK = 'has_navigation'
def setUp(self): def setUp(self):
"""Setup for all tests.""" """Setup for all tests."""

View File

@ -11,7 +11,7 @@ import InvenTree.helpers
import InvenTree.helpers_email import InvenTree.helpers_email
import InvenTree.tasks import InvenTree.tasks
from plugin import InvenTreePlugin, registry from plugin import InvenTreePlugin, registry
from plugin.mixins import BulkNotificationMethod, SettingsContentMixin, SettingsMixin from plugin.mixins import BulkNotificationMethod, SettingsMixin
class PlgMixin: class PlgMixin:
@ -25,9 +25,7 @@ class PlgMixin:
return InvenTreeCoreNotificationsPlugin return InvenTreeCoreNotificationsPlugin
class InvenTreeCoreNotificationsPlugin( class InvenTreeCoreNotificationsPlugin(SettingsMixin, InvenTreePlugin):
SettingsContentMixin, SettingsMixin, InvenTreePlugin
):
"""Core notification methods for InvenTree.""" """Core notification methods for InvenTree."""
NAME = 'InvenTreeCoreNotificationsPlugin' NAME = 'InvenTreeCoreNotificationsPlugin'
@ -70,7 +68,7 @@ class InvenTreeCoreNotificationsPlugin(
""" """
class EmailNotification(PlgMixin, BulkNotificationMethod): class EmailNotification(PlgMixin, BulkNotificationMethod):
"""Notificationmethod for delivery via Email.""" """Notification method for delivery via Email."""
METHOD_NAME = 'mail' METHOD_NAME = 'mail'
METHOD_ICON = 'fa-envelope' METHOD_ICON = 'fa-envelope'
@ -123,7 +121,7 @@ class InvenTreeCoreNotificationsPlugin(
return True return True
class SlackNotification(PlgMixin, BulkNotificationMethod): class SlackNotification(PlgMixin, BulkNotificationMethod):
"""Notificationmethod for delivery via Slack channel messages.""" """Notification method for delivery via Slack channel messages."""
METHOD_NAME = 'slack' METHOD_NAME = 'slack'
METHOD_ICON = 'fa-envelope' METHOD_ICON = 'fa-envelope'

View File

@ -8,7 +8,7 @@ from plugin.base.icons.mixins import IconPackMixin
from plugin.base.integration.APICallMixin import APICallMixin from plugin.base.integration.APICallMixin import APICallMixin
from plugin.base.integration.AppMixin import AppMixin from plugin.base.integration.AppMixin import AppMixin
from plugin.base.integration.CurrencyExchangeMixin import CurrencyExchangeMixin from plugin.base.integration.CurrencyExchangeMixin import CurrencyExchangeMixin
from plugin.base.integration.mixins import NavigationMixin, SettingsContentMixin from plugin.base.integration.NavigationMixin import NavigationMixin
from plugin.base.integration.ReportMixin import ReportMixin from plugin.base.integration.ReportMixin import ReportMixin
from plugin.base.integration.ScheduleMixin import ScheduleMixin from plugin.base.integration.ScheduleMixin import ScheduleMixin
from plugin.base.integration.SettingsMixin import SettingsMixin from plugin.base.integration.SettingsMixin import SettingsMixin
@ -32,7 +32,6 @@ __all__ = [
'NavigationMixin', 'NavigationMixin',
'ReportMixin', 'ReportMixin',
'ScheduleMixin', 'ScheduleMixin',
'SettingsContentMixin',
'SettingsMixin', 'SettingsMixin',
'SingleNotificationMethod', 'SingleNotificationMethod',
'SupplierBarcodeMixin', 'SupplierBarcodeMixin',