teecup/frontend/components
Erol Haagenrud c15c68efca Update Todos
Add non-org-scoped teeoff search + personal-course detail endpoints to rounds.py

Build /rounds list page + component

Build /rounds/new creation flow (course search/create, tee, date, holes)

Build /rounds/[id] detail page (participants, hole-by-hole stats, complete)

Link new feature from dashboard

Scratch-verify backend additions + typecheck production build

Deploy live after user confirmation

Update ADR-033/FEATURE_BACKLOG/CLAUDE.md status
Frontend for standalone round tracking is built and fully verified in scratch — 22 backend contract checks plus a live end-to-end test against both course sources (custom bane and real teeoff lookup), and a clean typechecked production build (docker build --target builder) showing all new routes (/rounds, /rounds/new, /rounds/[id]).

What's new, in summary:

Backend: three additions to app/routers/rounds.py — non-org-scoped teeoff facility/course search (/rounds/official-search*), a personal-course detail endpoint exposing tee/gender info, and a GET .../holes endpoint (needed since RoundOut never carried hole-level data). Also changed the hole-PATCH endpoint to return the full updated row instead of {"ok": true}. No migration — no schema touched.
Frontend: /rounds (list), /rounds/new (course search or create, tee/date/holes-planned), /rounds/[id] (participants, hole-by-hole stat entry with GIR auto-derived, complete-round flow with HCP differential summary). Linked from the dashboard both as a header shortcut and a prominent "Egne runder" entry card.
One thing worth flagging: the hole-PATCH endpoint replaces all fields every call rather than doing a true partial update, so the frontend always merges the current hole state before sending a patch — I confirmed this contract explicitly in scratch (a naive partial PATCH silently nulls out unrelated fields).
2026-07-23 05:51:26 +02:00
..
ui Program-skjermen er bygget og grundig scratch-verifisert. Kort oppsummert: 2026-07-18 12:20:45 +02:00
account-settings.tsx Update Todos 2026-07-22 07:53:29 +02:00
dashboard.tsx Update Todos 2026-07-23 05:51:26 +02:00
login-form.tsx Update Todos 2026-07-19 10:36:50 +02:00
org-members.tsx Update Todos 2026-07-19 10:36:50 +02:00
personal-rounds.tsx Update Todos 2026-07-23 05:51:26 +02:00
public-club.tsx Klubb-landingssiden er live på https://teecup.teeoff.no/clubs/{slug} — dermed er ADR-018 sine to planlagte frontend-skjermer komplette. 2026-07-18 10:48:20 +02:00
public-live.tsx Alt scratch-verifisert (5 automatiserte sjekker inkl. faktisk sanntidsmottak over WebSocket for både score-innsending og walkover), typesjekket build OK. Ingen migrasjon, ingen ny Caddy-rute (gjenbruker /ws/* fra sist). 2026-07-19 23:14:17 +02:00
public-tournament.tsx Update Todos 2026-07-19 22:51:07 +02:00
round-detail.tsx Update Todos 2026-07-23 05:51:26 +02:00
round-new.tsx Update Todos 2026-07-23 05:51:26 +02:00
session-blind-draw.tsx Update Todos 2026-07-20 08:53:53 +02:00
session-scorecard.tsx Update Todos 2026-07-20 08:53:53 +02:00
sw-register.tsx PWA er bygget og scratch/build-verifisert. Status: 2026-07-19 23:51:08 +02:00
team-chat.tsx Backend, frontend og Caddy-endringen er alle klare og verifisert (Caddy-syntaksen validert OK). Dette er en stor runde — her er full plan for utrulling: 2026-07-19 22:26:45 +02:00
tournament-card.tsx Klubb-landingssiden er live på https://teecup.teeoff.no/clubs/{slug} — dermed er ADR-018 sine to planlagte frontend-skjermer komplette. 2026-07-18 10:48:20 +02:00
tournament-detail.tsx Update Todos 2026-07-20 10:01:44 +02:00
tournament-leaderboard.tsx Alt er ferdig og live. Kort oppsummering av hele runden: 2026-07-19 09:33:34 +02:00
tournament-program.tsx Begge fiksene er ferdig og verifisert med ekte produksjonsbuild (ren frontend-endring, ingen migrasjon, ingen backend-endring): 2026-07-21 09:18:07 +02:00
tournament-status-badge.tsx Update Todos 2026-07-19 21:51:05 +02:00
two-factor-flow.tsx Update Todos 2026-07-19 10:36:50 +02:00
verify-email-form.tsx Update Todos 2026-07-22 06:14:31 +02:00
verify-form.tsx Update Todos 2026-07-19 10:36:50 +02:00
wordmark.tsx Bygget: 2026-07-18 06:46:09 +02:00