eptm_dashboard/data/docs/04-edition-absences.md

2.9 KiB

Édition des absences

Page : /fiche (Apprentis)

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électeur
  • Entrée sélectionne le premier résultat filtré
  • Échap ferme la recherche

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 ouvre le panneau d'édition.

Panneau d'édition

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.

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.

Page : /classe (Vue 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)
  • KPIs : Total / Excusées / Non excusées / Blocs d'absences
  • Boutons de téléchargement PDF (Absences, Bulletin, Notes)
  • Onglets BN / Notes d'examen 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

  1. La table Absence est mise à jour (ou créée/supprimée)
  2. Une entrée EscadaPending est ajoutée pour le push ultérieur vers Escada
  3. Un toast de confirmation s'affiche
  4. Une ligne est ajoutée à operations.log