Checkpoint: Correction de la désactivation intempestive des rappels : les dates ne sont plus supprimées/recréées lors de la modification du formateur, seulement lors d'un réel changement de dates

This commit is contained in:
Manus
2026-01-25 07:33:23 -05:00
parent 54adfa346b
commit 3764fde6fe
2 changed files with 41 additions and 12 deletions

View File

@@ -532,21 +532,43 @@ export const appRouter = router({
await db.updateSequence(id, updateData); await db.updateSequence(id, updateData);
console.log('[UPDATE SEQUENCE] Séquence mise à jour avec succès'); console.log('[UPDATE SEQUENCE] Séquence mise à jour avec succès');
// Supprimer les anciennes dates // Récupérer les dates existantes
await db.deleteDatesBySequence(id); const existingDates = await db.getDatesBySequence(id);
console.log('[UPDATE SEQUENCE] Anciennes dates supprimées'); console.log('[UPDATE SEQUENCE] Dates existantes:', existingDates.length);
// Créer les nouvelles dates // Comparer les dates pour détecter les changements
for (const date of dates) { const datesChanged = existingDates.length !== dates.length ||
console.log('[UPDATE SEQUENCE] Création date:', date); existingDates.some((existing, index) => {
await db.createDateFormation({ const newDate = dates[index];
sequenceId: id, if (!newDate) return true;
dateDebut: parseLocalDateTime(date.dateDebut), const existingDebut = new Date(existing.dateDebut).toISOString();
dateFin: parseLocalDateTime(date.dateFin), const existingFin = new Date(existing.dateFin).toISOString();
ordre: date.ordre, const newDebut = parseLocalDateTime(newDate.dateDebut).toISOString();
const newFin = parseLocalDateTime(newDate.dateFin).toISOString();
return existingDebut !== newDebut || existingFin !== newFin;
}); });
// Ne supprimer/recréer les dates que si elles ont changé
if (datesChanged) {
console.log('[UPDATE SEQUENCE] Dates modifiées, suppression et recréation');
// Supprimer les anciennes dates
await db.deleteDatesBySequence(id);
console.log('[UPDATE SEQUENCE] Anciennes dates supprimées');
// Créer les nouvelles dates
for (const date of dates) {
console.log('[UPDATE SEQUENCE] Création date:', date);
await db.createDateFormation({
sequenceId: id,
dateDebut: parseLocalDateTime(date.dateDebut),
dateFin: parseLocalDateTime(date.dateFin),
ordre: date.ordre,
});
}
console.log('[UPDATE SEQUENCE] Toutes les dates ont été créées');
} else {
console.log('[UPDATE SEQUENCE] Dates inchangées, conservation des rappels');
} }
console.log('[UPDATE SEQUENCE] Toutes les dates ont été créées');
return { success: true }; return { success: true };
}), }),

View File

@@ -1227,4 +1227,11 @@
- [x] Proposer une solution pour synchroniser ou clarifier l'usage - [x] Proposer une solution pour synchroniser ou clarifier l'usage
- [x] Implémenter la solution (auto-création dans createUser et updateUser) - [x] Implémenter la solution (auto-création dans createUser et updateUser)
- [x] Créer un script de migration pour les formateurs existants - [x] Créer un script de migration pour les formateurs existants
- [x] Déployer sur le VPS et exécuter la migration
## Corriger la désactivation des rappels lors du changement de formateur
- [x] Identifier le code de modification de séquence qui désactive les rappels
- [x] Corriger pour ne désactiver que lors de changement de dates
- [ ] Tester la modification
- [ ] Déployer sur le VPS - [ ] Déployer sur le VPS