Order.order_number tildeles atomisk i POST /public/orders via en
SELECT ... FOR UPDATE-lås på rundens række + MAX+1, så samtidige
bestillinger lige efter en runde åbner ikke kan kollidere. Nummeret
starter på 1 for hver runde (UNIQUE(purchase_round_id, order_number))
og er nu tilgængeligt som {{order_number}} i mail-skabeloner.
GET /purchase-rounds/{id}/pickup-list genskaber den gamle systems
afhentningsliste (delt af brugeren som reference) mod den nye
datamodel: én printside pr. ordre, sorteret efter order_number (vist
stort i øverste højre hjørne), kontaktinfo, flaske-/kasseantal
(pænt afrundet — originalen viste et urundet float), og
vinlinjer grupperet pr. kategori.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
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>
Server-renderet af FastAPI selv (Jinja2 + vanilla JS/CSS, intet
build-step) mod det eksisterende domæneopløste JSON-API fra 8b.
GET / viser bestillingssiden når en runde er åben (rundeoverskrift,
intro_text, kategori-grupperet vinkatalog med live-beregnet
EUR/DKK-total, bestillingsformular), ellers en tilmeldingsside.
GET /tilmelding er altid tilgængelig uafhængigt af rundestatus, og
GET /afhentning viser rutens meeting_info. Layoutet er modelleret
efter den gamle sides bestillingsside. get_current_round's
serialiseringslogik er udtrukket til en delt _build_page_info-helper,
så JSON-API'et og de nye HTML-sider genbruger nøjagtig samme
domæne-/rundeopslag.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>