update
This commit is contained in:
@@ -7,6 +7,7 @@ Jeder darf aufschreiben, was er sich wünscht. Alle sehen alle Wünsche,
|
||||
from datetime import datetime, timezone
|
||||
|
||||
from .db import connect
|
||||
from .users import besitzer, gehoert_mir
|
||||
|
||||
SCHEMA = """
|
||||
CREATE TABLE IF NOT EXISTS features (
|
||||
@@ -20,9 +21,23 @@ CREATE TABLE IF NOT EXISTS features (
|
||||
MAX_LAENGE = 500
|
||||
|
||||
|
||||
def _spalte_user_id(conn, tabelle):
|
||||
"""Nachrüsten und aus der Sitzung füllen — einmalig je Datenbank."""
|
||||
spalten = {r[1] for r in conn.execute(f"PRAGMA table_info({tabelle})")}
|
||||
if "user_id" in spalten:
|
||||
return
|
||||
conn.execute(f"ALTER TABLE {tabelle} ADD COLUMN user_id INTEGER")
|
||||
conn.execute(
|
||||
f"UPDATE {tabelle} SET user_id = ("
|
||||
" SELECT user_id FROM user_sessions s WHERE s.session_id = "
|
||||
f" {tabelle}.session_id)"
|
||||
)
|
||||
|
||||
|
||||
def init():
|
||||
with connect() as conn:
|
||||
conn.executescript(SCHEMA)
|
||||
_spalte_user_id(conn, "features")
|
||||
|
||||
|
||||
def alle(session_id):
|
||||
@@ -34,10 +49,15 @@ def alle(session_id):
|
||||
"LEFT JOIN users u ON u.id = s.user_id "
|
||||
"ORDER BY f.created_at DESC"
|
||||
).fetchall()
|
||||
ich = besitzer(session_id)
|
||||
return [
|
||||
{
|
||||
**{k: v for k, v in dict(r).items() if k != "session_id"},
|
||||
"mine": r["session_id"] == session_id,
|
||||
**{
|
||||
k: v
|
||||
for k, v in dict(r).items()
|
||||
if k not in ("session_id", "user_id")
|
||||
},
|
||||
"mine": gehoert_mir(r, session_id, ich),
|
||||
}
|
||||
for r in rows
|
||||
]
|
||||
@@ -50,9 +70,11 @@ def anlegen(session_id, text):
|
||||
return None
|
||||
with connect() as conn:
|
||||
conn.execute(
|
||||
"INSERT INTO features (session_id, text, created_at) VALUES (?, ?, ?)",
|
||||
"INSERT INTO features (session_id, user_id, text, created_at) "
|
||||
"VALUES (?, ?, ?, ?)",
|
||||
(
|
||||
session_id,
|
||||
besitzer(session_id),
|
||||
text,
|
||||
datetime.now(timezone.utc).isoformat(timespec="seconds"),
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user