Description
Follow up zu diesem Issue: #141
blocked by: #150
Ein Mitglied hat die Möglichkeit einen Austritt aus einer Zusatzsektion oder auch einer Stammsektion selber vorzunehmen. Ausserdem kann der Mitgliederdienst der Geschäftsstelle oder der Sektion einen Austritt für eine Person vornehmen.
- Ist bei einem Austritt aus einer Hauptsektion eine Zusatzsektion vorhanden, wird der Benutzer darauf hingewiesen das beide Mitgliedschaften terminiert werden
- Button Austritt wird nur bei den aktiven Mitglieder-Rollen angezeigt (SektionsMitglieder::Mitglied)
- Der Austritt erfolgt neu immer auf das bereits gesetzte Bis-Datum der Mitglied Rolle und kann nicht mehr wie im Mockup gezeigt selber ausgewählt werden
Mockups
Modal Austritt:
Anstatt Datepicker einfach nur das Enddatum der aktuellen Rolle anzeigen als Austrittsdatum (read-only)
Info unter Label Rolle
Tech-Spec
Core
- Neues Class Attribute :terminatable auf Role
- Neues Attribut auf Role: terminated, boolean, default: false
- Ist eine aktive Role terminatable, so wird im Tab History auf der Person ein Button angezeigt
- Inaktive und Künftige Rollen können nie terminiert werden
- Neuer controller sowas wie Role::TerminationController
- ggf. kann dieses Feature auch mit Stimulus umgesetzt werden, siehe PEOPLE: Selbstregistrierungsformular Erfassen Familie #95
- wird die Rolle terminiert, wird terminated auf true gesetzt sowie das datum delete_on auf das gewählte Datum gesetzt
- Eine Rolle kann auf ein beliebiges Datum bis 31.12 des Folgejahres in der Zukunft terminiert werden
- Soll verhindern das jemand diese Terminierung auf in 10 Jahren setzt
- übersetzter Standard Text im Bestätigungs-Modal
- Dieser kann pro Rollen-Typ im Wagon customized werden und wird automatisch angezeigt falls eine entsprechende Translation vorhanden ist
- Ist eine Rolle terminiert, wird dies auf der Rolle angezeigt.
- Austritt per 1.4.2024, als Text bei der Rolle auf Person#info und in der Person#history Table
- Eine bereits terminierte Rolle kann nicht nochmals terminiert werden (Button ausblenden)
Wagon
- Personen-Tab Verlauf in Mitgliedschaften renamen falls User/Person :basic_permissions_only, sonst Verlauf belassen
- ggf. sogar Alias in den Routes erstellen: /memberships anstatt /history, so wäre es auch in der URL sprechender aus Sicht des Mitglieds
- Modal Text für Mitglieder Rolle SAC anpassen
- Anstatt alle Zusatzmitgliedschafts-Rollen aufzulisten, Hinweis das bei Austritt Hauptmitgliedschaft auch alle Zusatzmitgliedschaften terminiert werden
- Hinweis das der Austritt auch für alle Familienmitglieder gilt
- Idealerweise kann der Text einfach so generisch gehalten werden sodass die View selber nicht im SAC Wagon customized werden muss und wir nur mit Custom Translations arbeiten können
- Via after_update hook Role:
- Alle Zusatzmitgliedschaften terminieren falls Hauptmitgliedschaft
- Alle zugehörigen Mitgliedschaften der Familie terminieren falls Familie
- Berechtigungen
- Mitglied/Person darf aus eigener Mitgliedschaft austreten (implizit mit Familie und Zusatzmitgliedschaft falls Hauptsektion)
- Verwalter/Person mit Schreibrechten auf der entsprechenden Rolle kann Austritt für eine Person vornehmen (z.B. für Rolle in der eigenen Sektion des Verwalters)
ToDo
- Role model terminated attribut sowie class attribute erstellen
- Neue Spalte sowie Button Austritt bei den Aktiven Rollen ergänzen
- Neuer Controller TerminationController sowie views, modal fenster, usw.
- Anzeige Austritt per unter Rollen-Label
- Renamen/Alias memberships anstatt history
- Anpassungen Modal-Text
- SAC Role after update hooks
- Manuelles Testen
- Doku im Core updaten: https://github.com/hitobito/hitobito/tree/master/doc/modules
- Neues module doku: people oder roles, class attribute dokumentieren
- CHANGELOG entry im Core, Wagon