2026-10-05 09:36:20 +02:00
|
|
|
# retoor <retoor@molodetz.nl>
|
|
|
|
|
from fastapi import APIRouter, Request
|
|
|
|
|
|
|
|
|
|
from molodetz.database import daily_totals, top_paths
|
|
|
|
|
from molodetz.responses import respond
|
|
|
|
|
from molodetz.routers.admin._shared import admin_seo
|
|
|
|
|
from molodetz.schemas.admin import StatsOut
|
|
|
|
|
from molodetz.utils.auth import require_admin
|
|
|
|
|
|
|
|
|
|
router = APIRouter()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@router.get("/stats")
|
|
|
|
|
async def stats_index(request: Request):
|
|
|
|
|
require_admin(request)
|
2026-10-05 11:25:41 +02:00
|
|
|
ctx = {"top_paths": [dict(row) for row in top_paths()], "daily": [dict(row) for row in daily_totals()], "seo": admin_seo(request, "Statistics")}
|
2026-10-05 09:36:20 +02:00
|
|
|
return respond(request, "admin/stats.html", ctx, model=StatsOut)
|