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:
Erol Haagenrud 2026-07-22 06:35:55 +02:00
parent 1a86be3f83
commit 4db66915a4
2 changed files with 86 additions and 13 deletions

View file

@ -2180,10 +2180,34 @@ Ferdig og verifisert:
upåvirket. Del 2 (ekte kontosammenslåing) fortsatt IKKE designet, egen
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:
1. **Pågår, samme økt:** HCP-historikk over tid — siste bekreftede punkt
fra dashboard/konto-runden (2026-07-21), gjenstår å bygge.
2. **Pauset, venter på retning:** dashbordets tom-tilstand ved første
1. **Pauset, venter på retning:** dashbordets tom-tilstand ved første
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
"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
FEATURE_BACKLOG.md for full analyse av hvorfor dette er vesentlig
vanskeligere enn del 1.
5. **Deltaker-tilgang til lag-chat/scorekort er nå BYGGET OG LIVE**
(2026-07-21, se status over) — ADR-031s tidligere notert begrensning
er dermed tettet.
5. **Deltaker-tilgang til lag-chat/scorekort OG HCP-historikk er nå BEGGE
BYGGET OG LIVE** (2026-07-21, se status over) — ADR-031s tidligere
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
forespørsel: offline-scoreregistrering er ALDRI browser-testet i
praksis (kun kodegjennomgang + build-verifisering, se ADR-028). Bruker

View file

@ -1063,14 +1063,13 @@ kjørt mot ekte `teecup_db`, begge containere redeployet, `/health`/
`/dashboard`/`/account` → 200, `teeoff.no` upåvirket.
### Naturlig neste steg (ikke bygget, notert for senere)
- **Deltaker-tilgang (uten org-medlemskap) til lag-chat og scorekort** — det
gjenstående hullet nevnt over. Krever en egen, forsiktig gjennomgang av
`get_authorized_org`-bruken (brukt bredt i hele appen) — ikke en rask fiks.
- Notifikasjons-/aktivitetsfeed på "Mine runder".
- HCP-historikk over tid (personlig profil sin `handicap_index` endres i
dag uten noen logg).
- **Deltaker-tilgang (uten org-medlemskap) til lag-chat og scorekort — ✅
BYGGET OG LIVE 2026-07-21**, se egen seksjon lenger ned.
- **HCP-historikk over tid — ✅ BYGGET OG LIVE 2026-07-21**, se egen seksjon
lenger ned.
- Notifikasjons-/aktivitetsfeed på "Mine runder" — fortsatt IKKE bygget.
- "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)
@ -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
Brukeren påpekte 2026-07-20 at dagens tomme-tilstand ("Du har ingen