Bloc Course Notification : Guide technique

Design architectural

Le bloc ajoute ou retire des tâches assimilables à des événements (et non des états). Il ne peut donc traiter un événement lié à une condition dont on ne connaît pas la date future de réalisation. Pour des événements liés à la date d'inscription de l'utilisateur, le bloc réagit sur les événements de modification de l'état de l'utilisateur pour reprogrammer les tâches d'émission associées aux événements à traiter. Pour des événements tels que l'inactivité, une tâche est provisionnée sur un accès au cours, et repoussée à chaque nouvelle entrée du cours.

Capacités

block/course_notification:addinstance

L'utilisateur avec cette capacité peut ajouter un bloc de notifications de cours

block/course_notification:benotified

L'utilisateur avec cette capacité est notifié par le bloc de notifications

block/course_notification:excludefromnotification

L'utilisateur avec cette capacité n'est pas notifié par le bloc de notifications

block/course_notification:setup

L'utilisateur avec cette capacité peut configurer les notification

Evénements et observateurs

Observateurs : Ce plugin observe l'événement “Course Completed” pour émettre le signal d'achèvement des objectifs pédagogiques.

Tâches

L'émission des notifications est traitée par une tâche programmée de moodle. Cette tâche est désactivée à par défaut à l'installation du plugin. Elle est réglée par défaut pour passer à chaque cron et détecter le plus souvent possible les passages par les “instants clefs” de notification pour tous les cours concernés. Il peut être utile de ralentir légèrement cette tâche pour protéger la performance du serveur, mais dans tous les cas, évitez de la faire tourner à une fréquence moindre qu'une fois toutes les 4 ou 6 heures.

Activation de la Tâche d'émission des notifications via le cron

Chemin Admin du site/serveur/tâches programmées

Notifications du cours ( \block_course_notification\task\notification_task)

Exemple pour une notification quotidienne via cron

Il faut donc mettre “0” à minutes

et par exemple “22” à heures pour exécution à 22 heures

Modèle de données

Ce plugin installe une table supplémentaire pour stocker l'état d'émission de chaque signal pour chaque participant de chaque cours qui est concerné par les notifications.

Script CLI de contrôle et rattrapage

Un script CLI permet de jouer les notifications d'un cours à la main, de les jouer en mode “dryrun” (sans émission ni marquage des états) ou en mode marquage seul sans émission. –>Les notifications sont donc capable de tracer avec précision la règle d'éviction pour chaque utilisateur/événement/cours.

Le script assume un comptage prévisionnel des émissions pour pouvoir mesurer par anticipation les volumes d'émission de mails.

Exemples de retour de script pour un cours ID 196:

196 firstassign -serge.untel@truc.fr trapped rule A : Already accessed course

La mention “Already accessed course” désigne une exclusion du fait du cours déja accédé par l'usager.

196 firstassign -pierre.untelh@truc.fr trapped rule E : Out of concerned time range

La mention “Out of concerned time range” désigne une exclusion de protection, pour éviter notification d'ouverture d'accès au cours, si inscriptions très antérieure au lancement du script, ou si cours ouvert depuis longtemps : On ne peut donc émettre notification d'ouverture des accès qu'entre j-7 et J du début de l'accès.

196 closed -lucie.untel@truc.fr trapped rule B : already sent

La mention “already sent” désigne une exclusion du fait de la notification déjà envoyée à l'usager.

196 closed -pedro.untel@truc.fr trapped rule C : infinite enrol

La mention “infinite enrol” désigne les utilisateurs sans date de fin d'inscription.

196 oneweeknearend -lise.untel@truc.fr Accepted for notification

La mention “Accepted for Notification” désigne les utilisateurs qui vont être notifiés.

Nota : Il y a une limite du nombre de départs par “tour de piste” de la tâche, de manière à pas “bulker” les emails, et entrainer des problématiques de Spam. On va donc autoriser par exemple le script à passer toutes les 3 minutes pendant la tranche 12h00 13h00 pour “vider la pile des émissions à sortir” . Chaque exécution aura droit à tirer max 200 mails toutes les 2 minutes soit 6000 mails par jour, pour un “rattrapage” après installation du plugin et mise en œuvre du CRON.

Revenir à l'index du composant - Revenir à l'index des plugins - Revenir au catalogue