From a2895b64092187bd4ffe8dfd47f448110034f4ca Mon Sep 17 00:00:00 2001 From: Ivo Oskamp Date: Fri, 6 Feb 2026 16:48:56 +0100 Subject: [PATCH] Auto-load Autotask reference data on settings page load Fixed issue where Default Ticket Status dropdown was empty when opening the settings page. Now automatically loads reference data (queues, sources, statuses, priorities) when: - Autotask integration is enabled - API credentials are configured - Reference data cache is empty This eliminates the need to manually click "Refresh reference data" before being able to select a default ticket status. Co-Authored-By: Claude Sonnet 4.5 --- .../src/backend/app/main/routes_settings.py | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/containers/backupchecks/src/backend/app/main/routes_settings.py b/containers/backupchecks/src/backend/app/main/routes_settings.py index 3d07f03..65aaeb6 100644 --- a/containers/backupchecks/src/backend/app/main/routes_settings.py +++ b/containers/backupchecks/src/backend/app/main/routes_settings.py @@ -715,6 +715,34 @@ def settings(): autotask_ticket_statuses = [] autotask_last_sync_at = getattr(settings, "autotask_reference_last_sync_at", None) + # Auto-load reference data on page load if Autotask is enabled but cache is empty + try: + if ( + bool(getattr(settings, "autotask_enabled", False)) + and bool(getattr(settings, "autotask_api_username", None)) + and bool(getattr(settings, "autotask_api_password", None)) + and bool(getattr(settings, "autotask_tracking_identifier", None)) + ): + missing_cache = ( + not getattr(settings, "autotask_cached_queues_json", None) + or not getattr(settings, "autotask_cached_ticket_sources_json", None) + or not getattr(settings, "autotask_cached_ticket_statuses_json", None) + or not getattr(settings, "autotask_cached_priorities_json", None) + ) + if missing_cache: + queues_loaded, sources_loaded, statuses_loaded, priorities_loaded = _refresh_autotask_reference_data(settings) + db.session.commit() + flash( + f"Autotask reference data auto-loaded. Queues: {len(queues_loaded)}. Ticket Sources: {len(sources_loaded)}. Ticket Statuses: {len(statuses_loaded)}. Priorities: {len(priorities_loaded)}.", + "info", + ) + except Exception as exc: + try: + db.session.rollback() + except Exception: + pass + flash(f"Failed to auto-load Autotask reference data: {exc}", "warning") + try: if getattr(settings, "autotask_cached_queues_json", None): autotask_queues = json.loads(settings.autotask_cached_queues_json) or []