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