Home intro from retoor as editable site_intro setting; fix settings upsert

This commit is contained in:
2026-10-05 11:12:18 +02:00
parent 3fb47bf401
commit bbdecdc95b
14 changed files with 131 additions and 16 deletions
+2 -3
View File
@@ -157,9 +157,8 @@ def _seed_settings():
if "site_settings" not in db.tables:
return
for key, value in SETTINGS_DEFAULTS.items():
uid = f"default_{key}"
if db["site_settings"].find_one(uid=uid) is None:
db["site_settings"].insert({"uid": uid, "key": key, "value": value, "updated_at": now_iso()})
if db["site_settings"].find_one(key=key) is None:
db["site_settings"].insert({"uid": f"default_{key}", "key": key, "value": value, "updated_at": now_iso()})
def _seed_notification_key():
+8 -7
View File
@@ -61,9 +61,7 @@ def get_setting(key, default=None):
return cached
value = default
if "site_settings" in db.tables:
row = db["site_settings"].find_one(uid=f"setting_{key}")
if row is None:
row = db["site_settings"].find_one(uid=f"default_{key}")
row = db["site_settings"].find_one(key=key)
if row is not None and row.get("value") is not None:
value = str(row["value"])
_settings_cache.set(key, value)
@@ -78,10 +76,13 @@ def get_int_setting(key, default):
def set_setting(key, value):
db["site_settings"].upsert(
{"uid": f"setting_{key}", "key": key, "value": str(value), "updated_at": now_iso()},
["uid"],
)
table = db["site_settings"]
stamp = now_iso()
with db:
if table.find_one(key=key) is None:
table.insert({"uid": f"setting_{key}", "key": key, "value": str(value), "updated_at": stamp})
else:
table.update({"key": key, "value": str(value), "updated_at": stamp}, ["key"])
bump_cache_version("settings", _settings_cache)