Checkpoint: Correction du bug de modification des horaires des séquences. Le problème venait du fait que les champs de la procédure update étaient marqués comme optionnels, ce qui empêchait la mise à jour correcte des dates. Tous les champs sont maintenant obligatoires et les dates sont systématiquement supprimées puis recréées lors de la modification pour garantir la cohérence des données.

This commit is contained in:
Manus Sandbox
2025-11-12 10:25:13 -05:00
parent b60250e265
commit 12bfc657e5
2 changed files with 24 additions and 25 deletions

View File

@@ -188,42 +188,39 @@ export const appRouter = router({
update: adminProcedure.input(z.object({ update: adminProcedure.input(z.object({
id: z.number(), id: z.number(),
formationId: z.number().optional(), formationId: z.number(),
nom: z.string().min(1).optional(), nom: z.string().min(1),
lieu: z.string().min(1).optional(), lieu: z.string().min(1),
capaciteMax: z.number().optional(), capaciteMax: z.number(),
dateBlocage: z.string().optional(), dateBlocage: z.string(),
statut: z.enum(["ouverte", "bloquee", "terminee"]).optional(), statut: z.enum(["ouverte", "bloquee", "terminee"]),
dates: z.array(z.object({ dates: z.array(z.object({
dateDebut: z.string(), dateDebut: z.string(),
dateFin: z.string(), dateFin: z.string(),
ordre: z.number(), ordre: z.number(),
})).min(1).max(4).optional(), })).min(1).max(4),
})).mutation(async ({ input }) => { })).mutation(async ({ input }) => {
const { id, dates, ...sequenceData } = input; const { id, dates, ...sequenceData } = input;
// Mettre à jour la séquence // Mettre à jour la séquence
const updateData: any = { ...sequenceData }; const updateData: any = {
if (sequenceData.dateBlocage) { ...sequenceData,
updateData.dateBlocage = new Date(sequenceData.dateBlocage); dateBlocage: new Date(sequenceData.dateBlocage),
} };
await db.updateSequence(id, updateData); await db.updateSequence(id, updateData);
// Si des dates sont fournies, les mettre à jour // Supprimer les anciennes dates
if (dates) { await db.deleteDatesBySequence(id);
// Supprimer les anciennes dates
await db.deleteDatesBySequence(id); // Créer les nouvelles dates
for (const date of dates) {
// Créer les nouvelles dates await db.createDateFormation({
for (const date of dates) { sequenceId: id,
await db.createDateFormation({ dateDebut: new Date(date.dateDebut),
sequenceId: id, dateFin: new Date(date.dateFin),
dateDebut: new Date(date.dateDebut), ordre: date.ordre,
dateFin: new Date(date.dateFin), });
ordre: date.ordre,
});
}
} }
return { success: true }; return { success: true };

View File

@@ -100,3 +100,5 @@
## Corrections urgentes ## Corrections urgentes
- [x] Corriger l'erreur React "Cannot update a component while rendering" dans Home.tsx - [x] Corriger l'erreur React "Cannot update a component while rendering" dans Home.tsx
- [x] Corriger le bug de modification des horaires des séquences