footer imrpove

This commit is contained in:
Mateusz Gruszczyński
2026-05-04 10:01:51 +02:00
parent 8389683975
commit ef22a3196d
6 changed files with 129 additions and 13 deletions

View File

@@ -1,5 +1,7 @@
from __future__ import annotations
import json
from ..db import connect, utcnow, default_user_id
BOOTSTRAP_THEMES = {
@@ -157,6 +159,7 @@ def save_preferences(data: dict, user_id: int | None = None):
table_columns_json = data.get("table_columns_json")
peers_refresh_seconds = data.get("peers_refresh_seconds")
port_check_enabled = data.get("port_check_enabled")
footer_items_json = data.get("footer_items_json")
with connect() as conn:
now = utcnow()
if allowed_theme:
@@ -173,4 +176,11 @@ def save_preferences(data: dict, user_id: int | None = None):
conn.execute("UPDATE user_preferences SET peers_refresh_seconds=?, updated_at=? WHERE user_id=?", (sec, now, user_id))
if port_check_enabled is not None:
conn.execute("UPDATE user_preferences SET port_check_enabled=?, updated_at=? WHERE user_id=?", (1 if port_check_enabled else 0, now, user_id))
if footer_items_json is not None:
# Note: Store only JSON objects so footer visibility can be extended without schema churn.
value = footer_items_json if isinstance(footer_items_json, str) else json.dumps(footer_items_json)
parsed = json.loads(value or "{}")
if not isinstance(parsed, dict):
parsed = {}
conn.execute("UPDATE user_preferences SET footer_items_json=?, updated_at=? WHERE user_id=?", (json.dumps(parsed), now, user_id))
return get_preferences(user_id)