Portal: Spielerseite für alle, die am Spieler arbeiten (inkl. Links auf Spielernamen) #104

Open
opened 2026-10-18 10:07:25 +00:00 by claude · 1 comment
Collaborator

Erweitert am 25.10.2026 (Olli): Aus der Planung der URL-Neuordnung Etappe 5b ist ein eigenes Vorhaben geworden, das diesen Wunsch einschliesst. Es wird nach Etappe 5b gebaut; 5b stellt nur die Aufrufe um.

Ziel

Eine Spielerseite im Portal für alle, die am Spieler arbeiten (Verband: admin, poweruser; Spielleiter für die Spieler seines Vereins). Sie ersetzt die Bearbeiten-Dialoge und ist das Ziel der Links auf Spielernamen im Portal.

Entscheide 25.10.2026

  • Warum eine Seite: Name, Adresse, Telefon werden überschrieben; Verein und Klassierung haben eine Geschichte (jede Änderung gilt ab einem Datum, die alten Werte bleiben). Im Bearbeiten-Dialog stehen beide als Felder; einzelne Knöpfe oder anklickbare Zellen in der Liste „fühlen sich nicht richtig an“.
  • Aufbau: zuoberst Stammdaten (wichtigstes), darunter Verein (Geschichte + „Verein wechseln …“) und Klassierung/Elo (Werte + „Klassierung korrigieren …“), unten „Spieler löschen“. Die beiden Vorgänge öffnen kleine Dialoge über der Seite – kein Dialog im Dialog mehr.
  • Rollen: Verband und Spielleiter bekommen dieselbe Seite; der Spielleiter ohne Vereinswechsel, Klassierungskorrektur und Löschen. Captain ändert nichts.
  • Daten je Block, beim Öffnen gleichzeitig geladen: GET /api/players/{player_id} (fehlt heute), GET /api/players/{player_id}/memberships, GET /api/players/{player_id}/elo (beide vorhanden).
  • Rückweg über den Zurück-Link (ADR 0024); die Suche der Spielerliste gehört dafür in die URL.
  • Anlegen raus aus dem Spieler-Picker: Anlegen und in die Mannschaft übernehmen sind zwei Sachen. Eigener Knopf „Spieler anlegen“ (Dialog); der Picker wählt nur noch bestehende Spieler. Der Knopf darf die Vereinsseite nicht verlassen (ungespeicherte Meldung ginge verloren). Vorschlag: im Tab „Mannschaften“ und unter Verein → Spieler.
  • Links auf Spielernamen: in den Listen ja; auf der Vereinsseite nicht ohne Schutz beim Verlassen – dort gibt es heute keinen.

Mockups

  • docs/mockups/2026-10-25-spielerseite.html (Variante C und D; D gewählt)
  • docs/mockups/2026-10-25-spieler-varianten-ab-nachmelden.html (verworfene Varianten A/B)

Noch offen

  • Ziel der Links für den Captain (liest Elo, ändert nichts): Spielerseite nur lesend oder öffentliche Seite?
  • Gleicher oder neuer Tab, falls doch auf die öffentliche Seite verlinkt wird.
  • Ungespeicherte Stammdaten beim Öffnen eines Vorgang-Dialogs.

Ursprünglicher Text (18.10.2026)

Im Portal gibt es zurzeit keinen Weg auf die Elo-Seite eines Spielers. Auf der öffentlichen Seite liegt hinter jedem Spielernamen ein Link auf die Spielerseite /spielbetrieb/spieler/{id} (Elo publiziert, Elo laufend, Elo-Verlauf, gewertete Einzel).

Gewünscht: Dieselben Links auch im Portal einbauen.

Wo die öffentliche Seite heute verlinkt:

  • Spielbericht einer Begegnung (MatchDetail.astro): Spieler in Einzeln und Doppeln
  • Turniere (spielbetrieb/turniere.astro): Heim- und Gastspieler je Spiel
  • Spielerliste (spielbetrieb/spieler/index.astro): jeder Name
  • Spielerseite selbst (spielbetrieb/spieler/[id].astro): Gegner in der Einzelliste

