teecup/frontend/components
Erol Haagenrud 3dd6224bfd Update Todos
Migrasjon 015: app_user-profilfelt + player_organizations_for_user()-bro

Backend: utvid Me + PATCH /auth/profile + avatar-opplasting/sletting

Backend: 'mine runder'-data + check_visibility-utvidelse for deltakere

Frontend: profil-seksjon i /account

Frontend: 'Mine runder'-seksjon + betinget tom-tilstand i dashboard.tsx

Scratch-verifisere alt (15 sjekker bestått)

Typesjekket frontend-build

ADR-031 + .md-oppdatering
Bygget og scratch-verifisert (15 automatiserte sjekker). Oppsummering:

Personlig profil — nye felt på selve kontoen (ikke på org-ens spillerdata, det er bevisst holdt atskilt siden en person kan ha ulike spiller-rader i ulike klubber): profilbilde, fornavn, etternavn, fødselsdato, kjønn, HCP, hjemmeklubb. Redigeres i en ny seksjon på /account. Sletting av enkeltfelt fungerer (send tomt/null), profilbilde kan lastes opp og fjernes.

"Mine runder" — ny seksjon øverst på dashbordet, viser turneringer du er rostret i på tvers av alle organisasjoner, uavhengig av om du er medlem noe sted.

Et reelt sikkerhetshull jeg fant underveis, ikke antatt på forhånd: da jeg testet "Mine runder" mot en faktisk ren spiller (ingen organisasjonsmedlemskap), oppdaget jeg at synlighetsregelen kun ga deltakere tilgang for det strengeste synlighetsnivået — ikke for standard-nivået («org»), som er det ALLE nye turneringer får automatisk. En ren spiller ville altså vært låst ute av sin egen, helt normale turnering. Fikset og verifisert grundig at det er en ren utvidelse: en fremmed innlogget bruker og en anonym leser blir fortsatt korrekt avvist som før.

Bevisst utenfor omfang, tydelig flagget: "Mine runder" lenker til den offentlige turnering-siden, ikke til lagets private chat eller scorekortet ennå — de krever fortsatt ekte organisasjonsmedlemskap, en strengere sperre brukt bredt i hele appen som jeg ikke ville endre uten en egen, forsiktig runde. Notert som naturlig neste steg.

Ingen kode for punkt 2 (midlertidige spillere) i denne runden, som avtalt.
2026-07-20 10:41:30 +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-20 10:41:30 +02:00
dashboard.tsx Update Todos 2026-07-20 10:41:30 +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
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
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 Nå dokumentasjonen er oppdatert. Klar for deploy — jeg viser planen først: 2026-07-19 11:41:57 +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-form.tsx Update Todos 2026-07-19 10:36:50 +02:00
wordmark.tsx Bygget: 2026-07-18 06:46:09 +02:00