Improve concert details and add usage statistics
This commit is contained in:
+28
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user