Im Portal entsprechend (beim Bau vollständig aufzählen): Resultatseite einer Begegnung (MatchResultPage, auch im Archiv), Turnierliste, Spielerlisten in Verwaltung und Verein, und überall sonst, wo das Portal einen Spielernamen zeigt, der öffentlich verlinkt ist.

**Erweitert am 25.10.2026 (Olli):** Aus der Planung der URL-Neuordnung Etappe 5b ist ein eigenes Vorhaben geworden, das diesen Wunsch einschliesst. Es wird nach Etappe 5b gebaut; 5b stellt nur die Aufrufe um. ## Ziel Eine **Spielerseite im Portal** für alle, die am Spieler arbeiten (Verband: admin, poweruser; Spielleiter für die Spieler seines Vereins). Sie ersetzt die Bearbeiten-Dialoge und ist das Ziel der Links auf Spielernamen im Portal. ## Entscheide 25.10.2026 - **Warum eine Seite:** Name, Adresse, Telefon werden überschrieben; Verein und Klassierung haben eine Geschichte (jede Änderung gilt ab einem Datum, die alten Werte bleiben). Im Bearbeiten-Dialog stehen beide als Felder; einzelne Knöpfe oder anklickbare Zellen in der Liste „fühlen sich nicht richtig an“. - **Aufbau:** zuoberst Stammdaten (wichtigstes), darunter Verein (Geschichte + „Verein wechseln …“) und Klassierung/Elo (Werte + „Klassierung korrigieren …“), unten „Spieler löschen“. Die beiden Vorgänge öffnen kleine Dialoge über der Seite – kein Dialog im Dialog mehr. - **Rollen:** Verband und Spielleiter bekommen dieselbe Seite; der Spielleiter ohne Vereinswechsel, Klassierungskorrektur und Löschen. Captain ändert nichts. - **Daten je Block**, beim Öffnen gleichzeitig geladen: `GET /api/players/{player_id}` (fehlt heute), `GET /api/players/{player_id}/memberships`, `GET /api/players/{player_id}/elo` (beide vorhanden). - **Rückweg** über den Zurück-Link (ADR 0024); die Suche der Spielerliste gehört dafür in die URL. - **Anlegen raus aus dem Spieler-Picker:** Anlegen und in die Mannschaft übernehmen sind zwei Sachen. Eigener Knopf „Spieler anlegen“ (Dialog); der Picker wählt nur noch bestehende Spieler. Der Knopf darf die Vereinsseite nicht verlassen (ungespeicherte Meldung ginge verloren). Vorschlag: im Tab „Mannschaften“ und unter Verein → Spieler. - **Links auf Spielernamen:** in den Listen ja; **auf der Vereinsseite nicht** ohne Schutz beim Verlassen – dort gibt es heute keinen. ## Mockups - `docs/mockups/2026-10-25-spielerseite.html` (Variante C und D; D gewählt) - `docs/mockups/2026-10-25-spieler-varianten-ab-nachmelden.html` (verworfene Varianten A/B) ## Noch offen - Ziel der Links für den Captain (liest Elo, ändert nichts): Spielerseite nur lesend oder öffentliche Seite? - Gleicher oder neuer Tab, falls doch auf die öffentliche Seite verlinkt wird. - Ungespeicherte Stammdaten beim Öffnen eines Vorgang-Dialogs. --- ## Ursprünglicher Text (18.10.2026) Im Portal gibt es zurzeit keinen Weg auf die Elo-Seite eines Spielers. Auf der öffentlichen Seite liegt hinter jedem Spielernamen ein Link auf die Spielerseite `/spielbetrieb/spieler/{id}` (Elo publiziert, Elo laufend, Elo-Verlauf, gewertete Einzel). **Gewünscht:** Dieselben Links auch im Portal einbauen. **Wo die öffentliche Seite heute verlinkt:** - Spielbericht einer Begegnung (`MatchDetail.astro`): Spieler in Einzeln und Doppeln - Turniere (`spielbetrieb/turniere.astro`): Heim- und Gastspieler je Spiel - Spielerliste (`spielbetrieb/spieler/index.astro`): jeder Name - Spielerseite selbst (`spielbetrieb/spieler/[id].astro`): Gegner in der Einzelliste **Im Portal entsprechend** (beim Bau vollständig aufzählen): Resultatseite einer Begegnung (`MatchResultPage`, auch im Archiv), Turnierliste, Spielerlisten in Verwaltung und Verein, und überall sonst, wo das Portal einen Spielernamen zeigt, der öffentlich verlinkt ist.
claude changed title from Portal: Spielernamen verlinken wie auf der öffentlichen Seite (Weg zur Elo-Seite) to Portal: Spielerseite für alle, die am Spieler arbeiten (inkl. Links auf Spielernamen) 2026-10-25 13:41:40 +00:00
Author
Collaborator

