From 04d8faf919fdf4ea3ec831dd099f4026bca2d599 Mon Sep 17 00:00:00 2001 From: Manus Date: Mon, 9 Feb 2026 11:10:56 -0500 Subject: [PATCH] =?UTF-8?q?Checkpoint:=20Am=C3=A9lioration=20de=20l'ergono?= =?UTF-8?q?mie=20de=20l'encart=20des=20signatures=20formateurs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Modifications apportées : - Regroupement des signatures formateurs par date (au lieu d'une signature par ligne) - Affichage d'une zone par date avec les signatures matin et après-midi à l'intérieur - Ergonomie identique à celle des apprenants pour une meilleure cohérence visuelle - Affichage de "Aucune signature" pour les périodes sans signature - Heure de signature affichée dans un badge pour chaque période - Design distinct avec bordure bleue pour différencier des signatures apprenants - Déployé sur recette (108.143.67.56) et production (98.71.216.234) --- client/src/pages/FormateurEmargement.tsx | 124 ++++++++++++++++------- todo.md | 6 ++ 2 files changed, 96 insertions(+), 34 deletions(-) diff --git a/client/src/pages/FormateurEmargement.tsx b/client/src/pages/FormateurEmargement.tsx index 0ec223b..e19447d 100644 --- a/client/src/pages/FormateurEmargement.tsx +++ b/client/src/pages/FormateurEmargement.tsx @@ -504,51 +504,107 @@ export default function FormateurEmargement() {
- {signaturesFormateurs.map((signature: any) => ( -
-
+ {(() => { + // Regrouper les signatures par date + const signaturesByDate = signaturesFormateurs.reduce((acc: any, signature: any) => { + const dateKey = signature.dateFormationId; + if (!acc[dateKey]) { + acc[dateKey] = { + dateDebut: signature.dateDebut, + dateFin: signature.dateFin, + matin: null, + apres_midi: null, + }; + } + if (signature.periode === "matin") { + acc[dateKey].matin = signature; + } else { + acc[dateKey].apres_midi = signature; + } + return acc; + }, {}); + + return Object.values(signaturesByDate).map((dateGroup: any) => ( +
+ {/* En-tête de la date */}

- {new Date(signature.dateDebut).toLocaleDateString("fr-FR", { + {new Date(dateGroup.dateDebut).toLocaleDateString("fr-FR", { weekday: "long", year: "numeric", month: "long", day: "numeric", })}

-

- {signature.periode === "matin" ? "🌅 Matin" : "🌆 Après-midi"} -

- - {new Date(signature.heurePresence).toLocaleTimeString("fr-FR", { - hour: "2-digit", - minute: "2-digit", - })} - -
- {signature.signatureUrl && ( -
-

Signature tactile :

-
{ - setSelectedSignature(signature.signatureUrl!); - setShowSignatureDialog(true); - }} - > - Signature formateur + + {/* Signature Matin */} +
+
+

🌅 Matin

+ {dateGroup.matin && ( + + {new Date(dateGroup.matin.heurePresence).toLocaleTimeString("fr-FR", { + hour: "2-digit", + minute: "2-digit", + })} + + )}
+ {dateGroup.matin?.signatureUrl ? ( +
{ + setSelectedSignature(dateGroup.matin.signatureUrl!); + setShowSignatureDialog(true); + }} + > + Signature formateur matin +
+ ) : ( +

Aucune signature

+ )}
- )} -
- ))} + + {/* Signature Après-midi */} +
+
+

🌆 Après-midi

+ {dateGroup.apres_midi && ( + + {new Date(dateGroup.apres_midi.heurePresence).toLocaleTimeString("fr-FR", { + hour: "2-digit", + minute: "2-digit", + })} + + )} +
+ {dateGroup.apres_midi?.signatureUrl ? ( +
{ + setSelectedSignature(dateGroup.apres_midi.signatureUrl!); + setShowSignatureDialog(true); + }} + > + Signature formateur après-midi +
+ ) : ( +

Aucune signature

+ )} +
+
+ )); + })()}
diff --git a/todo.md b/todo.md index a6072a2..cdee0ae 100644 --- a/todo.md +++ b/todo.md @@ -1535,3 +1535,9 @@ - [x] Ajouter un encart dédié sur la page d'émargement numérique pour afficher les signatures formateurs - [x] Afficher les signatures formateurs avec date/heure et période (matin/après-midi) - [x] Déployer sur recette et production + +## Amélioration ergonomie signatures formateurs + +- [x] Modifier l'affichage pour regrouper les signatures par date (au lieu d'une signature par ligne) +- [x] Afficher une zone par date avec les signatures matin et après-midi à l'intérieur +- [x] Ergonomie identique à celle des apprenants