Als Gruppenadmin möchte ich Personen nach abgelaufenen, aber noch reaktivierbaren Qualifikationen filtern.
Neu soll auf dem Personenfilter im Panel Qualifikationen eine zusätzliche Option "Keine gültige, aber noch reaktivierbare Qualifikationen" zur Verfügung stehen.
Für die Optionen "Nur aktuell gültige Qualifikationen", "Gültige und reaktivierbare Qualifikationen" und "Keine gültige, aber noch reaktivierbare Qualifikationen" erscheint ein zusätzliches Eingabefeld "Stichdatum". Die entsprechenden Filter sollen per diesen Stichtag prüfen. Falls das Datum leer ist, wird das heutige Datum verwendet.
Tech-Spec
Damit das Query performant läuft, braucht es wohl auf der Qualifikation ein zusätzliches Feld "reactivatable_until", in welches beim Speichern einer Qualifikation das Datum geschrieben wird, bis zu welchem diese reaktivierbar ist. Dies wird wie folgt berechnet:
Qualifikationsart Gültigkeit ist leer: Leer
Qualifikationsart Reaktivierbar ist leer: Ablaufdatum (finish_at)
Qualifikationsart Reaktivierbar ist ausgefüllt: Ablaufdatum (finish_at) + Reaktivierbare Jahre (qualification_kind#reactivatable).
Bei allen bestehenden Qualifikationen wird dieses Feld in der Migration entsprechend gesetzt.
Das Problem beim Query besteht darin, das mehrere zeitlich überlappende Qualifikationen mit gleicher Qualiart vorhanden sein können. Zum Beispiel:
Quali A von 2016 - 2020 (reaktivierbar bis 2022)
Quali A von 2018 - 2022 (reaktivierbar bis 2024)
Quali A von 2020 - 2024 (reaktivierbar bis 2026)
Quali B von 2018 - 2022 (reaktivierbar bis 2024)
Wir gehen davon aus, dass Qualiart A und B angezeigt werden sollen.
Wenn "Person hat mindestens EINE dieser Qualifikationen" gewählt ist, erscheint die Person im 2024 nicht, da 3. noch gültig ist.
Wenn "Person hat mindestens EINE dieser Qualifikationen" gewählt ist, erscheint die Person im 2025, da 3. noch reaktivierbar ist.
Wenn "Person hat ALLE diese Qualifikationen" gewählt ist, erscheint die Person im 2024 nicht, da 3. noch gültig ist.
Wenn "Person hat ALLE diese Qualifikationen" gewählt ist, erscheint die Person im 2025 nicht, da 4. nicht mehr reaktivierbar ist und somit Quali B "fehlt".
Es muss also insbesondere geprüft werden, dass keine noch gültigen Qualifikationen existieren.
ToDo
[ ] Migration erstellen
[ ] Model anpassen
[x] Filterquery anpassen
[x] View anpassen
[x] Specs schreiben
[x] Mit angemessener Rolle "durchklicken"
[x] CHANGELOG-Eintrag unter "unreleased" unten hinzufügen
Als Gruppenadmin möchte ich Personen nach abgelaufenen, aber noch reaktivierbaren Qualifikationen filtern.
Neu soll auf dem Personenfilter im Panel Qualifikationen eine zusätzliche Option "Keine gültige, aber noch reaktivierbare Qualifikationen" zur Verfügung stehen.
Für die Optionen "Nur aktuell gültige Qualifikationen", "Gültige und reaktivierbare Qualifikationen" und "Keine gültige, aber noch reaktivierbare Qualifikationen" erscheint ein zusätzliches Eingabefeld "Stichdatum". Die entsprechenden Filter sollen per diesen Stichtag prüfen. Falls das Datum leer ist, wird das heutige Datum verwendet.
Tech-Spec
Damit das Query performant läuft, braucht es wohl auf der Qualifikation ein zusätzliches Feld "reactivatable_until", in welches beim Speichern einer Qualifikation das Datum geschrieben wird, bis zu welchem diese reaktivierbar ist. Dies wird wie folgt berechnet:
Das Problem beim Query besteht darin, das mehrere zeitlich überlappende Qualifikationen mit gleicher Qualiart vorhanden sein können. Zum Beispiel:
Wir gehen davon aus, dass Qualiart A und B angezeigt werden sollen.
Es muss also insbesondere geprüft werden, dass keine noch gültigen Qualifikationen existieren.
ToDo