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
+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)