Home intro from retoor as editable site_intro setting; fix settings upsert
This commit is contained in:
@@ -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)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user