Vorschlag umschaltbar, Wertungen einzeln löschbar
Wer einen Film aufs Rad gesetzt hat, kann ihn dort auch wieder runternehmen. Im Raster tragen alle Filme auf dem Rad jetzt eine Marke, nicht nur der eigene Vorschlag — so sieht man auf einen Blick, was schon vorgeschlagen ist. Die Karten hören dafür am Live-Kanal mit. Dazu: der Host löscht einzelne Wertungen, das Cover dockt oben an statt mittig, und die Suche heißt schlicht "Globale Suche". Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013XVnRop5c3or3B8xE2hpgZ
This commit is contained in:
@@ -315,6 +315,15 @@ def bewerten(
|
||||
return eintrag
|
||||
|
||||
|
||||
@app.delete("/api/watched/rating/{rating_id}")
|
||||
def wertung_loeschen(rating_id: int):
|
||||
"""Der Host räumt eine einzelne Wertung weg."""
|
||||
if not watched.stimme_loeschen(rating_id):
|
||||
raise HTTPException(status_code=404, detail="Wertung nicht gefunden")
|
||||
events.senden("watched")
|
||||
return {"removed": 1}
|
||||
|
||||
|
||||
@app.delete("/api/suggestions/alle")
|
||||
def runde_zuruecksetzen():
|
||||
"""Host leert die Runde: Vorschläge weg, Rad wieder leer."""
|
||||
|
||||
@@ -59,7 +59,7 @@ def alle(session_id):
|
||||
"SELECT * FROM watched ORDER BY watched_at DESC, id DESC"
|
||||
).fetchall()
|
||||
stimmen = conn.execute(
|
||||
"SELECT watched_id, session_id, stars, name FROM ratings "
|
||||
"SELECT id, watched_id, session_id, stars, name FROM ratings "
|
||||
"ORDER BY created_at ASC"
|
||||
).fetchall()
|
||||
|
||||
@@ -75,7 +75,8 @@ def alle(session_id):
|
||||
{
|
||||
**dict(film),
|
||||
"ratings": [
|
||||
{"stars": s["stars"], "name": s["name"]} for s in eigene
|
||||
{"id": s["id"], "stars": s["stars"], "name": s["name"]}
|
||||
for s in eigene
|
||||
],
|
||||
"average": round(sum(werte) / len(werte), 1) if werte else None,
|
||||
"count": len(werte),
|
||||
@@ -163,6 +164,14 @@ def bewerten(watched_id, session_id, stars, name=None):
|
||||
return {"watched_id": watched_id, "stars": stars}
|
||||
|
||||
|
||||
def stimme_loeschen(rating_id):
|
||||
"""Der Host räumt eine einzelne Wertung weg."""
|
||||
with connect() as conn:
|
||||
return conn.execute(
|
||||
"DELETE FROM ratings WHERE id = ?", (rating_id,)
|
||||
).rowcount
|
||||
|
||||
|
||||
def ids():
|
||||
"""movie_ids der geschauten Filme, für die Detailansicht."""
|
||||
with connect() as conn:
|
||||
|
||||
Reference in New Issue
Block a user