Vie scolaire — détails techniques
Description et fonctionnalités de ce module : Vie scolaire.
Couverture de tests
4 scénario(s) e2e couvrent ce module — dossier apps/open-ent-e2e/src/modules/31_parametrages_vie_scolaire.
4 test(s) e2e dans 4 scénario(s) — voir le détail
Viescolaire 01_init_periodes_scolaires.spec.ts
- initialisation des périodes scolaires
Vie scolaire — notifications e-mail (Présences) 02_notifications_emails.spec.ts
- paramétrage des e-mails de notification
Vie scolaire — e-mail de rapport par académie (Présences) 03_email_par_academie.spec.ts (profil super-admin)
- rapport d'appels agrégé par groupe académie (Collèges/Lycées → e-mail unique, MailHog)
Cahier de texte — paramétrage par classe/groupe 04_cahier_textes_classe_groupe.spec.ts
- activation/désactivation d'une classe, persistance après rechargement
- effet réel sur la recherche enseignant/classe du module Cahier de textes (
/diary)
➡️ Statut dans le dashboard E2E · Résultats détaillés
Côté dashboard admin (viescolaire-admin), un scénario e2e dédié couvre l'activation du
trombinoscope, les onglets Rapports/Erreurs et l'export HTML/PDF :
apps/dashboard-e2e/src/modules/03_admin/15_trombinoscope_export.spec.ts.
Trombinoscope — implémentation de l'export
Endpoint unique paramétré, réservé aux gestionnaires (droit viescolaire.trombinoscope.manage) :
GET /viescolaire/structures/:structureId/trombinoscope/export
?scope=structure|classe|groupe&scopeId=<id>&scopeName=<nom>&format=html|pdf
TrombinoscopeController::exportTrombinoscope(contrôleur) délègue àDefaultTrombinoscopeExportService(service/impl/).- Résolution des élèves :
ClasseService.getEleveClasse(agnostique classe / groupe fonctionnel / groupe manuel) pourclasse/groupe;ClasseService.listClasses(classOnly=true)+ une résolution par classe pourstructure. - Photos : lues en mémoire via
Storage.readFile(passendFile, qui écrit directement dans la réponse HTTP) et embarquées en base64 dans le HTML — le micro-service externenode-pdf-generatorn'a pas accès aux cookies de session ni auStorageENT. - Rendu HTML : template Mustache
template/trombinoscope/export/trombinoscope-export.txt, traité viaFileTemplateProcessor(et nonTemplateProcessorseul, qui compile la chaîne passée en argument comme template littéral au lieu de charger un fichier — piège rencontré pendant le développement, qui touchait aussiTrombinoscopeReport, corrigé au passage). - PDF :
org.entcore.common.pdf.PdfGenerator(PdfFactory), même pattern que le moduleworkflowhub— pas de dépendance Maven supplémentaire. - Export « structure » : un fichier HTML/PDF par classe, écrit dans un dossier temporaire puis
compressé via
org.entcore.common.utils.Zip(niveau de compression explicite 0-9 requis par le service de zip côté plateforme —Deflater.DEFAULT_COMPRESSION(-1) est rejeté).
Conformité
Évaluation au référentiel Open ENT NG (module vie-scolaire).
| Maillon de la chaîne qualité | Référence |
|---|---|
| 🎯 Fonctionnalités attendues | fiche fonctionnelle |
| 🧪 Tests réalisés | couverture e2e |
| ✅ Tests de conformité | tableau de conformité |