diff --git a/client/src/pages/AdminGestionAttestations.tsx b/client/src/pages/AdminGestionAttestations.tsx index 8446bf3..c3b5bd6 100644 --- a/client/src/pages/AdminGestionAttestations.tsx +++ b/client/src/pages/AdminGestionAttestations.tsx @@ -459,24 +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}-${item.sequence.premiereDate || ''}`; - if (!acc[sequenceKey]) acc[sequenceKey] = []; - acc[sequenceKey].push(item); + const sequenceId = item.sequence.id.toString(); + if (!acc[sequenceId]) acc[sequenceId] = []; + acc[sequenceId].push(item); return acc; }, {}) ) .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); + // Trier par ID de séquence (ordre de création) + const idA = parseInt(a[0]); + const idB = parseInt(b[0]); + return idA - idB; }) - .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('-'); + .map(([sequenceId, sequenceApprenants]) => { + const sequenceName = sequenceApprenants[0]?.sequence?.nom || 'Séquence inconnue'; return ( -
+
{/* En-tête de séquence */}
diff --git a/server/gestionAttestationsDb.ts b/server/gestionAttestationsDb.ts index 19f1f64..22c2a8a 100644 --- a/server/gestionAttestationsDb.ts +++ b/server/gestionAttestationsDb.ts @@ -174,7 +174,6 @@ 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 1464998..96f9dd1 100644 --- a/todo.md +++ b/todo.md @@ -1278,4 +1278,10 @@ - [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 +- [x] Déployer sur le VPS + +## Corriger l'affichage vide de la liste des apprenants après le tri chronologique + +- [x] Identifier la cause du problème (champ premiereDate inexistant) +- [x] Corriger le code de regroupement/tri (utiliser l'ID de séquence) - [ ] Déployer sur le VPS