Fix plugin pickeling (#5412) (#5457)

(cherry picked from commit 1fe382e318)

Co-authored-by: Lukas <76838159+wolflu05@users.noreply.github.com>
This commit is contained in:
github-actions[bot] 2023-08-17 21:04:23 +10:00 committed by GitHub
parent ea039645c3
commit 7876676114
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -103,6 +103,12 @@ class PluginConfig(InvenTree.models.MetadataMixin, models.Model):
# Save plugin
self.plugin: InvenTreePlugin = plugin
def __getstate__(self):
"""Customize pickeling behaviour."""
state = super().__getstate__()
state.pop("plugin", None) # plugin cannot be pickelt in some circumstances when used with drf views, remove it (#5408)
return state
def save(self, force_insert=False, force_update=False, *args, **kwargs):
"""Extend save method to reload plugins if the 'active' status changes."""
reload = kwargs.pop('no_reload', False) # check if no_reload flag is set