From 7301de72c597801f162e82b88772c892194c2ad5 Mon Sep 17 00:00:00 2001 From: Erol Haagenrud Date: Thu, 23 Jul 2026 11:31:50 +0200 Subject: [PATCH] Update Todos MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Pakke ut og diffe alle tre V0-eksporter mot levende tre Lese V0s round-card.tsx, own-rounds.tsx, new-round.tsx, round-detail.tsx grundig Lese V0s app/rounds*/page.tsx routing-filer Ta inn round-card.tsx uendret Skrive om datalaget i own-rounds.tsx (fjerne mock/toggle, ekte fetch) Skrive om datalaget i new-round.tsx (ekte søk/opprett/bekreft) Skrive om datalaget i round-detail.tsx (ekte runde/deltakere/hull, fjerne preview-toggle) Oppdatere page.tsx-rutene og slette gamle hånd-bygde komponentfiler Typesjekket produksjonsbuild + slette V0-zip-filene Rulle ut live etter bekreftelse Rullet ut og dokumentert. Oppsummert: Frontend for frittstående rundeføring bruker nå V0s design på alle tre skjermene (/rounds, /rounds/new, /rounds/[id]), med ekte data koblet inn på samme måte som resten av appen. Verifisert med typesjekket produksjonsbuild, ingen backend-endring, teeoff.no upåvirket gjennom hele utrullingen. Status oppdatert i CLAUDE.md, FEATURE_BACKLOG.md og ADR-033. Gjenstår fortsatt fra tidligere: ekte kontokobling for gjestedeltakere, automatisk HCP-oppdatering ved fullført runde, shotgun-start (egen ADR-034), og GPS/avstandsmåling. --- .claude/settings.local.json | 3 ++- ARCHITECTURE_DECISIONS.md | 53 +++++++++++++++++++++++++++++++++++++ CLAUDE.md | 22 +++++++++++++++ FEATURE_BACKLOG.md | 12 +++++++++ 4 files changed, 89 insertions(+), 1 deletion(-) diff --git a/.claude/settings.local.json b/.claude/settings.local.json index 1081d05..0979c5e 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -360,7 +360,8 @@ "Bash(curl -s -o /dev/null -w \"teecup.teeoff.no/dashboard: %{http_code}\\\\n\" https://teecup.teeoff.no/dashboard)", "Bash(curl -s -o /dev/null -w \"teecup.teeoff.no/rounds: %{http_code}\\\\n\" https://teecup.teeoff.no/rounds)", "Read(//home/**)", - "Bash(rm -f \"tee-cup-login-screen \\(10\\).zip\" \"tee-cup-login-screen \\(11\\).zip\" \"tee-cup-login-screen \\(12\\).zip\")" + "Bash(rm -f \"tee-cup-login-screen \\(10\\).zip\" \"tee-cup-login-screen \\(11\\).zip\" \"tee-cup-login-screen \\(12\\).zip\")", + "Bash(curl -s -o /dev/null -w \"teecup.teeoff.no/rounds/new: %{http_code}\\\\n\" https://teecup.teeoff.no/rounds/new)" ], "additionalDirectories": [ "/opt/teeoff/deploy", diff --git a/ARCHITECTURE_DECISIONS.md b/ARCHITECTURE_DECISIONS.md index 063cafc..ff5c25c 100644 --- a/ARCHITECTURE_DECISIONS.md +++ b/ARCHITECTURE_DECISIONS.md @@ -1962,6 +1962,59 @@ for gjeste-deltakere (Beslutning D), automatisk oppdatering av (egen, separat ADR-034), GPS/avstandsmåling (se eget notat i FEATURE_BACKLOG.md, krever data ingen kilde har i dag). +**Frontend ERSTATTET med V0-designet versjon 2026-07-23, samme dag som +den hånd-bygde frontend-en over ble rullet ut:** brukeren påpekte +(berettiget) at de tre nye skjermene var hånd-kodet av meg direkte i +stedet for designet i V0 -- et avvik fra prosjektets etablerte mønster +gjennom HELE resten av appen. Bekreftet med bruker at arbeidsmåten +fortsatt skal være: JEG skriver V0-prompten, BRUKEREN kjører den i +v0.app og sender koden tilbake, JEG integrerer (samme flyt som alltid, +ikke endret). Skrev tre detaljerte prompter (liste/opprett/hull- +registrering, inkl. eksplisitt tilgjengelighetskrav i hver) -- bruker +lastet opp tre zip-eksporter (`tee-cup-login-screen (10/11/12).zip`). +**Samme "full re-eksport hver gang"-mønster som ALLE tidligere V0-runder:** +diffet mot levende tre FØR noe ble tatt inn -- kun fire filer var reelt +nye/relevante (`round-card.tsx`, `own-rounds.tsx`, `new-round.tsx`, +`round-detail.tsx` + tre `app/rounds*/page.tsx`-ruter), resten +(login-form, dashboard, config, ui/*) var forventede full-reverts og ble +IKKE tatt inn. **Samme kjente V0-feil dukket opp igjen, hoppet bevisst +over:** `app/clubs/[id]/page.tsx` med feilnavngitt `[id]`-parameter +(egentlig en slug) -- identisk feil som ble rettet i klubbside-runden +under ADR-018, V0 gjenskaper den tydeligvis når prosjektet re-genereres. +**Mine tre hånd-bygde komponenter (`personal-rounds.tsx`, `round-new.tsx`, +og min opprinnelige `round-detail.tsx`) er ERSTATTET, ikke supplert** -- +V0s presentasjon beholdt, datalaget skrevet om fra mock til ekte fetch +(samme "V0 leverte mock, jeg kabler ekte data"-mønster som enhver annen +skjerm i appen). Reelle tilpasninger utover ren om-kabling: +1. V0s teeoff-søkemodell antok hele bane+utslag-lista lå ferdig i + søkeresultatet -- det ekte API-et er et to-stegs oppslag (søk → + facility-detalj). Løst med en `resolving`-tilstand i + `OfficialSearchStep` (eneste strukturelle tillegg til V0s JSX). +2. La til et tredje kjønnsvalg "Annet" i gjeste-skjemaets `ChoiceRow` + (V0 hadde kun Mann/Kvinne) -- matcher appens ellers etablerte + Herre/Dame/Annet-konvensjon (`account-settings.tsx` m.fl.), og + API-ets `GuestParticipantCreate.gender` støtter allerede `x`. +3. Beholdt merge-før-PATCH-sikringen fra forrige rundes kontraktsfunn + (hull-PATCH skriver alle felt, ikke bare det endrede) -- V0 kjente + naturligvis ikke til denne kontraktsdetaljen, lagt inn i + `updateStat()` uendret i prinsipp fra min opprinnelige versjon. +4. Fjernet V0s dev-only forhåndsvisningskontroller (`ReviewToggle` i + `own-rounds.tsx`, den nederste "Forhåndsvis: Pågår/Fullført"-linjen i + `round-detail.tsx`) -- samme opprydningsmønster som ALLE tidligere + V0-runder i prosjektet. +Ingen backend-endring i denne del-runden (samme API-kontrakt som allerede +var scratch-verifisert). **Verifisert:** ekte typesjekket +produksjonsbuild (`docker build --target builder`) kompilerte rent, alle +ruter listet. Ingen ny interaktiv nettleser-test utført (intet slikt +verktøy tilgjengelig i denne økten) -- kun kodegjennomgang + typesjekk, +flagget eksplisitt til bruker. +**Rullet ut live 2026-07-23**, bruker bekreftet eksplisitt: `docker +compose up -d --build teecup_frontend` (gjenskapte også `teecup_api` som +vanlig compose-bivirkning, ingen backend-kode rørt), begge containere +boot-et rent, `/health`/`/dashboard`/`/rounds`/`/rounds/new` → 200 over +ekte https, `teeoff.no` upåvirket. De tre V0-zip-ene slettet fra +prosjektroten etter fullført integrering. + **Motor-komponenten (punkt 1-11) er ✅ BYGGET OG TESTET 2026-07-22,** som første, isolerte byggesteg (ren Python, ingen DB/API/frontend ennå — matcher ADR-005s "test i isolasjon FØR resten"). Nye funksjoner i diff --git a/CLAUDE.md b/CLAUDE.md index a06e7c2..6d9727d 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -2399,6 +2399,28 @@ Neste steg: `teeoff.no` upåvirket. **Frittstående rundeføring har dermed backend OG frontend live** — se ADR-033 i ARCHITECTURE_DECISIONS.md for full detalj om alle fire lagene (engine/skjema/API/frontend). + **Frontend ERSTATTET med V0-designet versjon, samme dag:** brukeren + påpekte berettiget at de tre skjermene over var hånd-kodet av meg i + stedet for designet i V0, som er prosjektets etablerte mønster for + ALL øvrig frontend. Bekreftet arbeidsmåten uendret (jeg skriver + V0-prompten, brukeren kjører den og sender koden tilbake, jeg + integrerer). Tre prompter skrevet (liste/opprett/hull-registrering, + inkl. eksplisitt tilgjengelighetskrav i hver), tre zip-eksporter + mottatt og diffet mot levende tre (samme "full re-eksport"-mønster som + alltid — kun `round-card.tsx`/`own-rounds.tsx`/`new-round.tsx`/ + `round-detail.tsx` + rutene var reelt nye). Samme kjente V0-feil dukket + opp igjen og ble hoppet over (`app/clubs/[id]/page.tsx`, feilnavngitt + slug-parameter — identisk feil som ble rettet under ADR-018). Mine + hånd-bygde komponenter ERSTATTET (ikke supplert), datalag skrevet om + fra V0s mock til ekte fetch — samme mønster som enhver annen skjerm. + Full detalj (inkl. de fire reelle tilpasningene utover ren om-kabling) + i ADR-033. Ekte typesjekket produksjonsbuild kjørt og bekreftet, ingen + ny interaktiv nettleser-test (intet slikt verktøy tilgjengelig, + flagget eksplisitt). **Rullet ut live 2026-07-23**, bruker bekreftet + eksplisitt: `docker compose up -d --build teecup_frontend` (gjenskapte + også `teecup_api` som vanlig bivirkning), begge containere boot-et + rent, `/health`/`/dashboard`/`/rounds`/`/rounds/new` → 200, `teeoff.no` + upåvirket. V0-zip-ene slettet fra prosjektroten. 4. **Del 1 (fri, ukrevd sekundær-e-post) er nå BYGGET OG LIVE** (2026-07-21, se status over). **Del 2 (ekte konto-sammenslåing) fortsatt IKKE designet:** hva skjer hvis den ønskede adressen ALLEREDE tilhører en diff --git a/FEATURE_BACKLOG.md b/FEATURE_BACKLOG.md index d9d5241..3d4ab34 100644 --- a/FEATURE_BACKLOG.md +++ b/FEATURE_BACKLOG.md @@ -1385,6 +1385,18 @@ organisasjonsuavhengige endepunkter i `rounds.py` (`official-search`/`official-search/{slug}`/`personal-courses/{id}`/ `.../holes`) og en endring av hull-PATCH-responsen. +**Frontend-presentasjonen ERSTATTET med V0-design 2026-07-23, samme dag:** +den første frontend-runden var hånd-kodet direkte av meg (avvik fra +prosjektets ellers gjennomgående V0-mønster, påpekt av bruker). Skrev tre +V0-prompter, mottok tre zip-eksporter, diffet mot levende tre (samme +rutine som alltid — kun fire filer reelt nye), erstattet de hånd-bygde +komponentene med V0s presentasjon og kablet ekte data inn på samme måte +som enhver annen skjerm i appen. Se ADR-033 for full detalj om +tilpasningene (to-stegs teeoff-oppslag, tredje kjønnsvalg «Annet», +merge-før-PATCH beholdt, dev-forhåndsvisningskontroller fjernet). Ingen +backend-endring i denne del-runden. Rullet ut live, `teeoff.no` +upåvirket. + **Notat fra bruker, IKKE designet/bygget ennå (fanget 2026-07-22):** brukeren har tenkt å ha med (a) måling av lengde på slag, og (b) å kunne få opplyst avstand til forskjellige steder på banen (typisk pin/hazard/