""" Settings Frontend Views """ from datetime import datetime from pathlib import Path from fastapi import APIRouter, Request from fastapi.responses import HTMLResponse from fastapi.templating import Jinja2Templates from app.core.config import settings router = APIRouter() templates = Jinja2Templates(directory="app") @router.get("/settings", response_class=HTMLResponse, tags=["Frontend"]) async def settings_page(request: Request): """Render settings page""" return templates.TemplateResponse("settings/frontend/settings.html", { "request": request, "title": "Indstillinger" }) @router.get("/settings/migrations", response_class=HTMLResponse, tags=["Frontend"]) async def migrations_page(request: Request): """Render database migrations page""" migrations_dir = Path(__file__).resolve().parents[3] / "migrations" migrations = [] if migrations_dir.exists(): for migration_file in sorted(migrations_dir.glob("*.sql")): stat = migration_file.stat() migrations.append({ "name": migration_file.name, "size_kb": round(stat.st_size / 1024, 1), "modified": datetime.fromtimestamp(stat.st_mtime).strftime("%Y-%m-%d %H:%M") }) return templates.TemplateResponse("settings/frontend/migrations.html", { "request": request, "title": "Database Migrationer", "migrations": migrations, "db_user": settings.POSTGRES_USER, "db_name": settings.POSTGRES_DB, "db_container": "bmc-hub-postgres" })