feat(calendar) : supprimer / modifier une plage de congés d'un coup #34
Reference in New Issue
Block a user
Delete Branch "feature/SIRH-39-pouvoir-supprimer-plusieurs-conges-d-un-coup"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Contexte
Sur le calendrier, une absence est stockée une ligne par jour sans lien entre les jours (cf.
AbsenceWriteProcessor::expandAbsenceRange). Conséquences pour la RH :PATCHréutilisait une ligne et en recréait d'autres sans nettoyer l'ancien bloc → jours « fantômes » au raccourcissement et doublons à l'allongement.Changements (
frontend/pages/calendar.vue)handleDelete) : efface toutes les absences de l'employé comprises dans la plage[début ; fin]du drawer. Flux RH : clic sur un jour → étendre la date de fin → Supprimer. Jours sans absence ignorés (aucune erreur) ; jour validé (isValid/site) protégé côté backend. Confirmation avec nombre de jours + intervalle.handleSubmit) : remplacement de bloc — supprime l'ancien bloc contigu de même type (vers l'avant depuis le jour cliqué) + les absences recouvertes par la nouvelle plage, puis recrée la plage viacreateAbsence. Corrige le bug duPATCH. Les jours antérieurs au jour cliqué ne sont jamais touchés ; confirmation « chevauche une autre » seulement pour un autre type.updateAbsencen'est plus appelé depuis le calendrier.Pourquoi côté frontend
Le backend ne peut pas reconstituer « la plage » (aucun identifiant de groupe en BDD) ; le frontend a la plage visible. Vérifié : les écrans Heures et Heures Conducteurs verrouillent les dates du drawer (
lock-dates), donc lePATCHy reste mono-jour — le calendrier est le seul écran à reshaper une plage.AbsenceWriteProcessornon modifié.Documentation
doc/functional-rules.md,frontend/data/documentation-content.ts(in-app),CLAUDE.md.Tests
🤖 Generated with Claude Code