From b024880cb66a5f0b539203e2b054b6132a4822ff Mon Sep 17 00:00:00 2001 From: maziggy Date: Tue, 9 Dec 2025 10:42:04 +0000 Subject: [PATCH] - Improved backup/restore module --- backend/app/api/routes/settings.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/backend/app/api/routes/settings.py b/backend/app/api/routes/settings.py index cb83627cf..cdf274dbb 100644 --- a/backend/app/api/routes/settings.py +++ b/backend/app/api/routes/settings.py @@ -21,6 +21,7 @@ from backend.app.models.filament import Filament from backend.app.models.maintenance import MaintenanceType, PrinterMaintenance, MaintenanceHistory from backend.app.models.archive import PrintArchive from backend.app.schemas.settings import AppSettings, AppSettingsUpdate +from backend.app.services.printer_manager import printer_manager router = APIRouter(prefix="/settings", tags=["settings"]) @@ -806,6 +807,18 @@ async def import_backup( await db.commit() + # If printers were in the backup (restored, updated, or skipped), reconnect all active printers + # This ensures connections are re-established after restore, even if printers were skipped + if "printers" in backup: + # Fetch all active printers and connect them + result = await db.execute( + select(Printer).where(Printer.is_active == True) + ) + active_printers = result.scalars().all() + for printer in active_printers: + # This will disconnect existing connection (if any) and reconnect + await printer_manager.connect_printer(printer) + # Build summary message restored_parts = [] for key, count in restored.items():