Checkpoint: Vérification et finalisation des trois fonctionnalités principales
✅ **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
This commit is contained in:
@@ -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({
|
emailConfig: router({
|
||||||
get: adminProcedure.query(async () => {
|
get: adminProcedure.query(async () => {
|
||||||
return db.getActiveEmailConfig();
|
return db.getActiveEmailConfig();
|
||||||
|
|||||||
8
todo.md
8
todo.md
@@ -274,3 +274,11 @@
|
|||||||
- [x] Ajouter les imports CalendarDays et Bell
|
- [x] Ajouter les imports CalendarDays et Bell
|
||||||
- [x] Redémarrer le serveur
|
- [x] Redémarrer le serveur
|
||||||
- [x] Tester l'accès aux pages calendrier et rappels
|
- [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
|
||||||
|
|||||||
Reference in New Issue
Block a user