Checkpoint: Améliorations de la gestion des attestations :

- Affichage de la date de début dans l'en-tête de chaque séquence
- Bouton d'envoi groupé par séquence
- Filtre séquences terminées/à venir
This commit is contained in:
Manus
2026-01-25 09:16:22 -05:00
parent 8e20ac40dd
commit b32487aa4d
3 changed files with 104 additions and 4 deletions

View File

@@ -159,6 +159,18 @@ export async function getApprenantsWithAttestationStatus(formationId: number) {
const db = await getDb();
if (!db) return [];
// Récupérer les premières dates de chaque séquence
const premieresDates = await db
.select({
sequenceId: datesFormation.sequenceId,
premiereDate: sql<Date>`MIN(${datesFormation.date})`,
})
.from(datesFormation)
.groupBy(datesFormation.sequenceId);
// Créer un map pour accès rapide
const datesMap = new Map(premieresDates.map(d => [d.sequenceId, d.premiereDate]));
const results = await db
.select({
// Apprenant
@@ -205,6 +217,7 @@ export async function getApprenantsWithAttestationStatus(formationId: number) {
sequence: {
id: r.sequenceId,
nom: r.sequenceNom,
premiereDate: datesMap.get(r.sequenceId) || null,
},
attestation: r.attestationId ? {
id: r.attestationId,