2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-07-20 19:56:31 +00:00

Cleanup plugin mixin registry ()

* collect mixins dynamically

* remove unfinsihed option to reorder mixins

* clean up settings

* fix text

* fix mixin lookup

* stupid error

* fix assertations

* use regustered function instead of private dict

* switch to dict for reg

* fix test

* makke sure mixins also works with class

* cleanup

* fix reqs

* fix test assertations
This commit is contained in:
Matthias Mair
2023-05-12 14:00:25 +02:00
committed by GitHub
parent 17057f4266
commit 017ccaa27a
4 changed files with 55 additions and 20 deletions
InvenTree/plugin

@@ -1,5 +1,6 @@
"""Plugin model definitions."""
import inspect
import warnings
from django.conf import settings
@@ -58,7 +59,9 @@ class PluginConfig(models.Model):
def mixins(self):
"""Returns all registered mixins."""
try:
return self.plugin._mixinreg
if inspect.isclass(self.plugin):
return self.plugin.get_registered_mixins(self, with_base=True, with_cls=False)
return self.plugin.get_registered_mixins(with_base=True, with_cls=False)
except (AttributeError, ValueError): # pragma: no cover
return {}
@@ -166,7 +169,9 @@ class PluginSetting(common.models.BaseInvenTreeSetting):
if issubclass(plugin.__class__, InvenTreePlugin):
plugin = plugin.plugin_config()
kwargs['settings'] = registry.mixins_settings.get(plugin.key, {})
mixin_settings = getattr(registry, 'mixins_settings')
if mixin_settings:
kwargs['settings'] = mixin_settings.get(plugin.key, {})
return super().get_setting_definition(key, **kwargs)