Add "Games Played" column in deck list
This commit is contained in:
parent
87a336787c
commit
7545966aed
@ -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}
|
||||
)
|
||||
|
@ -12,6 +12,7 @@
|
||||
<tr>
|
||||
<th>Deck Name</th>
|
||||
<th>Owner</th>
|
||||
<th>Games Played</th>
|
||||
</tr>
|
||||
{% for deck in decks %}
|
||||
<tr>
|
||||
@ -19,6 +20,7 @@
|
||||
<a href="/deck/{{ deck.id }}">{{ deck.name }}</a>
|
||||
</td>
|
||||
<td>{{ deck.owner.name }}</td>
|
||||
<td>{{ deck.games_played }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
|
Loading…
x
Reference in New Issue
Block a user