diff --git a/client/src/pages/AdminCalendrier.tsx b/client/src/pages/AdminCalendrier.tsx index 6b5053c..f04f797 100644 --- a/client/src/pages/AdminCalendrier.tsx +++ b/client/src/pages/AdminCalendrier.tsx @@ -169,7 +169,7 @@ export default function AdminCalendrier() { className="w-full text-left text-xs p-1.5 rounded bg-blue-100 hover:bg-blue-200 text-blue-800 space-y-0.5" >
{seq.nom}
-
{seq.formation?.titre || "Sans formation"}
+
{seq.formation?.nom || "Sans formation"}
{seq.lieu} {seq.formateur && `• ${seq.formateur}`}
@@ -200,7 +200,7 @@ export default function AdminCalendrier() {

- {selectedSequence.formation?.titre || "Sans titre"} + {selectedSequence.formation?.nom || "Sans titre"}

{selectedSequence.formation?.description || "Aucune description"} diff --git a/server/db.ts b/server/db.ts index b51bf4d..15a46ed 100644 --- a/server/db.ts +++ b/server/db.ts @@ -177,6 +177,24 @@ export async function getSequences() { return await db.select().from(sequences); } +export async function getSequencesWithFormation() { + const db = await getDb(); + if (!db) return []; + + const seqs = await db.select().from(sequences); + + // Récupérer les informations de formation pour chaque séquence + return await Promise.all( + seqs.map(async (seq) => { + const formation = await db.select().from(formations).where(eq(formations.id, seq.formationId)).limit(1); + return { + ...seq, + formation: formation.length > 0 ? { id: formation[0].id, nom: formation[0].nom } : null, + }; + }) + ); +} + export async function getSequenceById(id: number): Promise { const db = await getDb(); if (!db) return undefined; diff --git a/server/routers.ts b/server/routers.ts index 0bdba86..ae0d9bb 100644 --- a/server/routers.ts +++ b/server/routers.ts @@ -119,7 +119,7 @@ export const appRouter = router({ // ===== SÉQUENCES ===== sequences: router({ list: adminProcedure.query(async () => { - const seqs = await db.getSequences(); + const seqs = await db.getSequencesWithFormation(); // Récupérer les dates et le nombre d'inscrits pour chaque séquence const sequencesAvecDates = await Promise.all( seqs.map(async (seq) => { diff --git a/todo.md b/todo.md index 57e1d6a..76c9aa1 100644 --- a/todo.md +++ b/todo.md @@ -309,3 +309,20 @@ - [x] Ajouter le champ formateur dans le formulaire "Nouvelle séquence" - [x] Modifier le placeholder du formateur : "Sélectionner un formateur" (déjà correct par défaut) - [x] Afficher le nom de la séquence ET le nom de la formation dans le calendrier + +## Vérification des trois corrections + +- [ ] Vérifier que le champ formateur apparaît bien dans le formulaire "Nouvelle séquence" +- [ ] Vérifier le texte du placeholder du formateur +- [ ] Vérifier que le nom de la séquence ET le nom de la formation apparaissent dans le calendrier +- [ ] Corriger les problèmes trouvés + +## Corrections affichage nom de formation dans calendrier + +- [x] Modifier getSequences() pour récupérer les informations de formation via jointure +- [x] Créer getSequencesWithFormation() pour éviter les conflits avec le spread operator +- [x] Mettre à jour la procédure sequences.list pour utiliser getSequencesWithFormation() +- [x] Corriger AdminCalendrier.tsx pour utiliser formation.nom au lieu de formation.titre +- [x] Vérifier que le placeholder du FormateurCombobox est correct (sans "(optionnel)") +- [x] Tester l'affichage du nom de formation dans le calendrier +- [x] Tester l'affichage du nom de formation dans le dialog de détails