From 77a65cbfa21c78a8b16081ac055480d56051c9a6 Mon Sep 17 00:00:00 2001 From: Manus Date: Sun, 25 Jan 2026 08:56:53 -0500 Subject: [PATCH] =?UTF-8?q?Checkpoint:=20Ajout=20du=20tri=20chronologique?= =?UTF-8?q?=20des=20s=C3=A9quences=20dans=20la=20gestion=20des=20attestati?= =?UTF-8?q?ons:=20-=20Modification=20du=20backend=20pour=20inclure=20la=20?= =?UTF-8?q?premi=C3=A8re=20date=20de=20chaque=20s=C3=A9quence=20-=20Tri=20?= =?UTF-8?q?des=20s=C3=A9quences=20par=20ordre=20chronologique=20(premi?= =?UTF-8?q?=C3=A8re=20date=20en=20premier)=20-=20Les=20s=C3=A9quences=20so?= =?UTF-8?q?nt=20maintenant=20affich=C3=A9es=20dans=20l'ordre=20temporel=20?= =?UTF-8?q?pour=20une=20meilleure=20organisation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- client/src/pages/AdminGestionAttestations.tsx | 15 ++++++++++++--- server/gestionAttestationsDb.ts | 1 + todo.md | 6 ++++++ 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/client/src/pages/AdminGestionAttestations.tsx b/client/src/pages/AdminGestionAttestations.tsx index 1e06024..8446bf3 100644 --- a/client/src/pages/AdminGestionAttestations.tsx +++ b/client/src/pages/AdminGestionAttestations.tsx @@ -459,13 +459,22 @@ export default function AdminGestionAttestations() { {/* Regrouper les apprenants par séquence */} {Object.entries( apprenants.reduce((acc: Record, item) => { - const sequenceKey = `${item.sequence.id}-${item.sequence.nom}`; + const sequenceKey = `${item.sequence.id}-${item.sequence.nom}-${item.sequence.premiereDate || ''}`; if (!acc[sequenceKey]) acc[sequenceKey] = []; acc[sequenceKey].push(item); return acc; }, {}) - ).map(([sequenceKey, sequenceApprenants]) => { - const sequenceName = sequenceKey.split('-').slice(1).join('-'); + ) + .sort((a, b) => { + // Extraire la première date de la clé de séquence + const dateA = a[0].split('-').pop() || ''; + const dateB = b[0].split('-').pop() || ''; + return dateA.localeCompare(dateB); + }) + .map(([sequenceKey, sequenceApprenants]) => { + // Extraire le nom de la séquence (sans l'ID ni la date) + const parts = sequenceKey.split('-'); + const sequenceName = parts.slice(1, -1).join('-'); return (
{/* En-tête de séquence */} diff --git a/server/gestionAttestationsDb.ts b/server/gestionAttestationsDb.ts index 22c2a8a..19f1f64 100644 --- a/server/gestionAttestationsDb.ts +++ b/server/gestionAttestationsDb.ts @@ -174,6 +174,7 @@ export async function getApprenantsWithAttestationStatus(formationId: number) { sequence: { id: sequences.id, nom: sequences.nom, + premiereDate: sequences.premiereDate, }, attestation: { id: attestations.id, diff --git a/todo.md b/todo.md index a38bcc8..1464998 100644 --- a/todo.md +++ b/todo.md @@ -1272,4 +1272,10 @@ - [x] Analyser l'affichage actuel (regroupement par formation) - [x] Vérifier le backend (données de séquence déjà présentes) - [x] Adapter l'interface pour afficher les apprenants regroupés par séquence +- [x] Déployer sur le VPS + +## Trier les séquences par ordre chronologique dans la gestion des attestations + +- [x] Modifier le backend pour inclure la première date de chaque séquence +- [x] Adapter le frontend pour trier les séquences par date - [ ] Déployer sur le VPS