Persist an explicit timezone choice (timezone_configured)
The admin settings screen auto-set the browser zone whenever it loaded an empty timezone, guarded only by a per-mount ref. After an admin cleared the timezone (empty = API-host-local), the next open re-fetched "" and auto-set the browser zone again, so the empty choice could not persist. Add a twelfth settings field, timezone_configured (strict bool, default false), carried by the core settings table, the stored JSON document and the admin GET/PATCH. The screen now auto-sets only when the timezone is empty AND timezone_configured is false, patching the flag with the detected zone; saving the timezone field (including clearing it) also sends timezone_configured: true. Detection returning nothing sets nothing. Task: a0e7649c-58b0-4aa3-91b5-cf426e334a76 (release review TZ-001) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -119,6 +119,12 @@ DEFAULT_AUTOMATION_ENABLED = True
|
||||
# Home Assistant's configured ``time_zone`` and ignores this field.
|
||||
CONF_TIMEZONE = "timezone"
|
||||
DEFAULT_TIMEZONE = ""
|
||||
# Whether the admin has made an explicit ``timezone`` choice. ``False``
|
||||
# (a fresh install) lets the admin UI auto-set the browser's zone once;
|
||||
# ``True`` pins the stored value — including an explicitly-chosen empty
|
||||
# ``timezone`` (the API host's local time) — so it is never auto-set again.
|
||||
CONF_TIMEZONE_CONFIGURED = "timezone_configured"
|
||||
DEFAULT_TIMEZONE_CONFIGURED = False
|
||||
|
||||
# Panel-plane API client (Feature 18): the integration reaches the
|
||||
# NestQuest API service (Feature 16) over HTTP instead of the database.
|
||||
|
||||
Reference in New Issue
Block a user