This commit is contained in:
team3
2026-09-17 15:40:28 +02:00
parent a1684cf54f
commit ea54a86db4
30 changed files with 3680 additions and 989 deletions

View File

@@ -37,13 +37,20 @@ def init():
users.je_person(conn, "wishlist", SCHEMA, "movie_id")
# Was die Karte in der Detailansicht zeigt. Steht im Katalog, nicht in der
# Sammlung — ein Film, der nie im Katalog war, bleibt hier leer.
AUS_KATALOG = ("genres", "teaser", "overview", "runtime", "vote_average",
"vote_count", "images")
def alle(session_id):
"""Alle Sammlungen, jede mit dem Namen ihres Besitzers."""
felder = ", ".join(f"m.{f}" for f in AUS_KATALOG)
with connect() as conn:
rows = conn.execute(
# Genres kommen aus dem Katalog. Ein Film, der nie darin stand,
# hat keine — das Rad behandelt ihn dann als "nicht Horror".
"SELECT w.*, u.name, m.genres FROM wishlist w "
f"SELECT w.*, u.name, {felder} FROM wishlist w "
"LEFT JOIN users u ON u.id = w.user_id "
"LEFT JOIN movies m ON m.id = w.movie_id "
"ORDER BY w.created_at DESC"
@@ -54,9 +61,10 @@ def alle(session_id):
**{
k: v
for k, v in dict(r).items()
if k not in ("session_id", "user_id", "genres")
if k not in ("session_id", "user_id", "genres", "images")
},
"genres": json.loads(r["genres"]) if r["genres"] else [],
"images": json.loads(r["images"]) if r["images"] else [],
"mine": gehoert_mir(r, session_id, ich),
}
for r in rows