fix: sync settings toggles always saving as off

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 <noreply@anthropic.com>
This commit is contained in:
mguschin
2026-05-24 19:51:37 +03:00
parent 403d8bce4d
commit 2670a34504
2 changed files with 4 additions and 4 deletions

View File

@@ -57,7 +57,7 @@ class SyncConfig(Base):
id = Column(Integer, primary_key=True, autoincrement=True) id = Column(Integer, primary_key=True, autoincrement=True)
user_id = Column(Integer, ForeignKey("users.id", ondelete="CASCADE"), nullable=False) user_id = Column(Integer, ForeignKey("users.id", ondelete="CASCADE"), nullable=False)
is_enabled = Column(Boolean, nullable=False, default=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) vk_mirror_enabled = Column(Boolean, nullable=False, default=False)
store_filters_seeded = Column(Boolean, nullable=False, default=False) store_filters_seeded = Column(Boolean, nullable=False, default=False)
group_filters_seeded = Column(Boolean, nullable=False, default=False) group_filters_seeded = Column(Boolean, nullable=False, default=False)

View File

@@ -45,9 +45,9 @@ async def sync_settings_post(request: Request, db: Session = Depends(get_db)):
form = await request.form() form = await request.form()
evo_mirror_enabled = form.get("evo_mirror_enabled") == "1" evo_mirror_enabled = "1" in form.getlist("evo_mirror_enabled")
vk_mirror_enabled = form.get("vk_mirror_enabled") == "1" vk_mirror_enabled = "1" in form.getlist("vk_mirror_enabled")
sync_enabled = form.get("is_enabled") == "1" sync_enabled = "1" in form.getlist("is_enabled")
raw_multiplier = str(form.get("price_multiplier", "1")).strip() raw_multiplier = str(form.get("price_multiplier", "1")).strip()
try: try: