Ein Benutzer kann nicht einfach aus der Liste der Teilnehmer gelöscht werden, da er in Widgets noch referenziert sei könnte (z.B. Einkaufsliste, Ausgabenverteilung)
Deshalb soll folgende Strategie implementiert werden:
Kennzeichnen des Users mit einem Flag 'leaved'
Der User wird beim Verlassen nicht aus der Teilnehmerliste (participantIds) gelöscht. Stattdessen setzen wir ein Flag auf true und kennzeichnen ihn so als nicht mehr anwesend.
Beim Wiedereintritt (über Einladungslink) muss überprüft werden, ob der User bereits in der Teilnehmerliste ist und falls ja, muss das Flag wieder entfernt werden (auf false setzen).
Im Frontend werden User, die dieses Flag besitzen, gekennzeichnet. Dies kann z.B. durch das Hinzufügen des Textes "(Verlassen)" am Ende des Namens erfolgen. Zusätzlich könnte ein Filter auf das Profilbild angewendet werden, sodass dieses ausgegraut erscheint.
Um redundante Logik zu vermeiden und ein einheitliches Erscheinungsbild zu gewährleisten, sollte eine Utility Funktion im Frontend hinzugefügt werden, die einen Namen (string) von einem übergebenen User Model baut.
Aufgaben
[x] Hinzufügen eines Flags zum User Model
[x] Anpassung der Event-Verlassen Methode im Backend
[x] Aktualisieren des User-Models im Frontend
[x] Hinzufügen der Utility Funtkion zum Bauen des Namens im Frontend
[x] Anpassung aller Stellen im Frontend, an denen der Nutzer angezeigt wird (Teilnehmerliste, Widgets)
Kriterien für die Abnahme
Ein Nutzer kann das Event verlassen
Nach Verlassen des Events funktionieren weiterhin alle Widgets
Beschreibung
Info: Dies ist eine Follow-up Story zu #153
Ein Benutzer kann nicht einfach aus der Liste der Teilnehmer gelöscht werden, da er in Widgets noch referenziert sei könnte (z.B. Einkaufsliste, Ausgabenverteilung)
Deshalb soll folgende Strategie implementiert werden:
Kennzeichnen des Users mit einem Flag 'leaved'
Der User wird beim Verlassen nicht aus der Teilnehmerliste (participantIds) gelöscht. Stattdessen setzen wir ein Flag auf
true
und kennzeichnen ihn so als nicht mehr anwesend.Beim Wiedereintritt (über Einladungslink) muss überprüft werden, ob der User bereits in der Teilnehmerliste ist und falls ja, muss das Flag wieder entfernt werden (auf
false
setzen).Im Frontend werden User, die dieses Flag besitzen, gekennzeichnet. Dies kann z.B. durch das Hinzufügen des Textes "(Verlassen)" am Ende des Namens erfolgen. Zusätzlich könnte ein Filter auf das Profilbild angewendet werden, sodass dieses ausgegraut erscheint.
Um redundante Logik zu vermeiden und ein einheitliches Erscheinungsbild zu gewährleisten, sollte eine Utility Funktion im Frontend hinzugefügt werden, die einen Namen (string) von einem übergebenen User Model baut.
Aufgaben
Kriterien für die Abnahme