Heute ist es bereits möglich Rollen mit End-Datum in der Zukunft zu erstellen. Eine erste Implementation wurde mit #1748 noch verbessert.
Nun soll es neu ebenfalls möglich sein eine Rolle mit Start-Datum (Von) in der Zukunft zu haben:
- Personen mit zukünftiger Rolle werden standardmässig nicht in Personen-Listen/Exporten einer Gruppe angezeigt
- Zukünftige Rollen sollen auf dem Verlauf-Tab (history) der Person sichtbar sein
- Neue Unterteilung mit Überschriften wie im Mockup (Aktive, Künftige, Inaktive Rollen)
- Das Bis Datum muss immer entweder leer oder min. gleich oder später als das Von Datum sein. Anders gesagt, das Bis Datum darf, wenn ausgefülllt, nie vor dem Von Datum liegen.
- Bei Rollen mit Start-Datum in der Zukunft wird zusätzlich im Label die Info ab 1.1.2024 angezeigt (ab Start-Datum)
- In der STI Klasse einer Gruppe kann definiert werden ob Personen mit zukünftiger Rolle standardmässig in dieser Liste angezeigt werden:
- Personen mit FutureRole haben standardmässig :basic_permissions_only
- Personen welche andere Personen in einer Gruppe lesen/bearbeiten können, können auch Personen mit FutureRoles in der selben Gruppe lesen/bearbeiten
- Bei aktiven Rollen, kann das Von Datum nicht in die Zukunft verschoben werden (Aus einer bestehenden Rolle kann keine FutureRole erstellt werden). Grund: Allfällige create-Hooks sind ja bereits durchgelaufen, wir wollen diese nicht noch einmal ausführen
- Wird bei einer bestehenden FutureRole das Von Datum auf Heute oder auf ein Datum in der Vergangenheit gesetzt, wird die Rolle sofort aktiv
Mockup
Person Verlauf Tab

Person show

Person Role Filter

Tech-Spec
- Zukünftige Rolle ohne Callbacks erfassen (after_create Callback sollen erst ausgeführt werden wenn die Rolle aktiv wird)
im Group Model
...
:has_many :people, -> { |include_future = false| select_scope ... }
...
- PersonReadables und PersonWritables specs ergänzen und sicherstellen das Zugriff auf Personen mit FutureRoles sichergestellt ist (include_future = true)
Person Filter Role
FutureRole als STI Typ
- FutureRole erbt von Role
- via eine FutureRole kann die primary_group nicht gesetzt werden
- Zusätzliches Attribut für zu generierenden Rollen Typ sobald Rolle aktiv wird: future_role_type
- Neues Attribut create_on
- Neuer DJ welcher regelmässig die FutureRoles prüft und ggf. aktiviert (create_on)
- wenn der Job bei einem Role#create! failed, soll dieser eine Exception reporten, jedoch dann einfach mit der nächsten FutureRole weitermachen. Sprich der Job kann nicht durch eine einzelne, failende Rolle blockiert werden
- es wird eine neue Role vom Typ future_role_type erstellt und der FutureRole entry gelöscht, somit werden die after_create, after_save callbacks ausgeführt
- future_role_type, create_on ist leer auf dem neuen Role-Entry
kann die Rolle nicht erstellt werden, soll eine Exception geraised werden und der FutureRole entry irgendwie als fehlerhaft markiert. z.B. rot markiert mit dem Hinweis: 'Rolle konnte nicht erstellt werden' wir gehen davon aus das in diesem Fall alle 15min wenn der Job läuft eine Exception geraised wird die wir dann im sentry sehen bis das Problem behoben wurde.
- In Role Base Class sicherstellen das future_role_type und create_on immer leer sind
- in FutureRole muss future_role_type und create_on immer gesetzt sein
- create_on muss in der Zukunft liegen
- FutureRoles werden hard-deleted wenn eine Gruppe archiviert wird
PaperTrail und FutureRole
- Wenn FutureRole erstellt wird: Mitglied Mitglied in Mitglieder (Familie) ab 1.1.2024 wurde hinzugefügt
- Log entry das Rolle erstellt/aktiv wurde wenn der Job die effektive Rolle erstellt (converted)
ToDo
Heute ist es bereits möglich Rollen mit End-Datum in der Zukunft zu erstellen. Eine erste Implementation wurde mit #1748 noch verbessert.
Nun soll es neu ebenfalls möglich sein eine Rolle mit Start-Datum (Von) in der Zukunft zu haben:
Mockup
Person Verlauf Tab
Person show
Person Role Filter
Tech-Spec
im Group Model
Person Filter Role
FutureRole als STI Typ
kann die Rolle nicht erstellt werden, soll eine Exception geraised werden und der FutureRole entry irgendwie als fehlerhaft markiert. z.B. rot markiert mit dem Hinweis: 'Rolle konnte nicht erstellt werden'wir gehen davon aus das in diesem Fall alle 15min wenn der Job läuft eine Exception geraised wird die wir dann im sentry sehen bis das Problem behoben wurde.PaperTrail und FutureRole
ToDo
Personen-Filter mit Option 'Zukünftige Rollen miteinbeziehen' erweiternPEOPLE: Anpassen Filter für FutureRoles #2254