5.6 KiB
Édition des absences
Page : « Apprentis » (/fiche)
Sélectionner un apprenti
Le sélecteur en haut de la page propose une recherche en direct : tape une partie du nom, prénom ou classe pour filtrer.
Raccourcis :
/ouvre directement le sélecteurEntréesélectionne le premier résultat filtréÉchapferme la recherche
KPIs et bandeau d'actions
Sous le sélecteur, 3 cartes KPI :
- Périodes d'absence : total
- Périodes à excuser : non encore traitées
- Absences : nombre de blocs ; rouge avec libellé « Avis de sanction » dès le quota EM atteint
Sous les KPIs, un bandeau d'actions :
- PDF absences / PDF bulletin / PDF notes (téléchargement)
- Créer un avis de retenue (orange) → ouvre la modale retenue pré-remplie
- Créer un avis de sanction (rouge) → ouvre la modale sanction pré-remplie
Ces boutons sont identiques sur la page « Classes », par carte apprenti.
Calendrier mensuel
Chaque cellule représente un jour du mois. Les couleurs indiquent l'état :
| Couleur de fond | Signification |
|---|---|
| Blanc | Aucune absence |
| Vert clair | Toutes les absences sont excusées |
| Rose | Au moins une absence non excusée |
| Bleu | Jour sélectionné en édition |
| Bleu pâle | Aujourd'hui |
Les nombres dans les cellules :
- « 2 ⚠️ 1 » → 2 absences au total dont 1 non excusée
- « 5 » → 5 absences toutes excusées
Cliquer sur un jour avec absences (ou un autre jour) ouvre le panneau d'édition.
Panneau d'édition
Badge type de jour
À côté du titre « Édition du {date} » s'affiche un badge coloré indiquant le type de jour pour cette classe (selon le mapping défini en /params) :
- 🔵 Théorie (bleu)
- 🟠 Pratique (orange)
- 🟣 Matu (violet)
- (rien) si aucun type configuré
Périodes
10 lignes (P1 à P10) avec un segmented control à 3 boutons :
- Présent (gris) — l'apprenti était là
- E (orange) — Excusée
- N (rouge) — Non excusée
Un seul clic suffit. Le bouton Enregistrer sauve toutes les modifications de la journée d'un coup. Le panneau reste ouvert après l'enregistrement pour permettre un éventuel ajustement.
Actions rapides
- Absent toute la journée (rouge) — met à
Nuniquement les périodes définies dans l'horaire de la classe pour le jour de la semaine sélectionné (cf. ci-dessous).- Bouton grisé + libellé « Absent toute la journée (Données chronoplan manquantes) » si l'horaire n'est pas configuré pour ce (classe × jour).
- Excuser toutes les périodes (vert) — bascule visuellement toutes les
NenE. N'enregistre pas en DB tant qu'on ne clique pas sur Enregistrer.
Excuse rapide (« Valider toutes les absences d'une journée »)
Sous le calendrier, un bandeau jaune liste les jours qui ont au moins une absence non encore traitée (statut a_traiter). Cliquer sur un de ces boutons excuse toutes les absences à traiter de ce jour-là en une seule action.
Envoyer par email
Un bloc « Envoyer par email » permet d'envoyer le récap (et éventuellement le bulletin / les notes en pièces jointes) à l'apprenti, au formateur ou à une adresse libre. Objet et corps utilisent le template configurable en /params → Template email (variables {prenom}, {nom_complet}, {classe}, etc.).
Horaire de classe (« chronoplan »)
Configuré en Paramètres → Horaires de classe :
- Sélection d'une classe (dropdown alimenté par les classes en base)
- Pour chaque jour (Lun → Ven) :
- Sélecteur de type de jour : Théorie / Pratique / Matu / —
- Grille de 10 cases (P1 → P10), cliquables (rouge = active)
- Bouton « Enregistrer l'horaire »
Stocké dans data/settings.json sous la clé class_schedule :
"AUTOMAT 1": {
"MON": { "type": "theorie", "periods": [1, 2, 3, 4] },
"TUE": { "type": "pratique", "periods": [5, 6, 7, 8] },
"WED": { "type": "matu", "periods": [1, 2] }
}
Le bouton « Absent toute la journée » dans la fiche apprenti lit cette config en fonction de apprenti.classe + jour de la semaine de la date sélectionnée.
Page : « Classes » (/classe)
Sélection de classe
Même principe que pour les apprentis : recherche en direct avec /, Entrée, Échap.
Cartes apprenti
Chaque apprenti de la classe a une carte avec :
- Nom + lien vers sa fiche complète
- Badge « Sanction » si quota atteint (≥5 absences brutes en blocs, classes EM uniquement)
- KPIs identiques à la fiche apprenti (3 cartes : Périodes d'absence, Périodes à excuser, Absences)
- Bandeau d'actions identique : PDF absences/bulletin/notes + Créer avis de retenue + Créer avis de sanction
- Onglets BN / Notes d'examen / Notices pour visualiser
Audit des modifications
Chaque modification d'absence est tracée dans data/logs/operations.log :
[14:32:01] [abs] prof.demo : Dupont Marc (1MAB1) — 04.02.2026 P6 : N → E
[14:32:01] [abs] prof.demo : Dupont Marc (1MAB1) — 04.02.2026 P6 : N → E
Visible aussi sur la page /logs. Le champ updated_by de la table Absence enregistre le dernier utilisateur ayant modifié.
Effet de chaque modification
- La table
Absenceest mise à jour (ou créée/supprimée) - Une entrée
EscadaPendingest ajoutée pour le push ultérieur vers Escada - Un toast de confirmation s'affiche
- Une ligne est ajoutée à
operations.log