Checkpoint: Ajout du champ "Public cible" dans tous les exports (Excel, PDF liste d'inscrits, PDF feuille de présence) pour une meilleure traçabilité des séquences

This commit is contained in:
Manus Sandbox
2025-11-17 06:06:23 -05:00
parent 19dbe9cccc
commit 3f16cd8a48
3 changed files with 18 additions and 0 deletions

View File

@@ -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

View File

@@ -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,
});

View File

@@ -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