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

76 lines
2.9 KiB
Markdown

# É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`