fix(backend+frontend): ?invitable=true ersetzt ?withoutGroup; Pending-Raeumung bei Gruppenbeitritt #209
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#209
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?
Beschreibung
Unter
app/groups/{groupId}listet der "Mitglied hinzufuegen"-Button keine Personen auf.Ursache
Der Fetch ruft
/api/v1/persons?withoutGroup=trueauf. Funktioniert theoretisch, aber:archived=false→ archivierte Personen ohne Haushalt werden ebenfalls angezeigt (bzw. blockieren ggf. die Liste)GroupMember-Eintrag und sind korrekt ausgeblendet. Aber wenn eine Einladung abgelehnt wird, bleibt der Eintrag alsapprovedBy: nullbestehen.Geplanter Fix
1. Backend:
withoutGroup→invitablebackend/src/routes/persons.ts—withoutGroupentfernen,invitableneu:invitablekombiniert beide Filter (aktiv + kein Haushalt).2. Backend: Pending-Raeumung bei Gruppenbeitritt
Wenn eine Person in einen Haushalt aufgenommen wird (Action
approveJoinoderaddMember), werden alle anderen ausstehendenGroupMember-Eintraege fuer diese Person geloescht:Damit ist sichergestellt, dass
groupMembers: { none: {} }zuverlaessig bedeutet "Person ist keinem Haushalt zugeordnet".Betroffene Dateien
backend/openapi.yamlwithoutGroupraus,invitablereinbackend/src/routes/persons.tswithoutGroup→invitablebackend/src/routes/groups.tsbackend/src/__tests__/persons.test.tsbackend/src/__tests__/groups.test.tsfrontend/src/lib/api/generated.tsfrontend/src/routes/app/groups/[groupId]/+page.svelte?withoutGroup=true→?invitable=trueAkzeptanzkriterien
?invitable=truegibt nur aktive (archivedAt: null) Personen ohne Haushalt zurueck?withoutGroup=trueexistiert nicht mehr (weder in OpenAPI noch im Code)invitablenpm testlaeuft ohne Fehlernpm run buildist erfolgreichUpdate — Aktualisierter Loesungsplan (04.07.2026)
Neuer Ansatz
Statt
?withoutGroup=truewird?invitable=trueeingefuehrt. Der altewithoutGroup-Parameter entfaellt komplett.Backend:
?invitable=trueanGET /api/v1/personsbackend/src/routes/persons.ts—withoutGroupentfernen,invitableneu:Backend: Pending-Join-Aufraeumung bei Beitritt
Wenn eine Person in einen Haushalt aufgenommen wird (
approvedBygesetzt), werden alle anderen ausstehendenGroupMember-Eintraege fuer diese Person geloescht:Dadurch ist
groupMembers: { none: {} }der alleinige Indikator fuer "einladbar".Betroffene Dateien
backend/openapi.yamlwithoutGroupraus,invitablereinbackend/src/routes/persons.tswithoutGroup→invitablebackend/src/routes/groups.tsbackend/src/__tests__/persons.test.tsbackend/src/__tests__/groups.test.tsfrontend/src/lib/api/generated.tsfrontend/src/routes/app/groups/[groupId]/+page.svelte?invitable=trueGruppen-Mitglieder-Suche zeigt "Alle Personen sind bereits in einem Haushalt" trotz vorhandener personenOhneHaushaltto fix(backend+frontend): ?invitable=true ersetzt ?withoutGroup; Pending-Raeumung bei Gruppenbeitritt