No description
Find a file
Erol Haagenrud 9b7ff8e2ef Eclectic-format for org-individuelle turneringer (Del C) + tre UI-rettelser
Del C (ADR-068, migrasjon 072, siste del av den tredelte utvidelsen som
startet med Flaggturnering GPS/kart, se ADR-066/067): nytt format
eclectic_gross/eclectic_net/eclectic_stableford -- beste resultat per
hull på tvers av en turnerings egne runder, krever samme bane (avvist
tydelig ved rundeopprettelse ellers). Regnes ut ved lesing, ingen nye
tabeller. Bevisst avvik fra opprinnelig plan: integrert som en ny gren
i eksisterende individual-leaderboard-endepunkt fremfor et nytt eget
endepunkt -- se ADR-068 for begrunnelsen.

Tre ikke-relaterte, brukerrapporterte UI-rettelser tatt med i samme
runde: avstandsindikatoren brukte "grønn"/"Midt" i stedet for riktige
golf-uttrykk "green"/"senter", og "Oppdateres live"-badgen fjernet.
"Antall hull"-bryteren i Ny runde-veiviseren fikk samme grønne
aksent-valgt-stil som resten av samme skjerm (delt Segmented-primitiv).

Se ARCHITECTURE_DECISIONS.md (ADR-068) og CHANGELOG.md (punkt 84) for
full begrunnelse og verifiseringslogg.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-14 11:12:25 +02:00
.claude Alt kompilerer rent. Oppsummering av denne runden: 2026-08-10 18:34:31 +02:00
.forgejo/workflows Frontend-testinfrastruktur (Vitest) -- geo, offline-queue, formats 2026-08-10 23:44:30 +02:00
__pycache__ All five tasks from the original list are complete, plus one critical production bug found and fixed along the way. Summary: 2026-08-05 21:37:32 +02:00
app Eclectic-format for org-individuelle turneringer (Del C) + tre UI-rettelser 2026-08-14 11:12:25 +02:00
frontend Eclectic-format for org-individuelle turneringer (Del C) + tre UI-rettelser 2026-08-14 11:12:25 +02:00
scripts Automatisert backend-testinfrastruktur: RLS, versjonssjekk, aldersgrense 2026-08-10 22:25:02 +02:00
tests Eclectic-format for org-individuelle turneringer (Del C) + tre UI-rettelser 2026-08-14 11:12:25 +02:00
.dockerignore TeeCup er nå containerisert og live på https://teecup.teeoff.no. Dette var den mest hendelsesrike runden denne økten — første gang noe rørte ekte, permanent infrastruktur, og det viste seg berettiget: 2026-07-16 21:47:34 +02:00
.gitignore Selvhostet Forgejo Actions-runner for backend-testene 2026-08-10 22:41:48 +02:00
.mcp.json Update Todos 2026-07-27 14:34:18 +02:00
001_initial_schema.sql Første commit for teecup 2026-07-16 07:18:01 +02:00
002_roles_and_grants.sql Fix migration 002: psql does not interpolate :'var' inside DO $$ blocks 2026-07-16 08:24:48 +02:00
003_scoring_and_blinddraw.sql Utgangspunktet 2026-07-16 07:26:04 +02:00
004_auth.sql Ekte autentisering er bygget og verifisert. X-Debug-User-Id-stubben er helt fjernet, ingen fallback beholdt. 2026-07-16 15:16:53 +02:00
005_rls_null_guard.sql RLS-tomstreng-buggen er fikset og verifisert grundig. 2026-07-16 15:34:24 +02:00
006_scheduling_and_locale.sql Før kommunikasjon med V0 2026-07-17 21:40:42 +02:00
007_registration_and_player_fields.sql ADR-017 er skrevet inn, og migrasjonen er ferdig og verifisert: 2026-07-18 08:24:55 +02:00
008_link_player_by_email.sql Migrasjon 008 er live på ekte teecup_db, backend er redeployet, alt verifisert (teeoff.no upåvirket gjennom hele prosessen). 2026-07-18 09:03:37 +02:00
009_landing_pages_and_visibility.sql ADR-018 sin backend er ferdig, verifisert og live. Oppsummert: 2026-07-18 09:45:11 +02:00
010_official_course_unique_ref.sql Bygget, og verifisert grundig mot ekte infrastruktur — inkludert et ekte kall mot teeoff_api (søkte opp «Borregaard», importerte Borregaard Golfklubb sin 18-hulls hovedbane med alle hull, 4 tee-farger × kjønn, ratinger, og opprettet faktisk en økt med den importerte banen). Duplikat-import ble korrekt avvist (409), kryss-org-isolasjon holder, test_isolation.sql 12/12. 2026-07-18 12:44:05 +02:00
011_join_code_and_leading_side.sql ackend for the join-code, leading_side, and projected-standings work is fully verified against a fresh scratch database (migrations 001–011, test_isolation.sql 12/12, and live end-to-end checks: join-code generation/uniqueness, code resolution, visibility bypass on both the tournament view and registration — including case-insensitivity and rejection of a wrong code — plus a full hole-by-hole match simulation confirming leading_side/status_text stay in sync through "1 UP" → "AS" → a decided "9&7", with the leaderboard's projected points matching at each stage: 1.0/0.0 while A led, 0.5/0.5 at all-square, and settling to equal actual/projected once decided). 2026-07-19 09:23:35 +02:00
012_password_2fa_and_org_invitations.sql Update Todos 2026-07-19 10:36:50 +02:00
013_messaging.sql 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
014_tee_gender_to_rating.sql Update Todos 2026-07-20 08:53:53 +02:00
015_user_profile.sql Update Todos 2026-07-20 10:41:30 +02:00
016_profile_contact.sql Live og dokumentert. /dashboard er nå den ene, felles adressen for enhver innlogget bruker — organisator, spiller, eller begge — med personlig profil (inkl. e-post og mobil) redigerbar på /account. 2026-07-20 11:32:10 +02:00
017_secondary_email.sql Update Todos 2026-07-22 06:14:31 +02:00
018_handicap_history.sql Update Todos 2026-07-22 06:31:11 +02:00
019_profile_country_bio.sql Update Todos 2026-07-22 07:53:29 +02:00
020_personal_rounds.sql Andre byggesteg ferdig: databaseskjemaet. 2026-07-22 10:46:10 +02:00
021_round_participant_rating_snapshot.sql Migrasjonen er kjørt, og jeg har fortsatt helt til et komplett, verifisert API-lag. 2026-07-22 11:31:08 +02:00
022_round_stats_and_bag.sql Oppsummering av det som er fikset/bygget i denne runden: 2026-07-24 06:27:35 +02:00
023_round_start_time.sql Update Todos 2026-07-24 11:21:39 +02:00
024_round_name.sql All three changes are implemented and scratch-verified (22/22 checks passed, test_isolation.sql still 12/12, frontend typechecks cleanly). Summary of what's ready to ship: 2026-07-25 06:29:09 +02:00
025_friends.sql Backend for fase 1 (venner-kjernen) er bygget og scratch-verifisert (31/31 sjekker, test_isolation.sql fortsatt 12/12). Ny migrasjon 025_friends.sql, nytt app/routers/friends.py med tiered søk, forespørsel/aksept/fjern, og privat kategorisering — bekreftet at kategoriseringen faktisk er privat (B ser aldri hvilke grupper A har satt B i). 2026-07-25 08:14:48 +02:00
026_notifications.sql Varsler (fra zip 20): in-app varslingssenter er live — bjelle med uleste-tall i dashbord-headeren, /my-notifications-side. Trigges i dag ved venneforespørsel sendt/akseptert; flere hendelser kan kobles på senere. 2026-07-26 06:53:58 +02:00
027_round_participant_user_unique.sql Update Todos 2026-07-26 08:22:41 +02:00
028_round_participant_tee.sql Alt er live. Kort oppsummert: 2026-07-26 09:18:52 +02:00
029_round_participant_guest_email.sql Leaderboard — ikke bygget frontend ennå, kun backend. V0-prompten er skrevet og ligger i FEATURE_BACKLOG.md, klar til å limes inn i v0.app. 2026-07-26 09:42:06 +02:00
030_actual_handicap_index.sql Alt er ferdig, verifisert og live. Oppsummert: 2026-07-28 11:04:51 +02:00
031_round_play_formats.sql Ferdig og live. Kort oppsummert: 2026-07-28 13:00:50 +02:00
032_round_visibility.sql Bygget: ADR-036 fase 2 — rundevisibilitet, helt etter det allerede designede mønsteret (privat/offentlig/venner-i-valgt-kategori): 2026-07-28 19:25:37 +02:00
033_notification_email_prefs.sql Update Todos 2026-07-28 20:09:21 +02:00
034_session_scorecard_invitations.sql Update Todos 2026-07-28 20:56:08 +02:00
035_round_flight_group.sql Update Todos 2026-07-28 22:34:16 +02:00
036_round_hole_selected_participant.sql Update Todos 2026-07-28 22:34:16 +02:00
037_push_subscriptions.sql Update Todos 2026-07-28 22:34:16 +02:00
038_stableford_and_pickup.sql Stableford is now a real spilleform for frittstående runder, alongside Slagspill/Match: selectable at round creation, editable afterward, shown as a badge everywhere the round appears. 2026-07-29 19:46:17 +02:00
039_hole_score_selected_participant.sql "Utslag brukt"-statistikk for scramble/greensome finnes nå også for org-scopede turneringer — samme funksjon som frittstående runder fikk 2026-07-25, bygget som en rask, avgrenset oppfølger. 2026-07-29 22:20:50 +02:00
040_individual_tournaments.sql Migrasjonsutkastet er klart og scratch-verifisert. Skrevet til /opt/teecup/040_individual_tournaments.sql — ikke kjørt mot ekte teecup_db, kun mot en isolert scratch-database jeg satte opp og ryddet opp etterpå. 2026-07-30 06:52:33 +02:00
041_chapman_format.sql All eight new turneringsformater have backend + engine complete and scratch-verified — Chapman, Nassau, Københavner, Bingo Bango Bongo, Flaggturnering, Shamble, Money Ball, and High-low-high. Built and tested one format at a time (engine tests → migration → API wiring → scratch verification) exactly per the approved plan: 2026-07-30 14:54:11 +02:00
042_copenhagen_round_and_tournament.sql All eight new turneringsformater have backend + engine complete and scratch-verified — Chapman, Nassau, Københavner, Bingo Bango Bongo, Flaggturnering, Shamble, Money Ball, and High-low-high. Built and tested one format at a time (engine tests → migration → API wiring → scratch verification) exactly per the approved plan: 2026-07-30 14:54:11 +02:00
043_bbb_round_format.sql All eight new turneringsformater have backend + engine complete and scratch-verified — Chapman, Nassau, Københavner, Bingo Bango Bongo, Flaggturnering, Shamble, Money Ball, and High-low-high. Built and tested one format at a time (engine tests → migration → API wiring → scratch verification) exactly per the approved plan: 2026-07-30 14:54:11 +02:00
044_bbb_individual_tournament.sql All eight new turneringsformater have backend + engine complete and scratch-verified — Chapman, Nassau, Københavner, Bingo Bango Bongo, Flaggturnering, Shamble, Money Ball, and High-low-high. Built and tested one format at a time (engine tests → migration → API wiring → scratch verification) exactly per the approved plan: 2026-07-30 14:54:11 +02:00
045_flag_round_format.sql All eight new turneringsformater have backend + engine complete and scratch-verified — Chapman, Nassau, Københavner, Bingo Bango Bongo, Flaggturnering, Shamble, Money Ball, and High-low-high. Built and tested one format at a time (engine tests → migration → API wiring → scratch verification) exactly per the approved plan: 2026-07-30 14:54:11 +02:00
046_flag_individual_tournament.sql All eight new turneringsformater have backend + engine complete and scratch-verified — Chapman, Nassau, Københavner, Bingo Bango Bongo, Flaggturnering, Shamble, Money Ball, and High-low-high. Built and tested one format at a time (engine tests → migration → API wiring → scratch verification) exactly per the approved plan: 2026-07-30 14:54:11 +02:00
047_shamble_round_and_session.sql All eight new turneringsformater have backend + engine complete and scratch-verified — Chapman, Nassau, Københavner, Bingo Bango Bongo, Flaggturnering, Shamble, Money Ball, and High-low-high. Built and tested one format at a time (engine tests → migration → API wiring → scratch verification) exactly per the approved plan: 2026-07-30 14:54:11 +02:00
048_money_ball_round.sql All eight new turneringsformater have backend + engine complete and scratch-verified — Chapman, Nassau, Københavner, Bingo Bango Bongo, Flaggturnering, Shamble, Money Ball, and High-low-high. Built and tested one format at a time (engine tests → migration → API wiring → scratch verification) exactly per the approved plan: 2026-07-30 14:54:11 +02:00
049_money_ball_session.sql All eight new turneringsformater have backend + engine complete and scratch-verified — Chapman, Nassau, Københavner, Bingo Bango Bongo, Flaggturnering, Shamble, Money Ball, and High-low-high. Built and tested one format at a time (engine tests → migration → API wiring → scratch verification) exactly per the approved plan: 2026-07-30 14:54:11 +02:00
050_high_low_high_round_and_session.sql All eight new turneringsformater have backend + engine complete and scratch-verified — Chapman, Nassau, Københavner, Bingo Bango Bongo, Flaggturnering, Shamble, Money Ball, and High-low-high. Built and tested one format at a time (engine tests → migration → API wiring → scratch verification) exactly per the approved plan: 2026-07-30 14:54:11 +02:00
051_round_allowance_override.sql Ja, jeg forsto rekkefølgen — steg 1 og 2 er nå ferdig og scratch-verifisert: 2026-08-02 08:24:01 +02:00
052_guest_name_split.sql Update Todos 2026-08-03 06:24:57 +02:00
053_tournament_classes.sql Alt er bygget og grundig scratch-verifisert — både API-nivå og ekte nettleser-klikk, på begge turneringstyper. Før jeg ruller ut mot ekte teecup_db, her er planen: 2026-08-04 03:44:16 +02:00
054_personal_course_provenance.sql Fiks turneringsoppsett-rekkefølge, koble til TeeOff-import, og bygg delt bane-mal-bibliotek 2026-08-04 11:34:28 +02:00
055_order_of_merit.sql Bygg Order of Merit: sesong-sammenlagt spillerrangering på tvers av turneringer 2026-08-04 14:19:30 +02:00
056_scramble_solo_round.sql All five tasks from the original list are complete, plus one critical production bug found and fixed along the way. Summary: 2026-08-05 21:37:32 +02:00
057_scramble_solo_match_round.sql All five tasks from the original list are complete, plus one critical production bug found and fixed along the way. Summary: 2026-08-05 21:37:32 +02:00
058_round_messages.sql e reelle bugger (500 på /feeds paginering, en rute-/rewrite-kollisjon på /feed, og manglende WS-refetch-kobling for kommentarer) — se ADR-044/CHANGELOG for detaljer. Før jeg ruller dette ut mot ekte teecup_db, her er planen: 2026-08-06 07:01:22 +02:00
059_post_reactions_and_comments.sql Før redesign 2026-08-07 22:02:56 +02:00
060_round_shot.sql Før redesign 2026-08-07 22:02:56 +02:00
061_round_shot_end_method.sql Kort på hull-kortet: "end"-steget (ballens posisjon) tilbyr nå samme valg som utslags-steget: GPS ("Jeg er ved ballen nå") eller kart ("Vis kart mens jeg går"). 2026-08-08 21:38:10 +02:00
062_round_hole_version.sql Alt kompilerer rent. Oppsummering av denne runden: 2026-08-10 18:34:31 +02:00
063_hole_score_version.sql Optimistisk versjonssjekk for org-turneringers match-scoring 2026-08-10 23:19:29 +02:00
064_message_tags.sql @-tagging (backend): medspillere/venner i runde-feeden 2026-08-11 09:10:17 +02:00
065_golfapi_courses.sql Avstand til mål via GolfAPI.io (Tjøme) + statistikk-graf-finpuss 2026-08-12 21:39:13 +02:00
066_round_participant_completion.sql Per-deltaker-fullføring av runder + scorekort på e-post; Larvik/Nesbyen via GolfAPI 2026-08-13 21:24:25 +02:00
067_golfapi_coordinate_more_poi_types.sql Per-deltaker-fullføring av runder + scorekort på e-post; Larvik/Nesbyen via GolfAPI 2026-08-13 21:24:25 +02:00
068_golfapi_tee_men_rating_nullable.sql Per-deltaker-fullføring av runder + scorekort på e-post; Larvik/Nesbyen via GolfAPI 2026-08-13 21:24:25 +02:00
069_flag_plant.sql Flaggturnering: GPS-flaggplanting (Del A) + kartoversikt (Del B) 2026-08-14 10:38:54 +02:00
070_flag_plant_individual_tournament.sql Flaggturnering: GPS-flaggplanting (Del A) + kartoversikt (Del B) 2026-08-14 10:38:54 +02:00
071_flag_map_visibility.sql Flaggturnering: GPS-flaggplanting (Del A) + kartoversikt (Del B) 2026-08-14 10:38:54 +02:00
072_eclectic_individual_tournament.sql Eclectic-format for org-individuelle turneringer (Del C) + tre UI-rettelser 2026-08-14 11:12:25 +02:00
ARCHITECTURE_DECISIONS.md Eclectic-format for org-individuelle turneringer (Del C) + tre UI-rettelser 2026-08-14 11:12:25 +02:00
CHANGELOG.md Eclectic-format for org-individuelle turneringer (Del C) + tre UI-rettelser 2026-08-14 11:12:25 +02:00
CLAUDE.md Før redesign 2026-08-07 22:02:56 +02:00
DESIGN_SYSTEM.md Ny-runde-veiviseren er live med clubhouse-designet, bekreftet uten konsollfeil på teecup.golf. 2026-08-10 09:07:33 +02:00
docker-compose.yml Avstand til mål via GolfAPI.io (Tjøme) + statistikk-graf-finpuss 2026-08-12 21:39:13 +02:00
Dockerfile TeeCup er nå containerisert og live på https://teecup.teeoff.no. Dette var den mest hendelsesrike runden denne økten — første gang noe rørte ekte, permanent infrastruktur, og det viste seg berettiget: 2026-07-16 21:47:34 +02:00
Dockerfile.test Automatisert backend-testinfrastruktur: RLS, versjonssjekk, aldersgrense 2026-08-10 22:25:02 +02:00
FEATURE_BACKLOG.md Eclectic-format for org-individuelle turneringer (Del C) + tre UI-rettelser 2026-08-14 11:12:25 +02:00
handicap_engine.py Eclectic-format for org-individuelle turneringer (Del C) + tre UI-rettelser 2026-08-14 11:12:25 +02:00
pytest.ini Automatisert backend-testinfrastruktur: RLS, versjonssjekk, aldersgrense 2026-08-10 22:25:02 +02:00
TeeCup logo.svg e reelle bugger (500 på /feeds paginering, en rute-/rewrite-kollisjon på /feed, og manglende WS-refetch-kobling for kommentarer) — se ADR-044/CHANGELOG for detaljer. Før jeg ruller dette ut mot ekte teecup_db, her er planen: 2026-08-06 07:01:22 +02:00
teecup-beskrivelse.md 13-årsgrense — håndhevet server-side (eneste vei inn i appen, ADR-051) og med umiddelbar rød feilmelding klientside i begge profil-skjemaer. Testet på nøyaktig dagsgrensen. 2026-08-10 07:00:11 +02:00
teecup-scorekort-og-entry-spec.md Ja, den gir mye mening — og jeg sjekket to av påstandene direkte mot koden i stedet for å ta dem på tro: 2026-07-27 09:03:15 +02:00
TeeOff-logo-Retina-1.avif Før kommunikasjon med V0 2026-07-17 21:40:42 +02:00
test_handicap_engine.py Eclectic-format for org-individuelle turneringer (Del C) + tre UI-rettelser 2026-08-14 11:12:25 +02:00
test_isolation.sql ackend for the join-code, leading_side, and projected-standings work is fully verified against a fresh scratch database (migrations 001–011, test_isolation.sql 12/12, and live end-to-end checks: join-code generation/uniqueness, code resolution, visibility bypass on both the tournament view and registration — including case-insensitivity and rejection of a wrong code — plus a full hole-by-hole match simulation confirming leading_side/status_text stay in sync through "1 UP" → "AS" → a decided "9&7", with the leaderboard's projected points matching at each stage: 1.0/0.0 while A led, 0.5/0.5 at all-square, and settling to equal actual/projected once decided). 2026-07-19 09:23:35 +02:00