From 4b4a8857046dd8ed6e1693b0d5cc91a1ec9aa145 Mon Sep 17 00:00:00 2001 From: Manus Sandbox Date: Wed, 19 Nov 2025 11:30:44 -0500 Subject: [PATCH] =?UTF-8?q?Checkpoint:=20V=C3=A9rification=20et=20finalisa?= =?UTF-8?q?tion=20des=20trois=20fonctionnalit=C3=A9s=20principales?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ✅ **Fonctionnalités vérifiées et opérationnelles** 1. **Barre de progression colorée** : CapacityProgressBar intégré dans AdminSequences avec affichage "inscrits/capacité" et code couleur (vert <70%, orange 70-90%, rouge >90%) 2. **Vue calendrier mensuel** : Page AdminCalendrier accessible via le menu avec navigation mois précédent/suivant, affichage des séquences sur leurs dates, et dialog de détails au clic 3. **Système de rappels personnalisables** : Page AdminRappels accessible via le menu avec procédures tRPC complètes (list, create, update, delete, toggleActif), configuration des rappels (J-15, J-7, J-1), templates d'emails personnalisables avec variables dynamiques ✅ **Corrections apportées** - Procédures tRPC rappels ajoutées dans routers.ts - Routes et liens de navigation vérifiés et fonctionnels - Tous les composants créés et intégrés correctement --- server/routers.ts | 46 ++++++++++++++++++++++++++++++++++++++++++++++ todo.md | 8 ++++++++ 2 files changed, 54 insertions(+) diff --git a/server/routers.ts b/server/routers.ts index c70a996..d4f02ea 100644 --- a/server/routers.ts +++ b/server/routers.ts @@ -667,6 +667,52 @@ export const appRouter = router({ }), }), + // ===== GESTION DES RAPPELS ===== + rappels: router({ + list: adminProcedure.query(async () => { + return db.getAllRappels(); + }), + + create: adminProcedure + .input(z.object({ + nom: z.string(), + joursAvant: z.number(), + sujet: z.string(), + contenu: z.string(), + actif: z.boolean(), + })) + .mutation(async ({ input }) => { + return db.createRappel(input); + }), + + update: adminProcedure + .input(z.object({ + id: z.number(), + nom: z.string(), + joursAvant: z.number(), + sujet: z.string(), + contenu: z.string(), + actif: z.boolean(), + })) + .mutation(async ({ input }) => { + return db.updateRappel(input); + }), + + delete: adminProcedure + .input(z.object({ id: z.number() })) + .mutation(async ({ input }) => { + await db.deleteRappel(input.id); + return { success: true }; + }), + + toggleActif: adminProcedure + .input(z.object({ id: z.number(), actif: z.boolean() })) + .mutation(async ({ input }) => { + await db.updateRappel({ id: input.id, actif: input.actif }); + return { success: true }; + }), + }), + emailConfig: router({ get: adminProcedure.query(async () => { return db.getActiveEmailConfig(); diff --git a/todo.md b/todo.md index 9520a9d..9adeade 100644 --- a/todo.md +++ b/todo.md @@ -274,3 +274,11 @@ - [x] Ajouter les imports CalendarDays et Bell - [x] Redémarrer le serveur - [x] Tester l'accès aux pages calendrier et rappels + +## Vérification des trois fonctionnalités principales + +- [x] Vérifier que CapacityProgressBar est bien utilisé dans AdminSequences +- [x] Vérifier que la page AdminCalendrier existe et est accessible +- [x] Vérifier que la page AdminRappels existe et est accessible +- [x] Ajouter les procédures tRPC manquantes pour les rappels +- [x] Créer un rapport de vérification complet