hitobito / hitobito_sac_cas

A hitobito wagon defining the organization hierarchy and additional features for SAC/CAS
Other
3 stars 2 forks source link

EVENTS: TN-Warnhinweise auf Kursliste anzeigen #667

Open codez opened 2 weeks ago

codez commented 2 weeks ago

Als Kursadmin will ich auf der Kursliste sehen können, bei welchen Kursen es TN mit Warnhinweisen gibt.

Basierend auf der Darstellung von Warnhinweisen auf der Kursliste einer Gruppe aus #586 sollen bei jedem Kurs weitere Warnhinweise angezeigt werden, falls diese bei mindestens einem aktiven TN auftreten (die inaktiven TN sowie das Leitungsteam werden nicht geprüft). Diese Warnhinweise sind ebenfalls nur für die Kursadministration sichtbar.

Die Meldungen werden aus den oben erwähnten Checks im Wortlaut übernommen. Jede Meldung wird pro Kurs maximal einmal angezeigt.

Damit das Laden der Kursliste nicht länger als bisher dauert, muss die Anzahl der notwendigen DB Abfragen konstant gehalten werden (keine n+1 Queries). Der bestehende Code für die Prüfung eines einzelnen TN kann also nicht 1:1 wiederverwendet werden, sondern muss entsprechend angepasst werden, damit dies auch für eine ganze Liste von Kursen geprüft werden kann. Idealerweise werden dabei auch nicht alle Datensätze von der DB geladen (z.B. Answers, Qualifications), sondern die Prüfung direkt auf der DB vorgenommen.

Eine mögliche Strategie dafür ist, nach dem Laden der Kursliste diese in einer entsprechenden Domainklasse mit den notwendigen Hinweisen anzureichern. Dabei kann die Liste der geladenen Kurs-IDs als Filterkriterium in ein Aggregationsquery einfliessen und eine Liste von betroffenen Kurs-IDs als Result-Set zurückkommen. Jeder Check deckt so mit einem eigenen Hauptquery alle Kurse ab. Für die im Result-Set enthaltenen Kurs-IDs wird auf dem Kurs aus der Kursliste ein entsprechender Hinweis hinzugefügt (z.B. via Decorator Attribut).

Der SAC wird ca 200 Kurse pro Jahr auf dem Zentralverband haben.

ToDo