Antworttyp des Spielers (aus dem Service-Zuschnitt, 30.10.2026)

Heute gibt es zwei Antworttypen für denselben Spieler:

  • AdminPlayerResponse (flach, mit Verein und personId) kommt von GET/POST/PUT /api/players.
  • PlayerResponse (Adresse und Kontakt verschachtelt, mit eloBaseline) kommt von GET /api/clubs/{club_id}/players.

Seit der Etappe 5b bekommt auch der Spielleiter die flache Form und baut sie im Portal mit toPlayerResponse (portal/src/lib/players.ts) wieder um. Der neue Weg GET /api/players/{player_id} dieser Seite müsste sich für eine der beiden Formen entscheiden.

Mit der Spielerseite: beide zu einem Antworttyp PlayerResponse zusammenführen. Dabei fällt „Admin“ im Namen weg, der seit 5b nicht mehr stimmt, und toPlayerResponse entfällt. Welche Felder der gemeinsame Typ trägt, wird beim Bau entschieden.

Die Klassen sind im Zuschnitt entschieden (docs/2026-10-28-service-zuschnitt.md, Zeile Spieler): AdminPlayerResource → PlayerResource, heutige PlayerResource → ClubPlayerResource, beide → PlayerService. Das Elo der Seite kommt weiter über GET /api/players/{player_id}/elo (EloResource).

**Antworttyp des Spielers (aus dem Service-Zuschnitt, 30.10.2026)** Heute gibt es zwei Antworttypen für denselben Spieler: - `AdminPlayerResponse` (flach, mit Verein und `personId`) kommt von `GET`/`POST`/`PUT /api/players`. - `PlayerResponse` (Adresse und Kontakt verschachtelt, mit `eloBaseline`) kommt von `GET /api/clubs/{club_id}/players`. Seit der Etappe 5b bekommt auch der Spielleiter die flache Form und baut sie im Portal mit `toPlayerResponse` (`portal/src/lib/players.ts`) wieder um. Der neue Weg `GET /api/players/{player_id}` dieser Seite müsste sich für eine der beiden Formen entscheiden. **Mit der Spielerseite:** beide zu einem Antworttyp `PlayerResponse` zusammenführen. Dabei fällt „Admin“ im Namen weg, der seit 5b nicht mehr stimmt, und `toPlayerResponse` entfällt. Welche Felder der gemeinsame Typ trägt, wird beim Bau entschieden. Die Klassen sind im Zuschnitt entschieden (`docs/2026-10-28-service-zuschnitt.md`, Zeile Spieler): `AdminPlayerResource` → `PlayerResource`, heutige `PlayerResource` → `ClubPlayerResource`, beide → `PlayerService`. Das Elo der Seite kommt weiter über `GET /api/players/{player_id}/elo` (`EloResource`).
Sign in to join this conversation.
No description provided.