Improve concert details and add usage statistics

This commit is contained in:
kai
2026-08-27 18:50:19 +02:00
parent 74e337aaa9
commit c1306f86f6
4 changed files with 70 additions and 0 deletions
+28
View File
@@ -1461,6 +1461,34 @@ def admin_patches_page(request: Request):
return template.render(user=user, patches=patches)
@app.get("/admin/statistics", response_class=HTMLResponse)
def admin_statistics_page(request: Request):
user = require_admin(request)
if not user:
return HTMLResponse("<h1>Nicht erlaubt</h1>", status_code=403)
with get_db_connection() as connection:
with connection.cursor() as cursor:
queries = {
"users": "SELECT COUNT(*) FROM users",
"events": "SELECT COUNT(*) FROM concerts",
"upcoming": "SELECT COUNT(*) FROM concerts WHERE start_datetime >= NOW()",
"comments": "SELECT COUNT(*) FROM concert_comments",
"attendance": "SELECT COUNT(*) FROM concert_attendance",
"friendships": "SELECT COUNT(*) FROM friendships WHERE status = 'accepted'",
"messages": "SELECT COUNT(*) FROM direct_messages",
}
stats = {}
for key, query in queries.items():
try:
cursor.execute(query)
stats[key] = cursor.fetchone()[0]
except Exception:
connection.rollback()
stats[key] = 0
template = templates.get_template("admin_statistics.html")
return template.render(user=user, stats=stats)
@app.post("/admin/invites", response_class=HTMLResponse)
def create_invite(request: Request):
user = require_admin(request)