vinindkoeb/app/routers/public_site.py
carsten cae8decd21 Opgave 8c: bekræftelsesside efter bestilling + responsivt layout-fix
Baseret på brugerens gennemgang af siden i browser:
- Ved succesfuld bestilling omdirigeres brugeren nu til en dedikeret
  GET /bestilling-modtaget i stedet for en inline besked, der skjulte
  vinkataloget — brugeren vil fortsat kunne se hvad de har bestilt.
  Siden gør det eksplicit at bestillingen først er gyldig ved
  modtaget betaling, og linker tilbage til bestillingssiden.
- Rettet et CSS-layoutbug på smalle skærme: flex-basis (sat til
  600px/260px til brug for bredde i to-kolonne-layoutet) blev
  fejlagtigt fortolket som højde, når layoutet skiftede til
  flex-direction: column under 800px, hvilket gav et stort tomt
  mellemrum mellem vinkatalog og sidebar.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-28 23:51:41 +02:00

42 lines
1.8 KiB
Python

from fastapi import APIRouter, Request
from fastapi.responses import HTMLResponse
from fastapi.templating import Jinja2Templates
from app.db import SessionDep
from app.routers.public_orders import _build_page_info, get_route_from_domain
router = APIRouter(tags=["public-site"])
templates = Jinja2Templates(directory="app/templates")
@router.get("/", response_class=HTMLResponse)
def public_home(request: Request, session: SessionDep) -> HTMLResponse:
route = get_route_from_domain(request, session)
page_info = _build_page_info(session, route)
if page_info.current_round is None:
return templates.TemplateResponse(
request, "signup.html", {"route_name": route.name, "no_round_open": True}
)
return templates.TemplateResponse(request, "order.html", {"route_name": route.name, "page": page_info})
@router.get("/tilmelding", response_class=HTMLResponse)
def public_signup_page(request: Request, session: SessionDep) -> HTMLResponse:
route = get_route_from_domain(request, session)
return templates.TemplateResponse(
request, "signup.html", {"route_name": route.name, "no_round_open": False}
)
@router.get("/afhentning", response_class=HTMLResponse)
def public_pickup_page(request: Request, session: SessionDep) -> HTMLResponse:
route = get_route_from_domain(request, session)
return templates.TemplateResponse(
request, "pickup.html", {"route_name": route.name, "meeting_info": route.meeting_info}
)
@router.get("/bestilling-modtaget", response_class=HTMLResponse)
def public_order_confirmation(request: Request, session: SessionDep) -> HTMLResponse:
route = get_route_from_domain(request, session)
return templates.TemplateResponse(request, "order_confirmation.html", {"route_name": route.name})