Apparence
Annuaire Utilisateurs
La liste du personnel (/utilisateurs) : les effectifs en tête, la recherche, le filtre par établissement, et l'ouverture d'une fiche.
Pour qui : les rôles d'encadrement (Admin, RH n1, RH n2, DA, Manager n1, Manager n2, Service Paie). Un compte Salarié ou Intérimaire n'y accède pas — voir Portail § 7.
Prérequis communs : make seed-establishments puis make seed-workforce.
Aucun critère d'acceptation ne porte sur cet écran. Les deux critères d'APAJH-208 concernent la fiche salarié (organisation en onglets, masquage des données d'enfants) et sont vérifiés dans Fiche salarié § 2 et § 4. Les comportements de l'annuaire décrits ci-dessous — tuiles d'effectif, recherche insensible aux accents, filtre par établissement — ont donc été livrés sans critère qui les cadre : ils sont recettés tels que construits, et un écart avec l'intention du ticket ne serait pas détecté ici.
1. Lire les effectifs par famille de contrat
Tickets : APAJH-208 · Rôle : Admin · Prérequis : make seed-workforce
Ouvrez Utilisateurs dans le groupe Personnel.
✅ Résultat attendu : quatre tuiles en tête de page — Effectif total, CDI, CDD, Intérimaires.
Additionnez les trois tuiles de contrat.
✅ Résultat attendu : la somme égale l'Effectif total. Les libellés fins sont comptés dans leur famille : un agent polyvalent en CDI compte avec les CDI, une stagiaire sous CDD avec les CDD.
Couverture automatique : e2e/utilisateurs.spec.ts → « compte les effectifs par famille de contrat ».
2. Lire une ligne de l'annuaire
Tickets : APAJH-208, APAJH-177 · Rôle : Admin · Prérequis : make seed-workforce et make seed-counters
Repérez la ligne de Sophie Martin.
✅ Résultat attendu : la ligne porte sa fonction (Éducatrice spé.), son établissement (IME Les Tilleuls), son type de contrat (CDI) et son ETP en pourcentage (60 %).
Regardez la colonne de solde d'un salarié en avance, puis d'un salarié en retard.
✅ Résultat attendu : un solde positif s'affiche
+18 h, un solde négatif avec un vrai signe moins typographique (−4 h) et non un trait d'union.Repérez un salarié sans ligne d'annualisation pour l'année.
✅ Résultat attendu : la colonne affiche un tiret cadratin (
—), pas0 h— l'absence de donnée et un solde nul ne se disent pas pareil.
Couverture automatique : e2e/utilisateurs.spec.ts → « liste les salariés avec leur contrat et leur ETP ».
3. Rechercher un salarié
Tickets : APAJH-208 · Rôle : Admin · Prérequis : make seed-workforce
Dans Rechercher un salarié, tapez
ines— sans accent, en minuscules.✅ Résultat attendu : Inès Fabre ressort. La casse et les accents sont ignorés.
Tapez
spe educatrice— deux mots, dans le désordre, l'un abrégé.✅ Résultat attendu : Sophie Martin (Éducatrice spé.) ressort ; une Stagiaire éducatrice ne ressort pas. La recherche porte donc aussi sur la fonction, et chaque mot doit correspondre.
Couverture automatique : e2e/utilisateurs.spec.ts → « la recherche ignore la casse et les accents ».
4. Filtrer par établissement
Tickets : APAJH-208, APAJH-177 · Rôle : Admin · Prérequis : make seed-workforce
Déroulez Filtrer par établissement et cochez IME Les Tilleuls.
✅ Résultat attendu : la liste ne contient plus que les salariés rattachés à cet établissement. Un salarié d'un autre établissement, par exemple Karim Mokrani (FAM Les Cigales), disparaît.
Retirez le filtre.
✅ Résultat attendu : l'effectif complet revient.
Couverture automatique : e2e/utilisateurs.spec.ts → « le filtre établissement restreint la liste ».
5. Ouvrir la fiche d'un salarié
Tickets : APAJH-208 · Rôle : Admin · Prérequis : make seed-workforce
Cliquez sur la ligne d'un salarié.
✅ Résultat attendu : la fiche s'ouvre sur le volet Informations, à l'adresse
/utilisateurs/<id>/informations.
Couverture automatique : e2e/utilisateurs.spec.ts → « ouvrir une ligne mène à la fiche du salarié ».
6. Consulter l'annuaire sur téléphone
Tickets : APAJH-208 · Rôle : Admin · Prérequis : make seed-workforce
En 390 × 844, ouvrez
/utilisateurs.✅ Résultat attendu : toutes les lignes sont présentes. Le tableau défile horizontalement dans son cadre ; la page elle-même ne déborde pas — aucune barre de défilement horizontale sur le document.
Couverture automatique : e2e/utilisateurs.spec.ts → « mobile : le tableau défile au lieu de déborder de la page ».
7. Créer un salarié avant réception de son matricule paie
Tickets : APAJH-205 · Rôle : Admin · Prérequis : make seed-establishments
Critères d'acceptation du ticket
- Étant donné un chef de service, quand il crée un compte provisoire, alors il renseigne type de contrat et volume horaire.
- Étant donné ce compte, quand le matricule paye devient disponible, alors il y est rattaché. (Recetté dans Fiche salarié § 8.)
- Étant donné la liste CDD/CDI, quand consultée, alors elle est synchronisée depuis la paye. (Voir les Points d'attention : il n'existe aucune synchronisation automatique avec le logiciel de paye.)
Ouvrez Utilisateurs dans le groupe Personnel, puis cliquez sur Nouvel utilisateur à droite de la barre de filtres.
Tout en haut du formulaire, choisissez le Type de contrat
CDI.✅ Résultat attendu : le formulaire complet apparaît — Identité, Coordonnées, Autres, Attestation d'honorabilité, Statut aidant, Rattachement & paie, Contrat, Régime de temps et Temps de travail. C'est le type de contrat qui décide de ces blocs : voir § 8 pour l'intérim.
Dans Identité, renseignez Nom, Prénom, la Date de naissance et la Situation familiale. Laissez le Matricule vide.
Dans Rattachement & paie, choisissez l'Établissement de paie, le Lieu de travail principal, et autant de Lieux de travail secondaires que nécessaire — le principal n'y est jamais proposé.
Dans Contrat, renseignez la Qualification (le diplôme :
DEI) et la Fonction (le poste :IDE) — ce sont deux questions différentes — puis la Date de début du contrat. Laissez la Date de fin du contrat vide — c'est le cas d'un CDI.Dans Temps de travail, saisissez
28en Heures hebdomadaires.✅ Résultat attendu : l'ETP contractuel affiche
80 %et le Nombre d'heures mensuelles121,33 h, tous deux verrouillés. Les deux se recalculent à chaque frappe : ils ne sont jamais saisis.Cliquez sur Créer l'utilisateur.
✅ Résultat attendu : la fiche du nouveau salarié s'ouvre sur le volet Informations, son bandeau porte le badge rouge Non synchronisée paie, et sa ligne dans l'annuaire porte la pastille Provisoire à côté de son type de contrat.
Couverture automatique : e2e/nouvel-utilisateur.spec.ts → « crée un salarié sans matricule et mène à sa fiche », « l'ETP et les heures mensuelles suivent les heures hebdomadaires », « un dossier sans matricule paie porte la pastille « Provisoire » ».
8. Créer un intérimaire, qui n'entre pas dans la paie
Tickets : APAJH-205 · Rôle : Admin · Prérequis : make seed-establishments
Un intérimaire est payé par son agence, jamais par l'APAJH. Son dossier n'a donc ni établissement de paie, ni matricule, ni la partie administrative d'un dossier de salarié : le formulaire se raccourcit dès que le type de contrat le dit.
Ouvrez Nouvel utilisateur et choisissez le Type de contrat
Intérim.✅ Résultat attendu : le formulaire ne présente plus que quatre blocs — Identité & mission, Coordonnées, Lieux de travail et Contrat. Les champs Matricule, Établissement de paie, Situation familiale, N° RPPS, Attestation d'honorabilité et Statut aidant ont disparu. Si vous en aviez déjà rempli un avant de basculer, sa valeur est effacée et ne partira pas.
Renseignez Nom, Prénom, la Qualification, la Fonction, le Lieu de travail principal, les Heures hebdomadaires et la Date de début du contrat. Laissez la Date de fin du contrat vide.
✅ Résultat attendu : le bouton Créer l'utilisateur reste désactivé. Une mission a toujours un terme — une date de fin vide voudrait dire « contrat en cours », ce qu'un intérim n'est jamais.
Renseignez la Date de fin du contrat, puis validez.
✅ Résultat attendu : sur la fiche, le bandeau porte le badge Intérim et aucun badge Non synchronisée paie ; dans l'annuaire, la ligne porte Intérim et aucune pastille Provisoire ; dans le volet Informations, le champ Matricule est en lecture seule. Dans le volet Contrat, l'Établissement de paye est vide.
Couverture automatique : e2e/nouvel-utilisateur.spec.ts → « choisir Intérim réduit le dossier à ce qu'une mission demande », « un intérim part sans établissement de paie », « un intérim sans date de fin ne peut pas être créé », « un champ saisi avant de basculer sur Intérim ne part pas » ; e2e/utilisateurs.spec.ts → « un intérimaire sans matricule n'est PAS provisoire » ; e2e/fiche-salarie.spec.ts → « un intérimaire sans matricule porte « Intérim », pas « Non synchronisée paie » ».
9. Ouvrir le dossier administratif complet dès la création
Tickets : APAJH-205 · Rôle : Admin · Prérequis : make seed-establishments
Ce qui manquait au formulaire livré : tout ce que la fiche sait afficher dans ses onglets Informations et Contrat se saisit maintenant d'un coup, plutôt qu'en rouvrant la fiche après coup. Aucun de ces champs n'est bloquant.
Ouvrez Nouvel utilisateur, choisissez un Type de contrat autre que
Intérim, et remplissez les champs obligatoires (§ 7).Dans Autres, cochez Salarié en situation de handicap.
Dans Attestation d'honorabilité, basculez l'interrupteur sur Oui, renseignez la Date de remise et joignez un PDF.
Dans Statut aidant, basculez sur Oui, cliquez sur Ajouter une personne aidée et saisissez
père.Dans Contrat, renseignez le Début et la Fin de période d'essai.
Dans Régime de temps, cochez Forfait jours et Astreinte.
✅ Résultat attendu : Dimanches & jours fériés prévisionnels reste visible tant que Non annualisé est coché. Décochez-le : le champ disparaît — un contrat annualisé porte déjà ces jours dans son calendrier.
Recochez Non annualisé, saisissez
12, puis validez.✅ Résultat attendu : la fiche s'ouvre. Dans Informations, la case Salarié en situation de handicap est cochée et modifiable, et l'attestation porte sa date et son justificatif. Dans Famille & social, le Statut aidant est à Oui avec
père. Dans Contrat, la période d'essai, le régime de temps et les12dimanches sont là.
Couverture automatique : e2e/nouvel-utilisateur.spec.ts → « le régime de temps et la période d'essai partent avec la création », « le statut aidant et ses personnes aidées partent avec la création », « joindre le justificatif d'honorabilité fait partir un multipart », « les dimanches ne sont demandés que hors annualisation ».
Points d'attention
- Le bouton Nouvel utilisateur n'apparaît pas pour tous les rôles. Il est réservé à
Admin,RH n1,RH n2,DA,Manager n1etManager n2. Un compteService Paieconsulte l'annuaire sans pouvoir ouvrir de dossier. - Le matricule n'est pas obligatoire, mais il est saisissable dès la création. S'il est déjà connu, renseignez-le tout de suite : le salarié n'est alors pas provisoire et n'affiche aucun des deux marqueurs.
- Un matricule vide chez un intérimaire est l'état normal et définitif, pas un dossier en attente : les intérims n'entrent pas dans la paie. C'est pourquoi un intérimaire n'affiche jamais Provisoire ni Non synchronisée paie, et pourquoi son contrat n'a aucun établissement de paye.
- Qualification et Fonction ne sont pas le même champ. La qualification est le diplôme ou le niveau reconnu au titre duquel la personne est employée (
DEES,DEAS) ; la fonction est le poste qu'elle occupe (IDE,AS). Les deux sont demandées à la création, et l'annuaire affiche la fonction. - L'ETP contractuel et les heures mensuelles ne se saisissent pas. Ils sont calculés depuis les heures hebdomadaires (référence 35 h, convention 52/12) et affichés verrouillés. Un écart entre ce que montre le formulaire et ce que montre la fiche serait un défaut, pas une saisie à corriger.
- Il n'existe aucune synchronisation automatique avec le logiciel de paye. Le badge Non synchronisée paie signifie « aucun matricule paie n'a encore été saisi », et non « un échange automatique a échoué ». Le matricule est saisi à la main — voir DAT § 02.
- Le compte naît sans mot de passe utilisable. La personne le choisit par Mot de passe oublié ; aucun courriel d'invitation n'est envoyé.
- L'annuaire montre tous les salariés à tout rôle d'encadrement : il n'est pas restreint aux établissements sur lesquels votre rôle est attribué. Si cette restriction est attendue, c'est un écart à signaler, pas une régression connue.
- Les soldes affichés viennent des compteurs. Sans
make seed-counters, les colonnes correspondantes sont vides — ce n'est pas un défaut de l'écran.