Meldungseingang: Mannschaften bearbeiten löscht Cup-Mannschaften samt Spielermeldungen #121

Open
opened 2026-10-20 11:02:45 +00:00 by claude · 0 comments
Collaborator

Aus dem Project-Review vom 19./20.10.2026 (Fundgrube, QUAL-8179f1, Critical). Am Code nachgeprüft am 20.10. (main 8ac1b58), in der Oberfläche noch nicht nachgestellt.

Was passiert

Im Meldungseingang (/verwaltung/meldungen) lassen sich die Meisterschafts-Mannschaften eines Vereins direkt in der Liste bearbeiten (InlineStructureEditor in RegistrationListPage.tsx).

  • Der Editor lädt nur die Meisterschafts-Mannschaften (Zeile 28).
  • Beim Speichern schickt er sie und hängt immer genau „Cup 1“ an. Gibt es keine Meisterschaftszeile mehr, schickt er eine leere Liste (Zeilen 47–50).
  • Das Backend (TeamStructureService.saveTeamStructure, Zeilen 82–91) nimmt die Liste als vollständigen Soll-Stand. Jede Mannschaft, die nicht mitkommt, löscht es, solange die Saison im Entwurf ist (Vorbereitung oder Meldung offen), samt ihren Spielermeldungen.

Beispiele

  • Ein Verein hat Cup 1 und Cup 2 gemeldet, beide mit Spielern. Der Verband ändert im Meldungseingang nur die Kategorie einer Meisterschafts-Mannschaft und speichert. Danach ist Cup 2 samt Spielermeldungen weg.
  • Der Verband entfernt alle Meisterschaftszeilen eines Vereins. Danach sind auch Cup 1 und seine Spieler weg.
  • Ein Verein ohne Cup bekommt beim Speichern still eine Cup-Mannschaft angelegt.
  • In der laufenden Saison löscht das Backend nicht, sondern weist mit 409 ab. Für einen Verein mit Cup 2 lässt sich die Struktur dann gar nicht speichern.

Warum es so ist

Dieselbe Aufgabe löst useClubRegistration.saveStructure (Vereinsmeldung) richtig: Sie übernimmt die vorhandenen Cup-Mannschaften. Der Meldungseingang hat eine eigene, ältere Fassung. RegistrationListPage.test.tsx (Zeilen 127–144) schreibt das Platzhalter-Verhalten „immer Cup 1“ als erwartet fest.

Vorschlag

  • Die Cup-Mannschaften aus ClubDetailResponse mitladen und unverändert mitschicken, wie saveStructure. Oder der Editor ruft einen Endpunkt auf, der nur die Meisterschaft betrifft.
  • Die Struktur-Logik an einer Stelle halten, statt sie in Meldungseingang und Vereinsmeldung doppelt zu führen.
  • Den Test in RegistrationListPage.test.tsx umstellen auf „Cup-Mannschaften bleiben erhalten“.
  • Alle Aufrufer von PUT /clubs/{id}/team-structure prüfen: Schickt jeder die vollständige Liste, die der Server als Soll nimmt?

Dringlichkeit

Akut wird es in der nächsten Meldeperiode. Auf Staging betrifft es auch jede Generalprobe des Saisonwechsels, die bis „Meldung offen“ läuft.

Abnahme

  • Ein Test legt Cup 1 und Cup 2 mit Spielern an, ändert im Meldungseingang eine Meisterschafts-Kategorie und prüft: Beide Cup-Mannschaften und ihre Spieler sind noch da.
  • Ein Verein ohne Cup hat nach dem Speichern weiter keinen Cup.
Aus dem Project-Review vom 19./20.10.2026 (Fundgrube, QUAL-8179f1, Critical). Am Code nachgeprüft am 20.10. (`main` 8ac1b58), **in der Oberfläche noch nicht nachgestellt**. ## Was passiert Im Meldungseingang (`/verwaltung/meldungen`) lassen sich die Meisterschafts-Mannschaften eines Vereins direkt in der Liste bearbeiten (`InlineStructureEditor` in `RegistrationListPage.tsx`). - Der Editor lädt **nur die Meisterschafts-Mannschaften** (Zeile 28). - Beim Speichern schickt er sie und hängt **immer genau „Cup 1“** an. Gibt es keine Meisterschaftszeile mehr, schickt er eine leere Liste (Zeilen 47–50). - Das Backend (`TeamStructureService.saveTeamStructure`, Zeilen 82–91) nimmt die Liste als **vollständigen Soll-Stand**. Jede Mannschaft, die nicht mitkommt, löscht es, solange die Saison im Entwurf ist (Vorbereitung oder Meldung offen), **samt ihren Spielermeldungen**. ## Beispiele - Ein Verein hat **Cup 1 und Cup 2** gemeldet, beide mit Spielern. Der Verband ändert im Meldungseingang nur die Kategorie einer Meisterschafts-Mannschaft und speichert. Danach ist **Cup 2 samt Spielermeldungen weg**. - Der Verband entfernt alle Meisterschaftszeilen eines Vereins. Danach sind **auch Cup 1 und seine Spieler weg**. - Ein Verein **ohne Cup** bekommt beim Speichern still eine Cup-Mannschaft angelegt. - In der laufenden Saison löscht das Backend nicht, sondern weist mit 409 ab. Für einen Verein mit Cup 2 lässt sich die Struktur dann gar nicht speichern. ## Warum es so ist Dieselbe Aufgabe löst `useClubRegistration.saveStructure` (Vereinsmeldung) richtig: Sie übernimmt die vorhandenen Cup-Mannschaften. Der Meldungseingang hat eine eigene, ältere Fassung. `RegistrationListPage.test.tsx` (Zeilen 127–144) schreibt das Platzhalter-Verhalten „immer Cup 1“ als erwartet fest. ## Vorschlag - Die Cup-Mannschaften aus `ClubDetailResponse` mitladen und unverändert mitschicken, wie `saveStructure`. Oder der Editor ruft einen Endpunkt auf, der nur die Meisterschaft betrifft. - Die Struktur-Logik an **einer** Stelle halten, statt sie in Meldungseingang und Vereinsmeldung doppelt zu führen. - Den Test in `RegistrationListPage.test.tsx` umstellen auf „Cup-Mannschaften bleiben erhalten“. - Alle Aufrufer von `PUT /clubs/{id}/team-structure` prüfen: Schickt jeder die vollständige Liste, die der Server als Soll nimmt? ## Dringlichkeit Akut wird es in der nächsten Meldeperiode. Auf Staging betrifft es auch jede Generalprobe des Saisonwechsels, die bis „Meldung offen“ läuft. ## Abnahme - Ein Test legt Cup 1 und Cup 2 mit Spielern an, ändert im Meldungseingang eine Meisterschafts-Kategorie und prüft: Beide Cup-Mannschaften und ihre Spieler sind noch da. - Ein Verein ohne Cup hat nach dem Speichern weiter keinen Cup.
Sign in to join this conversation.
No description provided.