FEATURE_BACKLOG: NGF-spilleform-gap, koordinat-editor og CSV-import notert

Tre nye seksjoner: (1) sammenligning av NGF sitt offisielle
spilleform-dokument mot faktisk bygde formater, med konkret gap-liste,
(2) plan-skisse for en manuell koordinat-editor (gjenbruker MapPointPicker
+ eksisterende PUT-endepunkt fra ADR-081), (3) spiller-CSV-import
markert påbegynt.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Erol Haagenrud 2026-08-17 13:03:14 +02:00
parent 366582d3ef
commit cc793339e4

View file

@ -7,8 +7,8 @@
> Status-koder: ✅ ferdig · 🔨 pågår · 📋 planlagt/fanget · ❓ trenger beslutning
> · 🔀 endret fra opprinnelig råd · 💤 utsatt (bevisst)
>
> Sist oppdatert: 2026-08-14 (stale-opprydding — seks seksjoner rettet
> til å reflektere faktisk levert status, se CHANGELOG.md samme dato)
> Sist oppdatert: 2026-08-17 (NGF-spilleform-sammenligning, manuell
> koordinat-editor og spiller-CSV-import notert, se seksjonene nederst)
---
@ -4517,3 +4517,116 @@ innlogging/auth-flyten fikk den nye "clubhouse"-paletten. Resten av appen
palett (se DESIGN_SYSTEM.md) inntil videre — retemaes gradvis, skjerm for
skjerm, når de likevel røres i senere runder. Ingen egen stor
retemaings-runde er igangsatt eller bedt om.
## NGF spilleformer vs. det TeeCup faktisk har bygget — 📋 NOTERT, IKKE besluttet hva som skal bygges
Bruker lastet opp NGF sitt offisielle "Spilleformer"-dokument (sist
endret 4. oktober 2023, `Temp-uploads/spilletyper-og-spilleformer-2023
(1).pdf` — identisk med den tidligere opplastede versjonen samme navn
uten "(1)") 2026-08-17 og ba om en sammenligning mot alt TeeCup faktisk
har bygget. Sjekket mot de LIVE CHECK-constraintene i `teecup_db` (ikke
bare dokumentasjon): `round.play_format`, `session.format`,
`tournament.scoring_method`.
**Dekket** (rett frem eller under annet navn): Single/match, Foursome,
Four-Ball, Greensome, Scramble (2-/4-manns + egen solo-variant utover
NGF), Individuell slagspill, Stableford, Eclectic, Flaggkonkurranse,
Københavner, Nassau (bygget som poeng-panel oppå en singel-match, ikke
egen format-verdi), Chapman (= NGFs "Irish Greensome", samme mekanikk
annet navn), High-low-high (= NGFs "Four-ball beste og dårligste").
Skins/Bingo Bango Bongo/Money Ball/Shamble er TeeCup-tillegg UTOVER
NGF-lista (ikke i dokumentet i det hele tatt).
**Ikke dekket -- ekte hull i NGF-lista, ingen omtale andre steder i
denne filen:**
- **Amerikaner** -- 4 spillere, 12 poeng/hull fordelt etter plassering
(8-4-0-0 / 6-6-0-0 / 4-4-4-0 / 3-3-3-3 osv. avhengig av utfall)
- **Four-ball sammenlagt** / **Four-ball besteball og sammenlagt** --
enklere lag-sammenlagt-varianter (kun best-ball-varianten er bygget)
- **Hallington** -- poengformel (hullets par × 2 minus brukte slag)
- **Hidden hole** -- et forhåndsbestemt antall tilfeldige hull trekkes
ut og telles etter at hele runden er spilt
- **Ransome** -- 3×6-hulls rotasjon: fourball → foursome → sammenlagt
- **Mexican Scramble** -- scramble-variant der spilleren hvis slag ble
valgt ikke får slå neste slag
- **Mulligan** -- HCP-baserte omslag, kan tas når som helst
- **Snorkonkurranse** -- spilleren får en snor (lengde = spillehandicap
i meter) til å forbedre ballens leie med
- **Three-ball match / Threesome (match og slagspill)** -- ekte
3-spiller-matchformater (kan i praksis omgås i dag med 3 separate
1v1-matcher manuelt satt opp, men ikke som egen, sammenhengende
turneringsform)
- **Maksimum Score** som egen, distinkt konkurranseform (migrasjon 038
sin generelle "pickup"-mekanikk dekker DELER av dette, men ikke som
eget valgbart format med par+4-cap)
- **Bogey/Par-konkurranse** -- matchspill mot et fast target-resultat,
ikke stableford-poeng
- **Nærmest hullet / Lengste drive** -- vanlige side-konkurranser ved
siden av hovedturneringen, ingen støtte i det hele tatt (verken som
eget "mini-format" eller som en tilleggsmarkering på en runde/økt)
**Vurdert, men trolig ikke aktuelt å bygge:** Pro Am er en deltaker-
sammensetning (profesjonell + amatører), ikke en distinkt scoringsform
-- TeeCup har ingen pro/am-status-modell i dag, og det er uklart om det
gir egenverdi å bygge som eget format fremfor bare la brukeren sette opp
et vanlig lag.
**Neste steg:** ingen bygging igangsatt. Når/hvis bruker vil prioritere
noen av disse, bør de vurderes én om gangen (samme mønster som de åtte
formatene i punkt 14/CHANGELOG.md) -- flere av dem (Nærmest hullet/
Lengste drive spesielt) er trolig enklere å bygge enn et helt nytt
scoringsformat, siden de er sidespill uavhengig av selve rundens
hovedformat.
## Manuell koordinat-editor for rangefinder-punkter — 📋 NOTERT, IKKE besluttet/designet
Etter ADR-081 (migrasjon 079, rangefinder for offisielle baner) kan
koordinater for en offisiell (TeeOff-koblet) bane settes via `PUT /orgs/
{id}/courses/{id}/coordinates` -- men KUN via et rått API-kall (Claude
kjørte dette manuelt for Tjøme, to runder på rad). Bruker ba 2026-08-17
om en ekte selvbetjent vei: "et system for mulighet for å legge inn
koordinater manuelt, uten at jeg må spørre deg."
**Grunnlag allerede på plass, verifisert denne runden:**
- Skrive-endepunktet for OFFISIELLE baner finnes allerede (`courses.py`,
se ADR-081) -- mangler kun et menneskelig grensesnitt foran seg.
- GolfAPI-koblede PERSONLIGE baner (`personal_course`/`golfapi_course_
coordinate`) har derimot INGEN manuell skrive-vei i det hele tatt --
fylles i dag kun automatisk via `golfapi_cache.get_or_fetch_golfapi_
course()`. Bør trolig få en tilsvarende manuell overstyrings-/
tilleggs-vei, ikke bare offisielle baner.
- `MapPointPicker` (`frontend/components/shot/map-point-picker.tsx`,
Mapbox, brukt til slagmåling/ADR-048) er en FERDIG, produksjonsbrukt
"klikk et punkt på kartet og få lat/long tilbake"-komponent -- den
tyngste enkeltbrikken en koordinat-editor trenger finnes allerede,
trolig gjenbrukbar med moderat tilpasning fremfor å bygges fra bunnen.
- Selve TYPE-valget (bunker/vann/tre/landemerke/tee/green osv. +
front/midt/bak + venstre/senter/høyre) må fortsatt gjøres av et
menneske via et skjema/dropdown -- Tjøme-rundens "Voll"/"Bjella"-
erfaring viste konkret at fritekst-til-kategori IKKE kan automatiseres
pålitelig. Editoren bør altså være: velg bane/hull → klikk punkt på
kart (eller tast lat/long manuelt) → velg type/plassering/side fra
dropdown → lagre. Sannsynligvis også en tabell-/listevisning av
allerede lagrede punkter per hull (les via eksisterende `GET .../
coordinates`) med slette-/rediger-mulighet.
**Neste steg:** egen planrunde (ikke påbegynt) -- avklare om `GET`/`PUT`
trenger utvidelse for GolfAPI-baner, konkret UI-flyt (kart vs. rent
skjema, eller begge), og om dette skal være en frittstående admin-side
eller hektes inn i eksisterende baneoppsett-flyt i `courses.py`-relatert
UI (se "Baneoppsett i turneringer"-seksjonen over).
## Massimport av spillere til organisasjon/turnering (CSV) + redigerbar spillertabell — 🔨 PÅBEGYNT 2026-08-17
Bruker ba om en måte å masseimportere spillere fremfor én-og-én, og
spurte konkret om en tabell der ALLE felt er redigerbare. Research denne
runden bekreftet: ingen bulk-endepunkt finnes (`POST /orgs/{id}/players`
er kun én-om-gangen, frontend gjør det i en løkke i dag), og INGEN
redigerbar-tabell-UI-mønster finnes noe sted i kodebasen (all redigering
i dag er skjema/modal-basert) -- begge deler er reelt nytt arbeid, ikke
gjenbruk av et eksisterende mønster. `player.user_id` kobles automatisk
til en ekte konto ved fremtidig innlogging via e-post (samme mekanisme
som selvregistrering), så importen selv trenger ikke håndtere
invitasjon -- bare opprette rader.
Se ADR (skrives når planen er ferdig) for design/omfang.