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 <noreply@anthropic.com>
This commit is contained in:
Ivo Oskamp 2026-02-06 16:48:56 +01:00
parent 28f094f80b
commit 3fb29a45d0

View File

@ -711,6 +711,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 []