From 7545966aed55f3007c2f1ae39bf0b9ae5a3b0d75 Mon Sep 17 00:00:00 2001 From: Jack Jackson Date: Fri, 28 Jun 2024 18:12:52 -0700 Subject: [PATCH] Add "Games Played" column in deck list --- app/routers/decks.py | 18 +++++++++++++++++- app/templates/decks/list.html | 2 ++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/app/routers/decks.py b/app/routers/decks.py index 06d2a71..3853173 100644 --- a/app/routers/decks.py +++ b/app/routers/decks.py @@ -1,6 +1,6 @@ from fastapi import APIRouter, Depends, HTTPException, Request from fastapi.responses import HTMLResponse -from sqlalchemy import and_, or_ +from sqlalchemy import and_, or_, func from sqlalchemy.orm import Session from app.sql import models @@ -70,6 +70,22 @@ def deck_create_html(request: Request, db=Depends(get_db)): @html_router.get("/list") def decks_html(request: Request, db=Depends(get_db)): decks = list_decks(db=db) + for deck in decks: + setattr( + deck, + "games_played", + db.query(func.count()) + .select_from(models.Game) + .filter( + or_( + *[ + getattr(models.Game, f"deck_id_{i+1}") == deck.id + for i in range(6) + ] + ) + ) + .scalar(), + ) return jinja_templates.TemplateResponse( request, "decks/list.html", {"decks": decks} ) diff --git a/app/templates/decks/list.html b/app/templates/decks/list.html index 13b1432..c240bcf 100644 --- a/app/templates/decks/list.html +++ b/app/templates/decks/list.html @@ -12,6 +12,7 @@ Deck Name Owner + Games Played {% for deck in decks %} @@ -19,6 +20,7 @@ {{ deck.name }} {{ deck.owner.name }} + {{ deck.games_played }} {% endfor %}