MS-FE-3: Events UI umsetzen #103
Labels
No labels
component/backend
component/docs
component/e2e
component/frontend
component/infra
component/keycloak
prio/high
prio/low
prio/medium
type/bug
type/chore
type/feature
type/refactor
type/test
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
WompSchmiede/FamilienFeierPlaner#103
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Aufgaben
Backend-Endpunkte sind vollstaendig implementiert (MS-BE-API-2 bis MS-BE-API-4). Das Frontend baut auf MS-FE-1-Events-Grundstruktur auf.
Umsetzungsplan (Stand 2026-06-27)
chore(frontend): Orval-Typen fuer MS-FE-3 regeneriertnpm run generate:api, Typen auf Vollstaendigkeit prüfenfeat(frontend): Gaesteliste um Gruppen-Anzeige und Haushalts-Kontext erweitert/api/v1/groupsladen; +page.svelte: "Haushalt"-Spalte, groupId→groupName-Mappingfeat(frontend): Composite-Rollen-Auswahl und Event-Admin-Vergabe in GaestelisteupdateRole-Action; +page.svelte: Rollen-Dropdown, Event-Admin-Quick-Actionfeat(frontend): Haushaltsweiser Gast-Status (closes #103)Details im Umsetzungsplan-Kommentar.
Ueberschneidungen
Umsetzungsplan (Stand 2026-06-27)
Backend-Voraussetzungen
Saemtliche Backend-Endpunkte sind bereits implementiert (MS-BE-API-2 bis MS-BE-API-4):
GET /api/v1/events/{id}/guests— Gaesteliste mitgroupIdundcompositeRoleGET /api/v1/events/{id}/roles— Event-Rollen-Liste (EventRole[])PUT /api/v1/events/{id}/guests/{pid}/role— Gast-Rolle setzen (UpdateGuestRole)GET /api/v1/groups— Gruppen-Liste fuer HaushaltsnamenKein neues DB-Schema oder API-Endpunkt noetig.
Bereits erledigt (MS-FE-1 #101)
Schritt-fuer-Schritt-Plan
chore(frontend): Orval-Typen fuer MS-FE-3 regeneriertnpm run generate:api— sicherstellen dassGuest.groupId,Guest.compositeRole,EventRole,GuestRoleResponse,UpdateGuestRole,Groupkorrekt generiert sindfeat(frontend): Gaesteliste um Gruppen-Anzeige und Haushalts-Kontext erweitert+page.server.ts: zusaetzlich/api/v1/groupsladen;+page.svelte: Spalte "Haushalt" in Guest-DataTable, MappinggroupId->groupName, visuelle Gruppierung nach Haushaltfeat(frontend): Composite-Rollen-Auswahl und Event-Admin-Vergabe in Gaesteliste+page.server.ts:/api/v1/events/{id}/rolesladen; Actions:updateRole(PUT role);+page.svelte: Rollen-Dropdown in Guest-Aktionen, Quick-Action fuer Event-Admin-VergabeupdateRolesendet PUT; Page: Dropdown und Quick-Actionfeat(frontend): Haushaltsweiser Gast-Status (closes #103)Detaillierte Commit-Beschreibungen
Commit 1: Orval-Typen regeneriert
npm run generate:apiausfuehrenCommit 2: Gruppen-Anzeige + Haushalts-Kontext
+page.server.ts Aenderungen:
fetch('/api/v1/groups')→groups: Group[]groupsim Return-Objekt an die Page uebergeben+page.svelte Aenderungen:
groupsaus data laden{ key: 'group', label: 'Haushalt', sortable: true }in guest DataTablecol.key === 'group'groupId viagroups.find()aufloesenevents.test.ts:
/api/v1/groupsmit Testdaten"Haushalt"-Spalte und"groups"-Import checkenCommit 3: Composite-Rollen + Event-Admin-Vergabe
+page.server.ts Aenderungen:
fetch('/api/v1/events/{eventId}/roles')→eventRoles: EventRole[]updateRole:personIdundcompositeRoleaus FormDatacompositeRolemuss UUID oder leer seinPUT /api/v1/events/{eventId}/guests/{personId}/rolemit{ compositeRole: uuid | null }+page.svelte Aenderungen:
eventRolesaus data ladenpermissions.includes('event-admin')events.test.ts:
/api/v1/events/{id}/rolesmit Test-EventRolesupdateRolemit gueltigen/ungueltigen DatenCommit 4: Haushaltsweiser Gast-Status (closes #103)
+page.svelte Aenderungen:
updateStatusfuer jede Person im Haushalt nacheinanderHinweis: Batch-Aktion muss mehrere API-Calls taetigen. Bei Bedarf koennte spaeter ein Backend-Endpunkt
PUT /events/{id}/guests/batch-statusergaenzt werden (MS-REST).events.test.ts:
Abhaengigkeiten und Ueberschneidungen
Umsetzungsfortschritt
Commit 1+2 abgeschlossen (
7e478f4)Commit-Titel:
feat(frontend): Gaesteliste um Gruppen-Anzeige und Haushalts-Kontext erweitertEnthaelt:
npm run generate:apiausgefuehrt, generated.ts bereits aktuell (keine Aenderungen)+page.server.ts:/api/v1/groupswird im Guests/Payment-Tab geladen und alsgroupsan die Page uebergeben+page.svelte: Haushalt-Spalte (label: 'Haushalt') in Guest-DataTable, groupName-Funktion fuer groupId->groupName-Mapping, Spalte auch im Zahlungsabgleich-Tabevents.test.ts: Load-Test fuer groups im Guests-Tab, Page-Tests fuer Haushalt-Spalte und Group-ImportNaechste Schritte: Commit 3 — Composite-Rollen-Auswahl und Event-Admin-Vergabe