76 lines
2.9 KiB
Markdown
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`
|