Checkpoint: Améliorations du tableau des rappels : renommage de la colonne "Template" en "Template d'email" et ajout d'une colonne "Dates concernées" affichant les formations, séquences et dates spécifiques associées à chaque rappel. La fonction getRappels a été enrichie pour récupérer automatiquement les détails des dates de formation (formation, séquence, ordre). L'affichage groupé permet de voir en un coup d'œil si un rappel s'applique à toutes les dates ou seulement à des dates spécifiques.
This commit is contained in:
33
server/db.ts
33
server/db.ts
@@ -972,13 +972,44 @@ export async function getRappels() {
|
||||
|
||||
const allRappels = await db.select().from(rappels).orderBy(rappels.joursAvant);
|
||||
|
||||
// Pour chaque rappel, récupérer les dates de formation associées
|
||||
// Pour chaque rappel, récupérer les dates de formation associées avec leurs infos
|
||||
const rappelsWithDates = await Promise.all(
|
||||
allRappels.map(async (rappel) => {
|
||||
const dateFormationIds = await getRappelDates(rappel.id);
|
||||
|
||||
// Récupérer les détails des dates de formation
|
||||
const datesDetails = await Promise.all(
|
||||
dateFormationIds.map(async (dateId) => {
|
||||
const dateFormationResult = await db.select().from(datesFormation).where(eq(datesFormation.id, dateId)).limit(1);
|
||||
if (dateFormationResult.length === 0) return null;
|
||||
|
||||
const dateFormation = dateFormationResult[0];
|
||||
const sequenceResult = await db.select().from(sequences).where(eq(sequences.id, dateFormation.sequenceId)).limit(1);
|
||||
if (sequenceResult.length === 0) return null;
|
||||
|
||||
const sequence = sequenceResult[0];
|
||||
const formationResult = await db.select().from(formations).where(eq(formations.id, sequence.formationId)).limit(1);
|
||||
if (formationResult.length === 0) return null;
|
||||
|
||||
const formation = formationResult[0];
|
||||
|
||||
return {
|
||||
dateFormationId: dateFormation.id,
|
||||
dateDebut: dateFormation.dateDebut,
|
||||
dateFin: dateFormation.dateFin,
|
||||
ordre: dateFormation.ordre,
|
||||
sequenceId: sequence.id,
|
||||
sequenceNom: sequence.nom,
|
||||
formationId: formation.id,
|
||||
formationNom: formation.nom,
|
||||
};
|
||||
})
|
||||
);
|
||||
|
||||
return {
|
||||
...rappel,
|
||||
dateFormationIds,
|
||||
datesDetails: datesDetails.filter(d => d !== null),
|
||||
};
|
||||
})
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user