Apparence
Bibliothèque ▸ Trames — assistant de planification
Le bouton Enregistrer et créer un planning de l'éditeur de trame ouvre un assistant en trois étapes (Trame / Date / Salariés) qui rattache la trame enregistrée à des salariés réels, datés.
Prérequis communs : make seed-demo, make seed-postes puis make seed-trames. Ce chapitre suppose en plus un service et des salariés déjà affectés à ce service — voir chaque scénario pour les seeds précises.
1. « Enregistrer et créer un planning » ouvre l'assistant sur l'étape Date
Tickets : APAJH-119 · Rôle : Admin · Prérequis : make seed-demo, make seed-postes puis make seed-trames
Ouvrez Bibliothèque ▸ Trames, cliquez sur Éditer sur une trame, puis sur Enregistrer et créer un planning.
✅ Résultat attendu : l'assistant s'ouvre en pleine page sur l'étape Date, avec l'aperçu du cycle de la trame et la Reconduction tacite décochée par défaut.
Couverture automatique : e2e/planning-wizard.spec.ts → « « Enregistrer et créer un planning » ouvre le wizard sur l'étape Date ».
2. L'équipe par défaut pré-remplit la liste des salariés, non cochés
Tickets : APAJH-119 · Rôle : Admin · Prérequis : un service dont l'établissement correspond au périmètre du compte connecté, avec des salariés déjà affectés dessus
Depuis l'étape Date, cliquez sur Suivant ›.
✅ Résultat attendu : l'étape Salariés affiche le filtre Équipe déjà positionné sur les services du périmètre du compte (résumé « équipe +N » plutôt qu'une étiquette par équipe), et la liste des salariés qui y sont affectés — aucun coché : planifier quelqu'un reste toujours un choix délibéré, jamais un effet de bord du filtre présélectionné.
Couverture automatique : e2e/planning-wizard.spec.ts → « l'équipe par défaut pré-remplit le roster, non coché ».
3. Cocher ou décocher une équipe met à jour la liste immédiatement
Tickets : APAJH-119 · Rôle : Admin · Prérequis : comme le scénario 2, avec au moins deux services dans le périmètre
À l'étape Salariés, cochez un salarié affiché, puis décochez une des équipes du filtre Équipe.
✅ Résultat attendu : les salariés de l'équipe décochée disparaissent de la liste, sauf celui déjà coché — un salarié sélectionné ne disparaît jamais d'un changement de filtre.
Couverture automatique : e2e/planning-wizard.spec.ts → « cocher un établissement met à jour la liste en direct ».
4. Ajouter un salarié par recherche libre, y compris hors du périmètre
Tickets : APAJH-119 · Rôle : Admin · Prérequis : comme le scénario 2, plus au moins un salarié hors du périmètre du compte connecté
À l'étape Salariés, saisissez le nom d'un salarié dans Ajouter un salarié — y compris quelqu'un d'un autre établissement — puis cochez sa case dans la liste qui s'affiche.
✅ Résultat attendu : le salarié apparaît dans la liste malgré son établissement hors périmètre (un renfort ponctuel), et reste coché même une fois la recherche effacée.
Couverture automatique : e2e/planning-wizard.spec.ts → « ajouter un salarié par recherche l'intègre au roster » et « les équipes hors du périmètre du manager n'apparaissent jamais dans « Équipe » ».
5. Une recherche sans correspondance l'indique clairement
Tickets : APAJH-119 · Rôle : Admin · Prérequis : comme le scénario 2
À l'étape Salariés, saisissez dans Ajouter un salarié un texte qui ne correspond à personne.
✅ Résultat attendu : la liste affiche « Aucun résultat » — sans ce message, une recherche sans nouveauté (par exemple sur quelqu'un déjà coché) paraît identique à un champ qui ne répond pas.
Couverture automatique : e2e/planning-wizard.spec.ts → « chercher un nom qui ne correspond à personne affiche « Aucun résultat » » et « la recherche de salarié fonctionne aussi par nom d'utilisateur ».
6. Valider envoie une planification par salarié coché
Tickets : APAJH-119 · Rôle : Admin · Prérequis : comme le scénario 2
À l'étape Salariés, cochez un salarié de la liste.
Cliquez sur ✓ Valider et intégrer au planning.
✅ Résultat attendu : l'assistant se referme, la bibliothèque de trames réaffiche ses cartes, et un message confirme le nombre de salariés planifiés — un seul, celui coché.
Couverture automatique : e2e/planning-wizard.spec.ts → « valider envoie une affectation par salarié coché et revient à la bibliothèque ».
7. La liste des salariés est paginée au-delà de 10
Tickets : APAJH-119 · Rôle : Admin · Prérequis : un service du périmètre avec plus de 10 salariés affectés
À l'étape Salariés, observez la liste puis passez à la page suivante.
✅ Résultat attendu : 10 salariés par page au maximum, avec un « Page X sur N » et une pagination fonctionnelle.
Couverture automatique : e2e/planning-wizard.spec.ts → « la pagination limite le roster à 10 salariés et tourne les pages ».
8. « ‹ Retour » referme l'assistant sans rien planifier
Tickets : APAJH-119 · Rôle : Admin · Prérequis : make seed-demo, make seed-postes puis make seed-trames
Ouvrez l'assistant, puis cliquez sur ‹ Retour en haut de l'écran, sans valider.
✅ Résultat attendu : retour à la bibliothèque de trames, sans message de confirmation ni salarié planifié — la trame reste enregistrée telle quelle.
Couverture automatique : e2e/planning-wizard.spec.ts → « « ‹ Retour » referme le wizard sans planifier personne ».
9. Consulter l'assistant sur téléphone
Tickets : APAJH-119 · Rôle : Admin · Prérequis : make seed-demo, make seed-postes puis make seed-trames
En 390 × 844, ouvrez l'assistant depuis l'éditeur de trame.
✅ Résultat attendu : l'assistant défile dans son cadre ; la page elle-même ne déborde pas.
Couverture automatique : e2e/planning-wizard.spec.ts → « mobile : le wizard défile au lieu de déborder de la page ».
Points d'attention
- L'étape Trame ne s'affiche jamais au démarrage. La trame vient d'être enregistrée par l'écran qui ouvre l'assistant ; l'étape n'est atteignable qu'en revenant en arrière dans le sélecteur d'étapes.
- Le résultat se voit jour par jour sur l'écran calendrier. Cet assistant écrit des planifications (« qui, sur quelle trame, depuis quand ») ; Planning manager les résout en journées. C'est même l'inverse qui est vrai : ses scénarios sur données réelles (11 et 12) ont besoin d'une planification créée ici, aucun seed n'en écrivant.
- Éditer une trame déjà planifiée l'archive silencieusement. Depuis cet assistant on ne le voit pas ; voir Planification pour ce que cela implique pour l'historique.
- Le périmètre « mes établissements » est l'union de deux choses : les établissements du rôle du compte (
GET /api/planning-assignments/scope/) et ses propres lieux de travail (fiche salarié). Un compteis_staffsans rôle explicite garde un périmètre non vide s'il a une fiche salarié — sans quoi ce cas se lirait comme « aucune restriction », soit toute l'association, ce que cet assistant ne doit jamais faire. Seul le filtre Équipe (et le remplissage par défaut de la liste) est scopé ainsi ; Ajouter un salarié cherche dans tout l'annuaire — l'exception assumée pour amener un renfort d'un autre établissement.