Erster Wurf

This commit is contained in:
2026-02-21 15:16:27 +01:00
parent 70ba4a0279
commit c6a3c5b3df
10 changed files with 270 additions and 107 deletions

View File

@@ -2,31 +2,39 @@ 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"))
# 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']
@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
})
# 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("/", 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()
# Relativer Redirect zurück zum Admin-Interface
return RedirectResponse(url="./")
return RedirectResponse(url="/")