Update Todos
Flytte is_participant-logikk til team_authz.py (unngå sirkulær import) Widen scoring.py: get_scorecard/submit_hole_score/submit_hole_result/concede_match Widen matches.py: list_matches/add_participant/remove_participant/lock_lineup Widen tournaments.py: list_sessions/list_teams/concede_tournament Widen courses.py: list_holes Widen messaging.py: team chat REST-endepunkter (list/send/delete) Legge til my_session_id/my_match_id i /auth/me sin my_tournaments Frontend: legge til lenker til lag-chat/scorekort fra «Mine runder» Scratch-verifisere hele deltaker-tilgang-runden (positive + negative kontroller) Ekte typesjekket frontend-produksjonsbuild + backend py_compile på nytt før deploy-forslag Presentere plan, deploye og oppdatere .md-filer for deltaker-tilgang-runden Bygge og scratch-verifisere sekundær e-postadresse (migrasjon 017) Designe, bygge og scratch-verifisere HCP-historikk (migrasjon 018) Deploye HCP-historikk mot ekte teecup_db/containere og oppdatere .md-filer Rullet ut live og dokumentert. Med det er alle tre bekreftede punktene fra dashboard/konto-runden ferdig: deltaker-tilgang til lag-chat/scorekort, sekundær e-postadresse, og HCP-historikk.
This commit is contained in:
parent
1a86be3f83
commit
4db66915a4
2 changed files with 86 additions and 13 deletions
38
CLAUDE.md
38
CLAUDE.md
|
|
@ -2180,10 +2180,34 @@ Ferdig og verifisert:
|
||||||
upåvirket. Del 2 (ekte kontosammenslåing) fortsatt IKKE designet, egen
|
upåvirket. Del 2 (ekte kontosammenslåing) fortsatt IKKE designet, egen
|
||||||
fremtidig runde, se FEATURE_BACKLOG.md.
|
fremtidig runde, se FEATURE_BACKLOG.md.
|
||||||
|
|
||||||
|
- **HCP-historikk over tid — ✅ BYGGET OG LIVE 2026-07-21**, samme dag,
|
||||||
|
siste av de tre bekreftede punktene fra dashboard/konto-runden. Ny
|
||||||
|
migrasjon `018_handicap_history.sql` (append-only `handicap_history` —
|
||||||
|
kun for personlig profil sin `app_user.handicap_index`, IKKE de org-
|
||||||
|
scopede `player`/`team_roster`-radene, som har sitt eget uendrede
|
||||||
|
reproduserbarhets-prinsipp fra ADR-007). `PATCH /auth/profile` logger nå
|
||||||
|
en ny rad KUN ved en FAKTISK endring til en tallverdi — leser gjeldende
|
||||||
|
verdi FØR overskriving for å unngå duplikater ved gjentatt lagring av
|
||||||
|
samme verdi, og logger bevisst IKKE ved nullstilling. Ny
|
||||||
|
`GET /auth/profile/handicap-history`. Frontend: «Vis HCP-historikk»-
|
||||||
|
lenke i `/account` sin profilseksjon.
|
||||||
|
**Scratch-verifisert, 18 sjekker:** ingen duplikat ved uendret
|
||||||
|
gjenlagring, korrekt logging ved reell endring, ingen logg ved
|
||||||
|
nullstilling, ny logg ved gjeninnsetting etter nullstilling,
|
||||||
|
kronologisk rekkefølge riktig, full isolasjon mellom to brukeres
|
||||||
|
historikk. `test_isolation.sql` 12/12. Ekte typesjekket
|
||||||
|
produksjonsbuild kjørt og bekreftet.
|
||||||
|
**Rullet ut live 2026-07-21**, bruker bekreftet eksplisitt: migrasjon
|
||||||
|
018 kjørt mot ekte `teecup_db` (tabell bekreftet, `test_isolation.sql`
|
||||||
|
fortsatt 12/12), deretter `docker compose up -d --build teecup_api
|
||||||
|
teecup_frontend`. Begge containere boot-et rent,
|
||||||
|
`/health`/`/dashboard`/`/account` → 200, `teeoff.no` upåvirket.
|
||||||
|
**Dermed er alle tre bekreftede punktene fra dashboard/konto-runden
|
||||||
|
(2026-07-21) ferdig bygget** (deltaker-tilgang, sekundær e-post del 1,
|
||||||
|
HCP-historikk).
|
||||||
|
|
||||||
Neste steg:
|
Neste steg:
|
||||||
1. **Pågår, samme økt:** HCP-historikk over tid — siste bekreftede punkt
|
1. **Pauset, venter på retning:** dashbordets tom-tilstand ved første
|
||||||
fra dashboard/konto-runden (2026-07-21), gjenstår å bygge.
|
|
||||||
2. **Pauset, venter på retning:** dashbordets tom-tilstand ved første
|
|
||||||
innlogging. Brukeren ba om å justere det opprinnelige 2026-07-20-
|
innlogging. Brukeren ba om å justere det opprinnelige 2026-07-20-
|
||||||
forslaget i lys av et dypere spørsmål — bør organisasjon fortsatt være
|
forslaget i lys av et dypere spørsmål — bør organisasjon fortsatt være
|
||||||
"det som meldes først"? Min vurdering (se FEATURE_BACKLOG.md): nei,
|
"det som meldes først"? Min vurdering (se FEATURE_BACKLOG.md): nei,
|
||||||
|
|
@ -2203,9 +2227,11 @@ Neste steg:
|
||||||
stedet for gjettet på)? Trenger egen, separat designrunde — se
|
stedet for gjettet på)? Trenger egen, separat designrunde — se
|
||||||
FEATURE_BACKLOG.md for full analyse av hvorfor dette er vesentlig
|
FEATURE_BACKLOG.md for full analyse av hvorfor dette er vesentlig
|
||||||
vanskeligere enn del 1.
|
vanskeligere enn del 1.
|
||||||
5. **Deltaker-tilgang til lag-chat/scorekort er nå BYGGET OG LIVE**
|
5. **Deltaker-tilgang til lag-chat/scorekort OG HCP-historikk er nå BEGGE
|
||||||
(2026-07-21, se status over) — ADR-031s tidligere notert begrensning
|
BYGGET OG LIVE** (2026-07-21, se status over) — ADR-031s tidligere
|
||||||
er dermed tettet.
|
noterte "naturlig neste steg"-punkter er dermed alle tettet, unntatt
|
||||||
|
notifikasjons-/aktivitetsfeed og "Mine runder" for rene påmeldinger
|
||||||
|
(begge fortsatt IKKE bygget, se FEATURE_BACKLOG.md).
|
||||||
6. Oppfølgingspunkt fra PWA-runden, eksplisitt notert på brukerens
|
6. Oppfølgingspunkt fra PWA-runden, eksplisitt notert på brukerens
|
||||||
forespørsel: offline-scoreregistrering er ALDRI browser-testet i
|
forespørsel: offline-scoreregistrering er ALDRI browser-testet i
|
||||||
praksis (kun kodegjennomgang + build-verifisering, se ADR-028). Bruker
|
praksis (kun kodegjennomgang + build-verifisering, se ADR-028). Bruker
|
||||||
|
|
|
||||||
|
|
@ -1063,14 +1063,13 @@ kjørt mot ekte `teecup_db`, begge containere redeployet, `/health`/
|
||||||
`/dashboard`/`/account` → 200, `teeoff.no` upåvirket.
|
`/dashboard`/`/account` → 200, `teeoff.no` upåvirket.
|
||||||
|
|
||||||
### Naturlig neste steg (ikke bygget, notert for senere)
|
### Naturlig neste steg (ikke bygget, notert for senere)
|
||||||
- **Deltaker-tilgang (uten org-medlemskap) til lag-chat og scorekort** — det
|
- **Deltaker-tilgang (uten org-medlemskap) til lag-chat og scorekort — ✅
|
||||||
gjenstående hullet nevnt over. Krever en egen, forsiktig gjennomgang av
|
BYGGET OG LIVE 2026-07-21**, se egen seksjon lenger ned.
|
||||||
`get_authorized_org`-bruken (brukt bredt i hele appen) — ikke en rask fiks.
|
- **HCP-historikk over tid — ✅ BYGGET OG LIVE 2026-07-21**, se egen seksjon
|
||||||
- Notifikasjons-/aktivitetsfeed på "Mine runder".
|
lenger ned.
|
||||||
- HCP-historikk over tid (personlig profil sin `handicap_index` endres i
|
- Notifikasjons-/aktivitetsfeed på "Mine runder" — fortsatt IKKE bygget.
|
||||||
dag uten noen logg).
|
|
||||||
- "Mine runder" for RENE påmeldinger (`tournament_registration` uten
|
- "Mine runder" for RENE påmeldinger (`tournament_registration` uten
|
||||||
roster ennå) — v1 viser kun rostrede lag.
|
roster ennå) — v1 viser kun rostrede lag, fortsatt IKKE bygget.
|
||||||
|
|
||||||
### Oppfølging samme dag: e-post + mobil — ✅ BYGGET OG SCRATCH-VERIFISERT (ADR-032)
|
### Oppfølging samme dag: e-post + mobil — ✅ BYGGET OG SCRATCH-VERIFISERT (ADR-032)
|
||||||
|
|
||||||
|
|
@ -1214,6 +1213,54 @@ upåvirket.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## HCP-historikk over tid — ✅ BYGGET OG LIVE 2026-07-21
|
||||||
|
|
||||||
|
Siste av de tre konkrete følgepunktene brukeren bekreftet i dashboard/
|
||||||
|
konto-runden (2026-07-21) — ADR-031s "naturlig neste steg"-punkt: den
|
||||||
|
personlige profilens `app_user.handicap_index` endres i dag stille ved
|
||||||
|
hver `PATCH /auth/profile`, uten noen logg over tidligere verdier.
|
||||||
|
|
||||||
|
**Migrasjon `018_handicap_history.sql`:** ny append-only-tabell
|
||||||
|
`handicap_history` (`user_id`, `handicap_index`, `recorded_at`) — kun for
|
||||||
|
den PERSONLIGE profilens HCP, bevisst atskilt fra de org-scopede
|
||||||
|
`player.handicap_index`-radene og `team_roster.handicap_index_snapshot`
|
||||||
|
(som allerede har sitt eget reproduserbarhets-prinsipp, ADR-007, ikke rørt
|
||||||
|
her).
|
||||||
|
|
||||||
|
**Backend:** `update_profile` (`PATCH /auth/profile`) leser gjeldende HCP
|
||||||
|
FØR den overskrives, og logger en ny historikk-rad KUN når verdien faktisk
|
||||||
|
ENDRES til en tallverdi — ikke ved nullstilling (ingen "HCP fjernet"-
|
||||||
|
hendelse gir mening i en verdi-over-tid-logg), og ikke ved et PATCH som
|
||||||
|
gjentar samme verdi uendret (unngår støy fra en form som lagres på nytt
|
||||||
|
uten reell endring). Ny `GET /auth/profile/handicap-history`.
|
||||||
|
|
||||||
|
**Frontend:** en «Vis HCP-historikk»-lenke i `/account` sin
|
||||||
|
`ProfileSection`, ekspanderer til en dato+verdi-liste, hentes på nytt
|
||||||
|
automatisk rett etter en lagring.
|
||||||
|
|
||||||
|
**Scratch-verifisert, 18 sjekker:** tom historikk for en fersk bruker,
|
||||||
|
riktig logging ved første HCP-verdi, INGEN duplikat ved gjentatt lagring
|
||||||
|
av uendret verdi (selv sammen med en annen felt-endring i samme PATCH),
|
||||||
|
ny rad ved faktisk endring, kronologisk rekkefølge riktig, ingen logg ved
|
||||||
|
nullstilling, ny rad ved gjeninnsetting etter nullstilling, og full
|
||||||
|
isolasjon mellom to ulike brukeres historikk. `test_isolation.sql`
|
||||||
|
fortsatt 12/12. Ekte typesjekket produksjonsbuild kjørt og bekreftet.
|
||||||
|
|
||||||
|
**Rullet ut live 2026-07-21**, bruker bekreftet eksplisitt: migrasjon 018
|
||||||
|
kjørt mot ekte `teecup_db` (tabell bekreftet, `test_isolation.sql`
|
||||||
|
fortsatt 12/12), deretter `docker compose up -d --build teecup_api
|
||||||
|
teecup_frontend`. Begge containere boot-et rent, `/health`/`/dashboard`/
|
||||||
|
`/account` → 200, `teeoff.no` upåvirket.
|
||||||
|
|
||||||
|
**Dermed er alle tre bekreftede punktene fra dashboard/konto-runden
|
||||||
|
(2026-07-21) ferdig bygget:** deltaker-tilgang til lag-chat/scorekort,
|
||||||
|
sekundær e-postadresse (del 1), og HCP-historikk. Gjenstående, bevisst
|
||||||
|
utsatte punkter fra samme runde: dashbordets tom-tilstand-redesign
|
||||||
|
(venter på retning), frittstående rundeføring + statistikk (trenger egen
|
||||||
|
ADR), og konto-sammenslåing (del 2 av multi-e-post).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## Dashboard: tom-tilstand ved første innlogging — 📋 UNDER REVURDERING (2026-07-21), IKKE bygget
|
## Dashboard: tom-tilstand ved første innlogging — 📋 UNDER REVURDERING (2026-07-21), IKKE bygget
|
||||||
|
|
||||||
Brukeren påpekte 2026-07-20 at dagens tomme-tilstand ("Du har ingen
|
Brukeren påpekte 2026-07-20 at dagens tomme-tilstand ("Du har ingen
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue