From 2670a3450439bafeca7ce9d74cfd32be95019c2e Mon Sep 17 00:00:00 2001 From: mguschin Date: Sun, 24 May 2026 19:51:37 +0300 Subject: [PATCH] fix: sync settings toggles always saving as off MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit form.get() returns the first value when both the hidden fallback input and the checked checkbox are submitted under the same name — so "0" always won. Switch to form.getlist() and check for "1" in the list. Also default evo_mirror_enabled to True so new users don't have to manually enable it before the catalog can populate. Co-Authored-By: Claude Sonnet 4.6 --- web/models/connections.py | 2 +- web/routes/sync.py | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/web/models/connections.py b/web/models/connections.py index 9df950f..b0651bb 100644 --- a/web/models/connections.py +++ b/web/models/connections.py @@ -57,7 +57,7 @@ class SyncConfig(Base): id = Column(Integer, primary_key=True, autoincrement=True) user_id = Column(Integer, ForeignKey("users.id", ondelete="CASCADE"), nullable=False) is_enabled = Column(Boolean, nullable=False, default=False) - evo_mirror_enabled = Column(Boolean, nullable=False, default=False) + evo_mirror_enabled = Column(Boolean, nullable=False, default=True) vk_mirror_enabled = Column(Boolean, nullable=False, default=False) store_filters_seeded = Column(Boolean, nullable=False, default=False) group_filters_seeded = Column(Boolean, nullable=False, default=False) diff --git a/web/routes/sync.py b/web/routes/sync.py index fa796b4..9749351 100644 --- a/web/routes/sync.py +++ b/web/routes/sync.py @@ -45,9 +45,9 @@ async def sync_settings_post(request: Request, db: Session = Depends(get_db)): form = await request.form() - evo_mirror_enabled = form.get("evo_mirror_enabled") == "1" - vk_mirror_enabled = form.get("vk_mirror_enabled") == "1" - sync_enabled = form.get("is_enabled") == "1" + evo_mirror_enabled = "1" in form.getlist("evo_mirror_enabled") + vk_mirror_enabled = "1" in form.getlist("vk_mirror_enabled") + sync_enabled = "1" in form.getlist("is_enabled") raw_multiplier = str(form.get("price_multiplier", "1")).strip() try: