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.
Eine erforderliche Antwort auf der Anmeldung fehlt (s. Event::ParticipationDecorator#incomplete_label)
Eine Antwort einer Administrationsfrage auf der Anmeldung fehlt oder ist mit "nein"/"non"/"no" beantwortet (s. #585)
Das Mindestalter eines TN ist nicht erfüllt (s. Event::PreconditionChecker#validate_minimum_age)
Die Qualifikationsvorbedingungen eines TN sind nicht erfüllt (s. Event::PreconditionChecker#validate_qualifications)
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.
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.
Event::ParticipationDecorator#incomplete_label
)Event::PreconditionChecker#validate_minimum_age
)Event::PreconditionChecker#validate_qualifications
)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