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:
@@ -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
|
// Créer les nouvelles dates
|
||||||
for (const date of dates) {
|
for (const date of dates) {
|
||||||
await db.createDateFormation({
|
await db.createDateFormation({
|
||||||
sequenceId: id,
|
sequenceId: id,
|
||||||
dateDebut: new Date(date.dateDebut),
|
dateDebut: new Date(date.dateDebut),
|
||||||
dateFin: new Date(date.dateFin),
|
dateFin: new Date(date.dateFin),
|
||||||
ordre: date.ordre,
|
ordre: date.ordre,
|
||||||
});
|
});
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return { success: true };
|
return { success: true };
|
||||||
|
|||||||
2
todo.md
2
todo.md
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user