from fastapi import Request from fastapi.responses import HTMLResponse, RedirectResponse from core.layout import layout # ---- Page helpers ---- def page(request: Request, title: str, buttons, body: str, header: str | None = None) -> HTMLResponse: return HTMLResponse(layout(request, title, buttons, header, body)) # ---- Page types ---- def menu(request: Request, title: str, entries: list[tuple[str, str]]): lines = [] for label, href in entries: lines.append(f"[{label}]") body = "
" + "\n".join(lines) + "" return page(request, title, [("BACK", "/")], body) def message(request: Request, title: str, text: str, ok_href: str = "/"): body = f"""
{text}
[ OK ]
ERROR: {error}" if error else ""
body = f"""
{err}
"""
return page(request, title, [("BACK", "/")], body)
def static_html(request: Request, title: str, html: str):
return page(request, title, [("BACK", "/")], html)