Fix Autotask integration unable to be disabled once enabled

Fixed bug where unchecked Autotask enabled checkbox was not processed
by the backend, preventing users from disabling the integration after
enabling it.

Root cause: HTML forms do not send unchecked checkbox values. The
existing check `if "autotask_enabled" in request.form` would skip
updating the setting when the checkbox was unchecked.

Solution: Use the existing autotask_form_touched flag to detect when
the Autotask settings form is submitted, then update the checkbox
value based on presence (checked) or absence (unchecked) in form data.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
Ivo Oskamp 2026-02-05 22:03:27 +01:00
parent 948e9a49a5
commit 402aac556c
2 changed files with 4 additions and 1 deletions

View File

@ -439,7 +439,9 @@ def settings():
settings.require_daily_dashboard_visit = bool(request.form.get("require_daily_dashboard_visit"))
# Autotask integration
if "autotask_enabled" in request.form:
# Checkbox: only update when any Autotask field is present (form was submitted)
# Unchecked checkboxes are not sent by browsers, so check autotask_form_touched
if autotask_form_touched:
settings.autotask_enabled = bool(request.form.get("autotask_enabled"))
if "autotask_environment" in request.form:

View File

@ -32,6 +32,7 @@ This file documents all changes made to this project via Claude Code.
- If time entries exist: keeps current status unchanged (ticket remains open)
### Fixed
- Autotask integration can now be disabled in Settings after being enabled (fixed unchecked checkbox not being processed)
- Autotask "Link existing" search box now clears when opening the modal instead of retaining previous search text
- Autotask customer mapping search box now clears when opening the edit modal instead of retaining previous search text
- Autotask ticket resolution update now correctly preserves exact field values from GET response in PUT payload.