Files
cf-zeiten/routers/web_routes.py
2026-02-21 15:16:27 +01:00

40 lines
1.4 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 core.config_loader import config
from pathlib import Path
router = APIRouter()
BASE_DIR = Path(__file__).parent.parent
templates = Jinja2Templates(directory=str(BASE_DIR / "templates"))
@router.get("/zeiten", response_class=HTMLResponse)
async def public_table(request: Request, days: int = None, lines: int = None, test: bool = False):
# Wenn nichts angegeben wurde, greift der Standard aus der Config
if not days and not lines:
days = config['processing']['days_to_show']
events = get_upcoming_events(days_to_show=days, limit=lines)
remarks = get_remarks()
# Template 'zeiten.html' laden und 'test' Parameter durchreichen
return templates.TemplateResponse("zeiten.html", {
"request": request,
"events": events,
"remarks": remarks,
"test": test
})
@router.get("/", response_class=HTMLResponse)
async def admin_page(request: Request):
return templates.TemplateResponse("admin.html", {
"request": request,
"links": config['links'],
"config_days": config['processing']['days_to_show']
})
@router.get("/cache-clear")
async def clear_cache():
invalidate_cache()
return RedirectResponse(url="/")