Checkpoint: Ajout du tri chronologique des séquences dans la gestion des attestations:

- Modification du backend pour inclure la première date de chaque séquence
- Tri des séquences par ordre chronologique (première date en premier)
- Les séquences sont maintenant affichées dans l'ordre temporel pour une meilleure organisation
This commit is contained in:
Manus
2026-01-25 08:56:53 -05:00
parent 63e8ea17d1
commit 77a65cbfa2
3 changed files with 19 additions and 3 deletions

View File

@@ -459,13 +459,22 @@ export default function AdminGestionAttestations() {
{/* Regrouper les apprenants par séquence */} {/* Regrouper les apprenants par séquence */}
{Object.entries( {Object.entries(
apprenants.reduce((acc: Record<string, typeof apprenants>, item) => { apprenants.reduce((acc: Record<string, typeof apprenants>, 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] = []; if (!acc[sequenceKey]) acc[sequenceKey] = [];
acc[sequenceKey].push(item); acc[sequenceKey].push(item);
return acc; 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 ( return (
<div key={sequenceKey} className="border rounded-lg overflow-hidden"> <div key={sequenceKey} className="border rounded-lg overflow-hidden">
{/* En-tête de séquence */} {/* En-tête de séquence */}

View File

@@ -174,6 +174,7 @@ export async function getApprenantsWithAttestationStatus(formationId: number) {
sequence: { sequence: {
id: sequences.id, id: sequences.id,
nom: sequences.nom, nom: sequences.nom,
premiereDate: sequences.premiereDate,
}, },
attestation: { attestation: {
id: attestations.id, id: attestations.id,

View File

@@ -1272,4 +1272,10 @@
- [x] Analyser l'affichage actuel (regroupement par formation) - [x] Analyser l'affichage actuel (regroupement par formation)
- [x] Vérifier le backend (données de séquence déjà présentes) - [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] 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 - [ ] Déployer sur le VPS