diff --git a/server/exportService.ts b/server/exportService.ts index cf55d3a..bc373b1 100644 --- a/server/exportService.ts +++ b/server/exportService.ts @@ -21,6 +21,7 @@ interface SequenceInfo { sequenceNom: string; dates: Array<{ dateDebut: Date; dateFin: Date; ordre: number }>; lieu: string; + publicCible: string; inscriptions: InscriptionExport[]; } @@ -36,6 +37,7 @@ interface FeuillePresenceInfo { sequenceNom: string; dates: Array<{ dateDebut: Date; dateFin: Date; ordre: number }>; lieu: string; + publicCible: string; apprenants: ApprenantPresence[]; } @@ -62,6 +64,7 @@ export function generateExcelExport(sequenceInfo: SequenceInfo): Buffer { ['Formation', sequenceInfo.formationNom], ['Séquence', sequenceInfo.sequenceNom], ['Lieu', sequenceInfo.lieu], + ['Public cible', sequenceInfo.publicCible === 'directeur' ? 'Directeurs' : sequenceInfo.publicCible === 'chef_service' ? 'Chefs de service' : 'Autre'], ['Nombre de dates', sequenceInfo.dates.length.toString()], [], ['DATES DE FORMATION'], @@ -127,6 +130,8 @@ export function generatePDFExport(sequenceInfo: SequenceInfo): Buffer { yPos += 6; doc.text(`Lieu : ${sequenceInfo.lieu}`, 14, yPos); yPos += 6; + doc.text(`Public cible : ${sequenceInfo.publicCible === 'directeur' ? 'Directeurs' : sequenceInfo.publicCible === 'chef_service' ? 'Chefs de service' : 'Autre'}`, 14, yPos); + yPos += 6; doc.text(`Nombre de dates : ${sequenceInfo.dates.length}`, 14, yPos); yPos += 8; @@ -187,6 +192,8 @@ export function generateFeuillePresence(feuilleInfo: FeuillePresenceInfo): Buffe doc.text(`Séquence : ${feuilleInfo.sequenceNom}`, 14, yPos); yPos += 6; doc.text(`Lieu : ${feuilleInfo.lieu}`, 14, yPos); + yPos += 6; + doc.text(`Public cible : ${feuilleInfo.publicCible === 'directeur' ? 'Directeurs' : feuilleInfo.publicCible === 'chef_service' ? 'Chefs de service' : 'Autre'}`, 14, yPos); yPos += 8; // Dates de formation diff --git a/server/routers.ts b/server/routers.ts index 0acdc40..44e45bb 100644 --- a/server/routers.ts +++ b/server/routers.ts @@ -444,6 +444,7 @@ export const appRouter = router({ ordre: d.ordre, })), lieu: sequence.lieu, + publicCible: sequence.publicCible, inscriptions: data, }); @@ -484,6 +485,7 @@ export const appRouter = router({ ordre: d.ordre, })), lieu: sequence.lieu, + publicCible: sequence.publicCible, inscriptions: data, }); @@ -521,6 +523,7 @@ export const appRouter = router({ ordre: d.ordre, })), lieu: sequence.lieu, + publicCible: sequence.publicCible, apprenants: data, }); diff --git a/todo.md b/todo.md index 0fcc5c7..a80c659 100644 --- a/todo.md +++ b/todo.md @@ -144,3 +144,11 @@ - [x] Implémenter la logique de vérification du public cible dans le formulaire d'inscription - [x] Afficher une alerte d'information (non bloquante) si le public cible ne correspond pas - [x] Tester l'alerte avec différents scénarios (correspondance, non-correspondance) + +## Inclusion du public cible dans les exports + +- [x] Analyser le code des exports Excel et PDF +- [x] Ajouter le public cible dans l'export Excel des listes d'inscrits +- [x] Ajouter le public cible dans l'export PDF des listes d'inscrits +- [x] Ajouter le public cible dans l'export PDF des feuilles de présence +- [x] Tester tous les exports pour vérifier l'affichage correct