32 lines
1.1 KiB
Python
32 lines
1.1 KiB
Python
from fastapi import APIRouter, Request
|
|
from fastapi.responses import HTMLResponse, RedirectResponse
|
|
from fastapi.templating import Jinja2Templates
|
|
from core.data_processor import get_upcoming_events, get_remarks, invalidate_cache
|
|
from pathlib import Path
|
|
|
|
router = APIRouter()
|
|
BASE_DIR = Path(__file__).parent.parent
|
|
templates = Jinja2Templates(directory=str(BASE_DIR / "templates"))
|
|
|
|
# Admin auf Root
|
|
@router.get("/", response_class=HTMLResponse)
|
|
async def admin_page(request: Request):
|
|
from core.config_loader import config
|
|
return templates.TemplateResponse("admin.html", {
|
|
"request": request, "links": config['links']
|
|
})
|
|
|
|
# Tabelle unter /zeiten
|
|
@router.get("/zeiten", response_class=HTMLResponse)
|
|
async def times_table(request: Request):
|
|
events = get_upcoming_events()
|
|
remarks = get_remarks()
|
|
return templates.TemplateResponse("index.html", {
|
|
"request": request, "events": events, "remarks": remarks
|
|
})
|
|
|
|
@router.get("/cache-clear")
|
|
async def clear_cache():
|
|
invalidate_cache()
|
|
# Relativer Redirect zurück zum Admin-Interface
|
|
return RedirectResponse(url="./") |