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
|
||||
`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
|
||||
(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)$")
|
||||
visibility: str | None = Field(default=None, pattern="^(public|org|participants)$")
|
||||
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