Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PEOPLE: Rollen mit Von-Datum in der Zukunft #2237

Closed
10 of 15 tasks
mtnstar opened this issue Oct 26, 2023 · 5 comments · Fixed by #2230
Closed
10 of 15 tasks

PEOPLE: Rollen mit Von-Datum in der Zukunft #2237

mtnstar opened this issue Oct 26, 2023 · 5 comments · Fixed by #2230

Comments

@mtnstar
Copy link
Member

mtnstar commented Oct 26, 2023

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:
    • list_future_people: true
  • 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

image

Person show

image

Person Role Filter

image

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

  • Bestehender Code im PR Task/sac 97 future roles #2230 studieren
  • FutureRole Model inkl. Validierungen, Scope sowie DB Migration für zusätzliche Attribute erstellen
  • Validierungen auf Role Base class erstellen
  • Fälle handhaben bei welchen die Von/Bis Daten einer bestehenden Rolle bearbeitet werden
    • Aktive Rolle kann nie eine FutureRole werden
    • FutureRole wird sofort in eine aktive Role umgewandelt falls Von Datum Heute oder in der Vergangenheit gesetzt wird
  • Person#history in Aktive, Künftige und Inaktive Rollen unterteilen
  • Person#show Rollen mit Künftige Rollen ergänzen
  • FutureRole label mit Datum ab z.b.: 'ab 1.1.2024' ergänzen
  • Specs für: PersonReadables, PersonWritables, Abilities, PeopleController inkl. Tabular Exports
  • DJ Job ActivateFutureRoleJob oder ähnlich erstellen
  • FutureRoles hard-deleten wenn Gruppe archiviert wird
  • Personen-Filter mit Option 'Zukünftige Rollen miteinbeziehen' erweitern PEOPLE: Anpassen Filter für FutureRoles #2254
  • PaperTrail logging für FutureRoles anpassen
  • Mit angemessener Rolle "durchklicken"
  • CHANGELOG-Eintrag unter "unreleased" unten hinzufügen
  • Durch z.B. Tom testen lassen (manual Testing auf Integration)
@mtnstar
Copy link
Member Author

mtnstar commented Oct 26, 2023

image

mit dem Stand des PRs #2230 kommt folgende Fehlermeldung wenn man versucht eine Rolle mit Von in der Zukunft zu erstellen

@ThomasEllenberger
Copy link

ThomasEllenberger commented Dec 20, 2023

Hat eine Person keine aktiven Rollen, sondern nur Zukünftige und Inaktive werden in der Personenübersicht die Zukünftigen Rollen als aktive Rollen angezeigt.

Verlauf:
image

Personen-Info:
image

Dies scheint auch der Fall zu sein wenn man aktive und zukünftige Rollen in der gleichen Gruppe hat.
Vermute das Problem tritt auf weil alle Rollen in der Gruppe unter dieser aufgelistet werden.
image

@ThomasEllenberger
Copy link

Die Personenfilter für Rollen in der Zukunft konnte ich nicht erfolgreich testen.
Die Auswahl für "Auch zukünftige Rollen miteinbeziehen erscheint nicht.
Getestet auf: PBS-INT
image

@mtnstar
Copy link
Member Author

mtnstar commented Dec 20, 2023

Die Personenfilter für Rollen in der Zukunft konnte ich nicht erfolgreich testen. Die Auswahl für "Auch zukünftige Rollen miteinbeziehen erscheint nicht. Getestet auf: PBS-INT image

das Suchen nach FutureRole ist bisher nicht implementiert, dazu gibt's ein zusätzliches Ticket: #2254

@mtnstar
Copy link
Member Author

mtnstar commented Dec 20, 2023

Hat eine Person keine aktiven Rollen, sondern nur Zukünftige und Inaktive werden in der Personenübersicht die Zukünftigen Rollen als aktive Rollen angezeigt.

Verlauf: image

Personen-Info: image

Dies scheint auch der Fall zu sein wenn man aktive und zukünftige Rollen in der gleichen Gruppe hat. Vermute das Problem tritt auf weil alle Rollen in der Gruppe unter dieser aufgelistet werden. image

interessant, bei sac-int passiert das nicht.

ich habe ein Ticket gemacht #2321

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants