diff --git a/web_interface/blueprints/api_v3.py b/web_interface/blueprints/api_v3.py index d3a30206..bb55ee84 100644 --- a/web_interface/blueprints/api_v3.py +++ b/web_interface/blueprints/api_v3.py @@ -1340,6 +1340,13 @@ def backup_restore(): try: ok = api_v3.plugin_store_manager.install_plugin(plugin_id) if ok: + if api_v3.schema_manager: + api_v3.schema_manager.invalidate_cache(plugin_id) + if api_v3.plugin_manager: + api_v3.plugin_manager.discover_plugins() + api_v3.plugin_manager.load_plugin(plugin_id) + if api_v3.plugin_state_manager: + api_v3.plugin_state_manager.set_plugin_installed(plugin_id) result.plugins_installed.append(plugin_id) else: result.plugins_failed.append({'plugin_id': plugin_id, 'error': 'install returned False'}) diff --git a/web_interface/templates/v3/partials/backup_restore.html b/web_interface/templates/v3/partials/backup_restore.html index 1caa4a22..65696284 100644 --- a/web_interface/templates/v3/partials/backup_restore.html +++ b/web_interface/templates/v3/partials/backup_restore.html @@ -326,7 +326,7 @@
Plugins installed: ${(data.plugins_installed || []).map(escapeHtml).join(', ') || 'none'}
Plugins failed: ${(data.plugins_failed || []).map(p => escapeHtml(p.plugin_id + ' (' + p.error + ')')).join(', ') || 'none'}
Errors: ${(data.errors || []).map(escapeHtml).join('; ') || 'none'}
-

Restart the display service to apply all changes.

+ ${((data.restored || []).length || (data.plugins_installed || []).length) ? '

Restart the display service to apply all changes.

' : ''} `; notify(hasPartial ? 'Restore complete with warnings' : 'Restore complete', hasPartial ? 'warning' : 'success'); } catch (err) {