Résultats, évaluations et correction de module
Génération des résultats
byModuleGenerateTeamModuleResults() orchestre grading + reassemble puis persiste le résultat dans plusieurs documents.
sequenceDiagram
participant G as GenerateResults
participant TM as teamsModules
participant T as teams
participant E as evaluationTeam
participant RTT as RTT
G->>TM: lire moduleTypesData
G->>G: gradeModule()
G->>G: reassembleAnswer()
G->>T: teamDecisionsData.results[actModuleUid][moduleType]
G->>E: actPerf[actModuleUid][moduleType]
G->>RTT: execute_request GetTeamModuleTypeResults
RTT-->>Unity: récupérer le résultat
Document teams
Le résultat complet est enregistré dans teamDecisionsData.results[actModuleUid][moduleType]. Il contient notamment scores, errors, expectedValues et errorScores.
evaluationTeam
Les scores sont aussi propagés dans evaluationTeam.actPerf, afin d'alimenter l'évaluation globale de l'activité.
Summative retry
Lorsque la préférence RETRY_SUMMATIVE est active, le code compare la nouvelle note globale à lastSummativeGrade. La meilleure note est conservée; sinon les anciens scores d'évaluation sont restaurés. Un message module_graded est envoyé pour synchroniser l'état.
Pourquoi les résultats ne sont pas envoyés directement en RTT
Le commentaire serveur indique que le message serait trop gros. Le serveur envoie donc execute_request avec GetTeamModuleTypeResults; le client fait ensuite une commande dédiée pour récupérer la payload.
Correction côté Unity
Les résultats alimentent notamment CorrectedTeamModuleWindowControl, ModuleErrorsPopupControl, ModuleResultsReportItemControl et l'évaluation By Module. ignoreErrorFromTeamModuleResults permet de modifier l'état de certaines erreurs après correction.
Debug
Si l'answer key est correcte mais la note est mauvaise, inspecter dans l'ordre : résultat brut de gradeModule → reassembleAnswer → persistance dans teams → evaluationTeam → récupération côté Unity.
Ajouter une nouvelle donnée de résultat ou de correction
- Déterminer si la donnée appartient au raw grading, au reassemble ou au résultat final UI.
- Ajouter la valeur au bon objet retourné par grading/reassemble.
- Persister uniquement ce qui doit survivre au reload dans
teamDecisionsData.results[actModuleUid][moduleType]. - Si la valeur contribue à la note globale, mettre à jour
evaluationTeam.actPerf. - Ajouter la désérialisation Unity dans
ResultsByModuleou le modèle concerné. - Afficher la donnée dans la correction/report sans recalculer une deuxième logique différente côté Unity.
- Si la payload devient grosse, conserver le pattern
execute_request → GetTeamModuleTypeResults.
Retry summative
Toute nouvelle valeur de score doit être compatible avec le mécanisme RETRY_SUMMATIVE. Si la nouvelle tentative est moins bonne, le code peut restaurer l'ancienne note. Vérifier que les données auxiliaires de correction restent cohérentes avec la tentative retenue.
Debug du pipeline résultat
- inspecter la sortie
byModuleGradeModule(); - inspecter
byModuleReassembleAnswer(); - inspecter l'objet écrit dans
teams; - inspecter
evaluationTeam; - appeler manuellement
GetTeamModuleTypeResults; - inspecter la désérialisation Unity.