# retoor from fastapi import APIRouter, Request from molodetz.constants import SOFT_DELETE_TABLES from molodetz.database import all_posts, count_deleted, count_open_join_requests, count_users from molodetz.responses import respond from molodetz.routers.admin._shared import admin_seo from molodetz.schemas.admin import AdminIndexOut from molodetz.utils.auth import require_admin router = APIRouter() @router.get("") async def admin_index(request: Request): require_admin(request) ctx = { "post_count": len(all_posts()), "open_joins": count_open_join_requests(), "user_count": count_users(), "deleted_count": sum(count_deleted(name) for name in SOFT_DELETE_TABLES), "seo": admin_seo(request, "Admin"), } return respond(request, "admin/index.html", ctx, model=AdminIndexOut)