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