- Licence : AGPL v3 - Copyright CGI, Région Nouvelle Aquitaine, Département Seine et Marne
- Développeur(s) : CGI, Edifice
- Financeur(s) : CGI, Région Nouvelle Aquitaine, Département Seine et marne, Mairie De Paris, Edifice
- Description : Présences est un module de vie scolaire qui permet de gérer tous les événements ayant
lieu au sein de l’établissement scolaire:
- La gestion des absences et des appels,
- La gestion des présences,
- La gestion des incidents, des punitions et des sanctions,
- Le publipostage de tous ces événements.
Permet de développer le front TypeScript/AngularJS sans installer le backend en local : le bundle du module
est reconstruit à la volée (webpack via gulp), le Sass est recompilé, et tout le reste (page HTML, ng-app.js,
thème, i18n, API) est proxyfié vers une recette distante avec la session de l'utilisateur connecté.
Le navigateur se recharge automatiquement à chaque modification.
yarn installcp .env.template .env(une seule fois — rend le module détectable pardev-auth-fetcher)dev-auth-fetcher connect(--watchpour maintenir la session) — ou le skill Claudeauth-user-frontend— pour remplir le.env- Lancer le module que l'on développe :
yarn dev:presences # http://localhost:3000/presences yarn dev:incidents yarn dev:massmailing yarn dev:statistics # statistics-presences
Seul le module lancé est servi depuis le disque ; les 3 autres, la page HTML, le thème, l'i18n et l'API
viennent de la recette. Modifier view-src/ ou ajouter une clé i18n n'aura donc aucun effet en local.
Le CSS applicatif est compilé dans le theme.css du skin (ode-themes) et non servi depuis
/<module>/public/css/. Pour que le Sass recompilé soit visible, le serveur de dev injecte la feuille
locale dans la page, après le thème. Le rendu est donc indicatif : les variables du skin déployé ne sont
pas celles de la compilation locale. Seul presences possède un sass/index.scss — les autres modules
n'ont que des partiels, sans point d'entrée, donc rien à compiler.
Le watcher écrit dans <module>.dev.css, distinct du <module>.css que produit yarn build:sass. Ni
l'un ni l'autre n'est versionné : comme dist/ et public/js/, le CSS est un artefact que le build
régénère (build.sh → yarn run build:sass), et le sortir de git évite que la sortie de Sass — qui varie
d'une version du compilateur à l'autre — ne pollue le diff de toute branche où l'on a lancé yarn dev.
Screeb est opt-in par plateforme : sans screeb-app-id dans la publicConf du module, aucun appel
réseau vers Screeb n'est émis. En local, la recette proxyfiée ne connaît pas forcément encore cette clé.
Pour tester sans en dépendre, renseigner SCREEB_APP_ID_DEV dans .env : le serveur de dev mocke alors
/<module>/conf/public avec cet app id.
Le module présences contient plusieurs modules en son sein : incidents, massmailing, presences et statistics-presences. Seuls massmailing, presences et statistics-presences contiennent des configurations techniques uniques.
{
"config": {
...
"mailings": {
"MAIL": true,
"PDF": false,
"SMS": true
},
"pdf-generator" : {
"url" : "$pdfGeneratorUrl",
"auth" : "$pdfGeneratorAuth"
}
}
}
Dans votre springboard, vous devez inclure des variables d'environnement :
pdfGeneratorAuth=${String}
pdfGeneratorUrl=${String}
Il est nécessaire de mettre massmailing:true dans services du module vie scolaire afin de paramétrer les données de configuration de massmailing.
"services": {
...
"massmailing" : true,
...
}
{
"config": {
...
"export-cron": "0 0 0 1/3 * ? *",
"registers-cron": "0 15,45 7-20 * * ? *",
"cron-check-regularization" : {
"enabled": true,
"cron": "0 0 7,10,13,16,19 ? * * *"
},
"mails-list-cron": [],
"mails-list-export": [],
...
"node-pdf-generator" : {
"pdf-connector-id": "exportpdf",
"auth": "${nodePdfToken}",
"url" : "${nodePdfUri}"
}
}
Dans votre springboard, vous devez inclure des variables d'environnement :
nodePdfToken=${String}
nodePdfUri=${String}
"mails-list-cron" est nécessaire pour l'envoie de mail pour le worker création d'appels
"mails-list-export" est nécessaire l'envoie de mail via l'API /event/archives/export
Il est nécessaire de mettre presences:true dans services du module vie scolaire afin de paramétrer les données de configuration de presences.
"services": {
...
"presences": true,
...
}
Se connecter à l'ENT en tant que Personnel, aller sur Vie Scolaire, choisir une grille horaire d'un établissement, aller sur l'onglet Présences dans Vie Scolaire, activer le module et initialiser les paramètres.
{
"config": {
...
"processing-cron": "0 0/30 7-20 * * ? *",
"report-recipients": [],
"indicators": [
"Global",
"Monthly",
"Weekly"
]
}
}
A faire cette action avant la transition (le fichier csv se base sur les groupes et matières)
L'événement transition n'a pas encore été implémenté
l'API /presences/event/archives/export est utilisé à la place pour récupérer par établissement ("structureId" params) les événements,
générer un fichier CSV et envoyer par mail avec la configuration "mails-list-export"