diff --git a/src/backend/InvenTree/InvenTree/management/commands/collectplugins.py b/src/backend/InvenTree/InvenTree/management/commands/collectplugins.py index 77b00f73b5..ce7df416fc 100644 --- a/src/backend/InvenTree/InvenTree/management/commands/collectplugins.py +++ b/src/backend/InvenTree/InvenTree/management/commands/collectplugins.py @@ -8,6 +8,7 @@ class Command(BaseCommand): def handle(self, *args, **kwargs): """Run the management command.""" - from plugin.staticfiles import collect_plugins_static_files + import plugin.staticfiles - collect_plugins_static_files() + plugin.staticfiles.collect_plugins_static_files() + plugin.staticfiles.clear_plugins_static_files() diff --git a/src/backend/InvenTree/plugin/installer.py b/src/backend/InvenTree/plugin/installer.py index 7c2ceca7ec..3720e02ad1 100644 --- a/src/backend/InvenTree/plugin/installer.py +++ b/src/backend/InvenTree/plugin/installer.py @@ -269,6 +269,9 @@ def install_plugin(url=None, packagename=None, user=None, version=None): registry.reload_plugins(full_reload=True, force_reload=True, collect=True) + # Update static files + plugin.staticfiles.collect_plugins_static_files() + return ret @@ -333,6 +336,9 @@ def uninstall_plugin(cfg: plugin.models.PluginConfig, user=None, delete_config=T # Remove the plugin configuration from the database cfg.delete() + # Remove static files associated with this plugin + plugin.staticfiles.clear_static_dir(f'plugins/{cfg.key}/', recursive=True) + # Reload the plugin registry registry.reload_plugins(full_reload=True, force_reload=True, collect=True)