Vérification de bout en bout via la vraie config nginx (21 checks
Playwright, tous passants) : parcours admin complet, saisie cadre,
double validation, verrouillages, exports, erreurs de connexion.
Bugs corrigés découverts par ce contrôle :
- La création d'utilisateur via l'interface était cassée depuis le
début : l'id "user-role" existait en double (badge de l'en-tête +
select de la modale), getElementById renvoyait le span du header et
le rôle n'était jamais envoyé (400 systématique). Le badge devient
user-role-badge.
- Les toasts de notification interceptaient les clics sur les boutons
situés dessous pendant 4 s (pointer-events: none ajouté).
Améliorations UI :
- « Absent » renommé « Non-présent » partout (légende, popover,
exports PDF et Excel — code NP au lieu de A).
- Récapitulatif mensuel : tuiles de compteurs par statut au-dessus du
calendrier, mises à jour à chaque saisie.
- Bouton « Remplir les jours ouvrés en Présent » : renseigne en un clic
toutes les demi-journées vides du lundi au vendredi (nouvel endpoint
PUT /api/attendance/bulk, transactionnel, mêmes contrôles de
verrouillage), sans toucher aux saisies existantes.
- Jour actuel mis en évidence dans le calendrier.
- Favicon.
Application complète : API Node/Express + PostgreSQL, frontend HTML/JS
mono-page, et déploiement Docker sur ports non standards (8781/4790/6543).
- Cadres : calendrier mensuel, saisie de présence par demi-journée
(présent/absent/congé/RTT), validation de fin de mois qui verrouille
leurs propres saisies.
- Admin : gestion des sociétés et utilisateurs (rattachement société <->
cadre), consultation de tous les plannings, validation d'une société
entière une fois tous ses cadres validés, réouverture en cas de
correction, export PDF et Excel par société/mois.