Automate à états finis pour le cycle de vie (status) des rapports
Plusieurs points à savoir sur le cycle de vie des rapports :
- les rapports sont créés dans la table
report
(status = new et initialized = 0) à deux moments :- lors du teaming (mode "aléatoire" ou "au choix de l'enseignant")
- lors de la mise en équipe par l'étudiant (mode "au choix de l'étudiant")
- les rapports passent de new à on lors du premier accès d'un étudiant. C'est à ce moment que sont créés les LD par défaut et que initialized = 1.
- les rapports test ne sont pas dans le même cycle de vie. Ils sont supprimés en CRON et à chaque nouveau test
Actuellement, la situation est : (après les modifications faites dans #309 (closed))
Le CRON :
- supprime les rapports test débutés depuis plus d'un jour
- supprime les rapports new 3 mois après leur date de fin
- passe les rapports de on à wait au moment de leur date de fin
- passe les rapports de wait à arc 6 mois après leur date de fin
On peut améliorer tout cela en mettant en place un automate à états finis et en faisant disparaitre report.initialized
:
Attention : quand on fait une transition vers new
ou active
il faut vérifier que la date de fin de travail soit postérieure au jour