feat(ui): redesign profiles page with card layout showing postcard stats

This commit is contained in:
2026-07-05 22:27:13 +08:00
parent 5b6b2ccef8
commit a212021997
3 changed files with 93 additions and 30 deletions

View File

@@ -169,7 +169,17 @@ def dashboard(request: Request, user: User = Depends(get_current_user_web), db:
@router.get("/profiles", response_class=HTMLResponse)
def profile_list(request: Request, user: User = Depends(get_current_user_web), db: Session = Depends(get_db)):
profiles = db.query(Profile).filter(Profile.user_id == user.id).all()
return templates.TemplateResponse("profiles.html", {"request": request, "user": user, "profiles": profiles})
extras = {}
for p in profiles:
cards = db.query(Postcard).filter(Postcard.profile_id == p.id).all()
extras[p.id] = {
"total": len(cards),
"sent": sum(1 for c in cards if c.status == "sent"),
"delivered": sum(1 for c in cards if c.status == "delivered"),
"received": sum(1 for c in cards if c.status == "received"),
"countries": len({c.country for c in cards if c.country}),
}
return templates.TemplateResponse("profiles.html", {"request": request, "user": user, "profiles": profiles, "extras": extras})
@router.post("/profiles")