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

View File

@@ -100,3 +100,5 @@
## Corrections urgentes
- [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