Apparence
Évènements et formations
Ces scénarios valident l'agenda autonome, sa page de saisie et l'alerte créée lorsqu'une absence validée recouvre un évènement. L'affichage dans Mon planning reste conditionné à la livraison de cet écran ; la bande de la grille manager n'est pas couverte ici.
1. Consulter et filtrer l'agenda
Tickets : APAJH-106 · Rôle : Manager n1 · Prérequis : deux évènements de types différents dans le mois courant
Critères d'acceptation du ticket
- L'agenda est groupé par jour et filtrable par mois et par type.
- Une carte indique le type, l'horaire, le titre, le lieu, le responsable et le nombre de participants.
- Le bandeau de KPI non retenu dans la maquette finale n'apparaît pas.
Ouvrez Planning ▸ Évènements.
Changez de mois avec les flèches, puis revenez au mois courant.
Sélectionnez un type, puis Tous.
Ouvrez une carte et consultez Informations, puis Participants.
✅ Résultat attendu : la liste suit les filtres et le panneau latéral présente les informations puis les personnes affectées, sans bandeau de KPI.
Couverture automatique : e2e/evenements.spec.ts → « la vue agenda filtre sans afficher le bandeau KPI et ouvre le détail ».
2. Créer et modifier un évènement
Tickets : APAJH-106, APAJH-103, APAJH-143 · Rôle : Manager n1 · Prérequis : des salariés avec contrat et affectation actifs
Critères d'acceptation du ticket
- La saisie occupe une page dédiée, en deux colonnes sur bureau et une colonne sur mobile.
- Un évènement est soit à la journée sur une période inclusive, soit horaire sur une seule date.
- Un horaire comporte obligatoirement une heure de début et une heure de fin postérieure.
- L'établissement est facultatif pour un évènement transversal.
- Le responsable est facultatif et désigne, lorsqu'il est renseigné, un salarié réel choisi par son identifiant.
- La recherche du responsable porte sur son nom, sa fonction, ses établissements et ses équipes ; les rattachements distinguent les homonymes.
- Les équipes proposées dans le bloc Participants dépendent de ses filtres établissement, indépendamment de l'établissement général de l'évènement.
- Depuis Évènements, cliquez sur Nouvel évènement.
- Renseignez le titre, le type, les dates et le lieu.
- Laissez Évènement à la journée coché.
- Choisissez un établissement ou laissez Transversal / aucun établissement unique.
- Recherchez le responsable par sa fonction ou son établissement. Si deux salariés portent le même nom, vérifiez leurs rattachements puis choisissez le bon.
- Effacez le responsable avec la croix, puis sélectionnez-le de nouveau. Un évènement sans responsable doit aussi pouvoir être enregistré.
- Dans Participants, cochez une personne d'un second établissement. Filtrez ensuite sur le premier établissement : la personne disparaît de la liste, mais reste comptée comme sélectionnée.
- Ouvrez le filtre Équipe : seules les équipes rattachées aux établissements filtrés restent proposées. Une équipe devenue incompatible est retirée du filtre, sans décocher les participants masqués.
- Cliquez sur Créer l'évènement.
- Créez un second évènement sur une seule date, décochez Évènement à la journée et renseignez les deux heures.
- Rouvrez son détail, cliquez sur Éditer, modifiez le lieu et cliquez sur Enregistrer.
✅ Résultat attendu : les deux évènements apparaissent dans l'agenda avec « Journée entière » ou leur plage horaire, le lieu corrigé, le responsable choisi ou aucun responsable, et tous les participants sélectionnés, y compris ceux momentanément masqués par les filtres.
Couverture automatique : e2e/evenements.spec.ts → « la page dédiée crée un évènement et affecte une personne », « le responsable facultatif se recherche, se distingue et s’efface », « le filtre établissement conditionne les équipes sans perdre les participants » (bureau et mobile) et « mobile : le formulaire reste lisible en une colonne ». La modification du lieu est à rejouer à la main.
3. Supprimer avec confirmation
Tickets : APAJH-106 · Rôle : Manager n1 · Prérequis : un évènement dans le mois courant
Critères d'acceptation du ticket
- La suppression demande une confirmation explicite.
Cliquez sur l'icône de suppression de la carte.
Dans Supprimer cet évènement ?, cliquez sur Annuler et vérifiez que la carte reste présente.
Recommencez et cliquez sur Supprimer.
✅ Résultat attendu : la carte disparaît seulement après la seconde confirmation.
Couverture automatique : e2e/evenements.spec.ts → « la suppression demande confirmation puis appelle l’API ».
4. Recevoir l'alerte de conflit avec une absence
Tickets : APAJH-106 · Rôle : Admin RH · Prérequis : un salarié participant à un évènement et un type d'absence applicable
Critères d'acceptation du ticket
- Une absence enregistrée en état validé sur une date d'évènement crée une alerte dans le canal de notifications existant.
- L'alerte nomme la personne et le ou les évènements en conflit.
Dans le back-office, créez une absence dont la période recouvre l'évènement du participant.
Revenez dans l'application avec le même compte et ouvrez la cloche de notifications.
✅ Résultat attendu : une notification Conflit entre une absence et un évènement nomme le salarié, la période et l'évènement. Le responsable actif de l'évènement reçoit également cette alerte.
Couverture automatique : backend/tests/test_events.py → test_declaring_leave_notifies_the_validator_and_event_responsible_once_each et test_an_irrelevant_leave_update_does_not_repeat_the_conflict_notification.
5. Le formulaire d'évènement ne propose que le périmètre du rôle
Tickets : APAJH-298 · Rôle : RH n1 (ou Admin, Manager n1) dont le rôle est rattaché à quelques établissements seulement · Prérequis : make seed-all, des salariés travaillant ou affectés à une équipe dans ces établissements, et un salarié qui n'y a ni lieu de travail ni équipe
Ouvrez Évènements, puis Créer un évènement, et ouvrez le champ Établissement du bloc d'informations.
✅ Résultat attendu : seuls les établissements rattachés au rôle sont proposés, plus Transversal / aucun établissement unique.
Dans Participants, ouvrez le filtre établissement, puis parcourez la liste.
✅ Résultat attendu : le filtre propose les mêmes établissements (ceux où travaille ou est affecté au moins un salarié), aucun autre ; la liste comprend les salariés qui y travaillent et ceux affectés à l'une de leurs équipes, jamais le salarié hors périmètre.
Revenez à la liste des évènements.
✅ Résultat attendu : un évènement d'un établissement hors périmètre n'apparaît pas, même pour un compte Admin ou RH ; un évènement transversal apparaît.
Couverture automatique : backend/tests/test_events.py (périmètre du rôle pour Admin et RH, refus d'un établissement hors périmètre, options de participants et leurs établissements) et backend/tests/test_employee.py (salarié affecté à une équipe du périmètre).