Gjør turneringsnavn/-datoer PATCH-bare, kartlegg org-oppsett-gapet
name/start_date/end_date manglet helt fra TournamentUpdate. Påmeldings-/ synlighetsfeltene var allerede fullt fungerende på backend (ekte selvregistrerings-logikk), men uten UI noe sted -- V0-prompt skrevet for en ny TournamentSettingsCard, ikke bygget ennå.
This commit is contained in:
parent
300cb8aeaf
commit
18bfe555a0
3 changed files with 98 additions and 0 deletions
31
CHANGELOG.md
31
CHANGELOG.md
|
|
@ -12737,3 +12737,34 @@ Neste steg:
|
||||||
|
|
||||||
**Rullet ut:** venter på bekreftelse (migrasjon 085 mot ekte
|
**Rullet ut:** venter på bekreftelse (migrasjon 085 mot ekte
|
||||||
`teecup_db` krever egen bekreftelse, se CLAUDE.md).
|
`teecup_db` krever egen bekreftelse, se CLAUDE.md).
|
||||||
|
|
||||||
|
118. **`name`/`start_date`/`end_date` gjort PATCH-bare + org-oppsettet
|
||||||
|
sitt store gjenstående gap kartlagt -- 2026-08-18.** Bruker: "HVOR
|
||||||
|
er grensesnittet for å sette opp alle parametrene når det gjelder
|
||||||
|
en turnering? ... Vi mangler jo nesten alt." Undersøkt: `name`/
|
||||||
|
`start_date`/`end_date` var IKKE en gang i `TournamentUpdate`-
|
||||||
|
modellen (kolonnene har eksistert siden migrasjon 001/006, aldri
|
||||||
|
PATCH-bare). `visibility`/`description`/`registration_deadline`/
|
||||||
|
`registration_capacity`/`registration_overflow_policy`/
|
||||||
|
`registration_requires_approval` derimot: FULLT fungerende backend
|
||||||
|
(ekte påmeldingsfrist-/kapasitet-/venteliste-/godkjenning-logikk i
|
||||||
|
`registration.py`), men INGEN UI noe sted til å sette dem -- en
|
||||||
|
ferdigbygd funksjon ingen organisator kan nå. Kun `hero_image`
|
||||||
|
(Presentasjon-fanen) og de allerede bygde kortene (scoringsmetode/
|
||||||
|
runder/cut/tiebreak/klasser/deltakere) var reelt dekket.
|
||||||
|
|
||||||
|
La kun til `name`/`start_date`/`end_date` i `TournamentUpdate`
|
||||||
|
(samme generiske PATCH-endepunkt som resten) -- selve UI-en for
|
||||||
|
HELE denne innstillings-samlingen er bevisst IKKE håndkodet (dette
|
||||||
|
er en ny, betydelig UI-flate, ikke en liten tilføyelse til et
|
||||||
|
allerede håndkodet kort, se [[feedback_frontend_via_v0]]). V0-prompt
|
||||||
|
skrevet og levert til bruker samme dag for en ny
|
||||||
|
`TournamentSettingsCard` øverst i Oppsett-fanen, IKKE bygget ennå.
|
||||||
|
|
||||||
|
**Verifisert:** to nye backend-tester i `tests/test_tournament_
|
||||||
|
update.py` (navn/datoer, samt en eksplisitt bekreftelse på at
|
||||||
|
påmeldings-/synlighets-feltene FAKTISK var funksjonelle bak
|
||||||
|
kulissene hele tiden) -- 137/137 grønt (opp fra 135).
|
||||||
|
|
||||||
|
**Rullet ut:** venter på bekreftelse (ren backend-tillegg, ingen
|
||||||
|
migrasjon -- kolonnene fantes allerede).
|
||||||
|
|
|
||||||
|
|
@ -201,6 +201,16 @@ class TournamentUpdate(BaseModel):
|
||||||
"""Alle felt valgfrie -- kun de som faktisk sendes med blir endret
|
"""Alle felt valgfrie -- kun de som faktisk sendes med blir endret
|
||||||
(PATCH-semantikk via Pydantic sin exclude_unset, se update_tournament)."""
|
(PATCH-semantikk via Pydantic sin exclude_unset, se update_tournament)."""
|
||||||
|
|
||||||
|
# name/start_date/end_date (2026-08-18) -- kolonnene har eksistert
|
||||||
|
# siden 001/006, men INGEN UI har noensinne hatt en vei til å SETTE
|
||||||
|
# dem (ADR-030 sin kommentar i list_tournaments dokumenterer nettopp
|
||||||
|
# dette -- "ingen UI noensinne har hatt en vei til å SETTE" start_date/
|
||||||
|
# end_date, alltid utledet fra økter i stedet). Lagt til her etter at
|
||||||
|
# bruker påpekte at org-oppsettet generelt mangler nesten alle
|
||||||
|
# turnering-parametrene en organisator faktisk trenger.
|
||||||
|
name: str | None = Field(default=None, min_length=1, max_length=200)
|
||||||
|
start_date: date | None = None
|
||||||
|
end_date: date | None = None
|
||||||
status: str | None = Field(default=None, pattern="^(draft|active|completed|archived)$")
|
status: str | None = Field(default=None, pattern="^(draft|active|completed|archived)$")
|
||||||
visibility: str | None = Field(default=None, pattern="^(public|org|participants)$")
|
visibility: str | None = Field(default=None, pattern="^(public|org|participants)$")
|
||||||
format_type: str | None = Field(default=None, pattern="^(team|individual)$")
|
format_type: str | None = Field(default=None, pattern="^(team|individual)$")
|
||||||
|
|
|
||||||
57
tests/test_tournament_update.py
Normal file
57
tests/test_tournament_update.py
Normal file
|
|
@ -0,0 +1,57 @@
|
||||||
|
"""
|
||||||
|
Turneringsnavn/-datoer (2026-08-18) -- kolonnene har eksistert siden
|
||||||
|
migrasjon 001/006, men ingen UI har noensinne hatt en vei til å SETTE
|
||||||
|
dem via PATCH før nå (se update_tournament sin docstring-kommentar).
|
||||||
|
Lagt til etter at bruker påpekte at org-oppsettet mangler de fleste
|
||||||
|
turnering-parametrene en organisator faktisk trenger.
|
||||||
|
"""
|
||||||
|
|
||||||
|
from datetime import date
|
||||||
|
|
||||||
|
from app.routers.tournaments import TournamentUpdate, update_tournament
|
||||||
|
|
||||||
|
from tests.conftest import create_org, create_tournament
|
||||||
|
|
||||||
|
|
||||||
|
async def test_update_name_and_dates(pool):
|
||||||
|
org_id = await create_org()
|
||||||
|
tournament_id = await create_tournament(org_id, name="Opprinnelig navn")
|
||||||
|
|
||||||
|
updated = await update_tournament(
|
||||||
|
tournament_id,
|
||||||
|
TournamentUpdate(
|
||||||
|
name="Nytt navn",
|
||||||
|
start_date=date(2026, 9, 1),
|
||||||
|
end_date=date(2026, 9, 3),
|
||||||
|
),
|
||||||
|
organization_id=org_id,
|
||||||
|
)
|
||||||
|
assert updated.name == "Nytt navn"
|
||||||
|
assert updated.start_date == date(2026, 9, 1)
|
||||||
|
assert updated.end_date == date(2026, 9, 3)
|
||||||
|
|
||||||
|
|
||||||
|
async def test_update_registration_and_visibility_fields(pool):
|
||||||
|
"""Bekrefter at feltene som allerede er fullt fungerende i
|
||||||
|
registration.py (påmeldingsfrist/kapasitet/venteliste/godkjenning)
|
||||||
|
faktisk lar seg sette via PATCH -- de manglet kun UI, ikke
|
||||||
|
backend-støtte."""
|
||||||
|
org_id = await create_org()
|
||||||
|
tournament_id = await create_tournament(org_id)
|
||||||
|
|
||||||
|
updated = await update_tournament(
|
||||||
|
tournament_id,
|
||||||
|
TournamentUpdate(
|
||||||
|
visibility="public",
|
||||||
|
description="En testturnering",
|
||||||
|
registration_capacity=40,
|
||||||
|
registration_overflow_policy="waitlist",
|
||||||
|
registration_requires_approval=True,
|
||||||
|
),
|
||||||
|
organization_id=org_id,
|
||||||
|
)
|
||||||
|
assert updated.visibility == "public"
|
||||||
|
assert updated.description == "En testturnering"
|
||||||
|
assert updated.registration_capacity == 40
|
||||||
|
assert updated.registration_overflow_policy == "waitlist"
|
||||||
|
assert updated.registration_requires_approval is True
|
||||||
Loading…
Reference in a new issue