Checkpoint: Correction de l'affichage vide des apprenants dans la gestion des attestations après le regroupement par séquence. Le problème venait de la référence à un champ premiereDate inexistant. Solution: utiliser l'ID de séquence pour le tri et le regroupement.

This commit is contained in:
Manus
2026-01-25 09:03:13 -05:00
parent 77a65cbfa2
commit f51e027a5c
3 changed files with 16 additions and 13 deletions

View File

@@ -459,24 +459,22 @@ export default function AdminGestionAttestations() {
{/* Regrouper les apprenants par séquence */}
{Object.entries(
apprenants.reduce((acc: Record<string, typeof apprenants>, 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 (
<div key={sequenceKey} className="border rounded-lg overflow-hidden">
<div key={sequenceId} className="border rounded-lg overflow-hidden">
{/* En-tête de séquence */}
<div className="bg-gradient-to-r from-blue-50 to-indigo-50 border-b px-4 py-3">
<div className="flex items-center justify-between">