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:
@@ -21,6 +21,7 @@ interface SequenceInfo {
|
|||||||
sequenceNom: string;
|
sequenceNom: string;
|
||||||
dates: Array<{ dateDebut: Date; dateFin: Date; ordre: number }>;
|
dates: Array<{ dateDebut: Date; dateFin: Date; ordre: number }>;
|
||||||
lieu: string;
|
lieu: string;
|
||||||
|
publicCible: string;
|
||||||
inscriptions: InscriptionExport[];
|
inscriptions: InscriptionExport[];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -36,6 +37,7 @@ interface FeuillePresenceInfo {
|
|||||||
sequenceNom: string;
|
sequenceNom: string;
|
||||||
dates: Array<{ dateDebut: Date; dateFin: Date; ordre: number }>;
|
dates: Array<{ dateDebut: Date; dateFin: Date; ordre: number }>;
|
||||||
lieu: string;
|
lieu: string;
|
||||||
|
publicCible: string;
|
||||||
apprenants: ApprenantPresence[];
|
apprenants: ApprenantPresence[];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -62,6 +64,7 @@ export function generateExcelExport(sequenceInfo: SequenceInfo): Buffer {
|
|||||||
['Formation', sequenceInfo.formationNom],
|
['Formation', sequenceInfo.formationNom],
|
||||||
['Séquence', sequenceInfo.sequenceNom],
|
['Séquence', sequenceInfo.sequenceNom],
|
||||||
['Lieu', sequenceInfo.lieu],
|
['Lieu', sequenceInfo.lieu],
|
||||||
|
['Public cible', sequenceInfo.publicCible === 'directeur' ? 'Directeurs' : sequenceInfo.publicCible === 'chef_service' ? 'Chefs de service' : 'Autre'],
|
||||||
['Nombre de dates', sequenceInfo.dates.length.toString()],
|
['Nombre de dates', sequenceInfo.dates.length.toString()],
|
||||||
[],
|
[],
|
||||||
['DATES DE FORMATION'],
|
['DATES DE FORMATION'],
|
||||||
@@ -127,6 +130,8 @@ export function generatePDFExport(sequenceInfo: SequenceInfo): Buffer {
|
|||||||
yPos += 6;
|
yPos += 6;
|
||||||
doc.text(`Lieu : ${sequenceInfo.lieu}`, 14, yPos);
|
doc.text(`Lieu : ${sequenceInfo.lieu}`, 14, yPos);
|
||||||
yPos += 6;
|
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);
|
doc.text(`Nombre de dates : ${sequenceInfo.dates.length}`, 14, yPos);
|
||||||
yPos += 8;
|
yPos += 8;
|
||||||
|
|
||||||
@@ -187,6 +192,8 @@ export function generateFeuillePresence(feuilleInfo: FeuillePresenceInfo): Buffe
|
|||||||
doc.text(`Séquence : ${feuilleInfo.sequenceNom}`, 14, yPos);
|
doc.text(`Séquence : ${feuilleInfo.sequenceNom}`, 14, yPos);
|
||||||
yPos += 6;
|
yPos += 6;
|
||||||
doc.text(`Lieu : ${feuilleInfo.lieu}`, 14, yPos);
|
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;
|
yPos += 8;
|
||||||
|
|
||||||
// Dates de formation
|
// Dates de formation
|
||||||
|
|||||||
@@ -444,6 +444,7 @@ export const appRouter = router({
|
|||||||
ordre: d.ordre,
|
ordre: d.ordre,
|
||||||
})),
|
})),
|
||||||
lieu: sequence.lieu,
|
lieu: sequence.lieu,
|
||||||
|
publicCible: sequence.publicCible,
|
||||||
inscriptions: data,
|
inscriptions: data,
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -484,6 +485,7 @@ export const appRouter = router({
|
|||||||
ordre: d.ordre,
|
ordre: d.ordre,
|
||||||
})),
|
})),
|
||||||
lieu: sequence.lieu,
|
lieu: sequence.lieu,
|
||||||
|
publicCible: sequence.publicCible,
|
||||||
inscriptions: data,
|
inscriptions: data,
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -521,6 +523,7 @@ export const appRouter = router({
|
|||||||
ordre: d.ordre,
|
ordre: d.ordre,
|
||||||
})),
|
})),
|
||||||
lieu: sequence.lieu,
|
lieu: sequence.lieu,
|
||||||
|
publicCible: sequence.publicCible,
|
||||||
apprenants: data,
|
apprenants: data,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
8
todo.md
8
todo.md
@@ -144,3 +144,11 @@
|
|||||||
- [x] Implémenter la logique de vérification du public cible dans le formulaire d'inscription
|
- [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] 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)
|
- [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
|
||||||
|
|||||||
Reference in New Issue
Block a user