update
This commit is contained in:
@@ -32,6 +32,17 @@ CREATE TABLE IF NOT EXISTS suggestions (
|
||||
);
|
||||
"""
|
||||
|
||||
# Wer am Abend da ist, aber nichts vorschlagen will. Zusammen mit den
|
||||
# Vorschlagenden ergibt das die Anwesenheit — die zählt beim Dreh.
|
||||
DABEI = """
|
||||
CREATE TABLE IF NOT EXISTS dabei (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
session_id TEXT NOT NULL,
|
||||
user_id INTEGER,
|
||||
created_at TEXT NOT NULL
|
||||
);
|
||||
"""
|
||||
|
||||
COOKIE = "filmabend_sid"
|
||||
|
||||
# So lange läuft die Animation im Browser. Der Server merkt sich das
|
||||
@@ -54,9 +65,10 @@ BRUCH_ANTEIL = 0.5
|
||||
|
||||
def init():
|
||||
with connect() as conn:
|
||||
conn.executescript(SCHEMA)
|
||||
conn.executescript(SCHEMA + DABEI)
|
||||
# Ein Vorschlag je Person
|
||||
users.je_person(conn, "suggestions", SCHEMA)
|
||||
users.je_person(conn, "dabei", DABEI)
|
||||
|
||||
|
||||
def neue_session():
|
||||
@@ -196,4 +208,40 @@ def loeschen(session_id):
|
||||
def alles_loeschen():
|
||||
"""Host setzt die Runde zurück."""
|
||||
with connect() as conn:
|
||||
conn.execute("DELETE FROM dabei")
|
||||
return conn.execute("DELETE FROM suggestions").rowcount
|
||||
|
||||
|
||||
def dabei_umschalten(session_id):
|
||||
"""Dabei ohne Vorschlag — der zweite Klick nimmt es zurück.
|
||||
Gibt zurück, ob es jetzt gesetzt ist."""
|
||||
ich = besitzer(session_id)
|
||||
with connect() as conn:
|
||||
weg = conn.execute(
|
||||
f"DELETE FROM dabei WHERE {WEM}", (ich, ich, session_id)
|
||||
).rowcount
|
||||
if weg:
|
||||
return False
|
||||
conn.execute(
|
||||
"INSERT INTO dabei (session_id, user_id, created_at) VALUES (?, ?, ?)",
|
||||
(session_id, ich, datetime.now(timezone.utc).isoformat(timespec="seconds")),
|
||||
)
|
||||
return True
|
||||
|
||||
|
||||
def dabei_alle():
|
||||
"""Wer sich ohne Vorschlag eingetragen hat — Namen und Kennungen."""
|
||||
with connect() as conn:
|
||||
rows = conn.execute(
|
||||
"SELECT d.*, u.name FROM dabei d LEFT JOIN users u ON u.id = d.user_id "
|
||||
"ORDER BY d.created_at ASC"
|
||||
).fetchall()
|
||||
return [dict(r) for r in rows]
|
||||
|
||||
|
||||
def teilnehmer():
|
||||
"""user_ids aller Anwesenden: Vorschlagende und Eingetragene."""
|
||||
with connect() as conn:
|
||||
ids = {r["user_id"] for r in conn.execute("SELECT user_id FROM suggestions")}
|
||||
ids |= {r["user_id"] for r in conn.execute("SELECT user_id FROM dabei")}
|
||||
return sorted(i for i in ids if i is not None)
|
||||
|
||||
Reference in New Issue
Block a user