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>
This commit is contained in:
Carsten Gram 2026-09-28 23:51:41 +02:00
parent 609c3efb05
commit cae8decd21
4 changed files with 23 additions and 5 deletions

View file

@ -34,3 +34,9 @@ def public_pickup_page(request: Request, session: SessionDep) -> HTMLResponse:
return templates.TemplateResponse( return templates.TemplateResponse(
request, "pickup.html", {"route_name": route.name, "meeting_info": route.meeting_info} 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})

View file

@ -222,6 +222,11 @@ button[type="submit"]:hover {
flex-direction: column; flex-direction: column;
} }
.catalog,
.order-sidebar {
flex-basis: auto;
}
.order-sidebar { .order-sidebar {
position: static; position: static;
width: 100%; width: 100%;

View file

@ -81,11 +81,8 @@
body: JSON.stringify(payload), body: JSON.stringify(payload),
}); });
if (response.ok) { if (response.ok) {
orderForm.querySelector(".catalog").hidden = true; window.location.href = "/bestilling-modtaget";
orderForm.querySelectorAll(".field-label, .checkbox-label, button[type=submit]").forEach((el) => { return;
el.hidden = true;
});
showMessage(messageEl, "Tak for din bestilling! En kvittering er sendt til din email.", "success");
} else { } else {
showMessage(messageEl, await extractErrorDetail(response), "error"); showMessage(messageEl, await extractErrorDetail(response), "error");
} }

View file

@ -0,0 +1,10 @@
{% extends "base.html" %}
{% block title %} — Bestilling modtaget{% endblock %}
{% block content %}
<div class="signup-card">
<h1>Tak for din bestilling!</h1>
<p>Der er sendt en kvitteringsmail til den oplyste emailadresse med betalingsoplysninger.</p>
<p><strong>Bemærk:</strong> bestillingen er først gyldig, når betalingen er modtaget.</p>
<p><a href="/">Tilbage til bestilling</a></p>
</div>
{% endblock %}