diff --git a/.manus/db/db-query-1765380423147.json b/.manus/db/db-query-1765380423147.json new file mode 100644 index 0000000..544cc99 --- /dev/null +++ b/.manus/db/db-query-1765380423147.json @@ -0,0 +1,30 @@ +{ + "query": "SELECT s.id, s.nom, COUNT(i.id) as nb_inscrits FROM sequences s LEFT JOIN inscriptions i ON s.id = i.sequenceId AND i.statut = 'confirmee' GROUP BY s.id, s.nom HAVING nb_inscrits > 0 LIMIT 5", + "command": "mysql --batch --raw --column-names --default-character-set=utf8mb4 --host gateway02.us-east-1.prod.aws.tidbcloud.com --port 4000 --user 4CrrYuB5tme73Qo.root --database 7PAT67UmWoxv8vwp8Bbcv6 --execute SELECT s.id, s.nom, COUNT(i.id) as nb_inscrits FROM sequences s LEFT JOIN inscriptions i ON s.id = i.sequenceId AND i.statut = 'confirmee' GROUP BY s.id, s.nom HAVING nb_inscrits > 0 LIMIT 5", + "rows": [ + { + "id": "30001", + "nom": "Groupe A", + "nb_inscrits": "3" + }, + { + "id": "150001", + "nom": "Groupe 1", + "nb_inscrits": "1" + }, + { + "id": "60001", + "nom": "Groupe C", + "nb_inscrits": "4" + }, + { + "id": "330001", + "nom": "test 3", + "nb_inscrits": "3" + } + ], + "messages": [], + "stdout": "id\tnom\tnb_inscrits\n30001\tGroupe A\t3\n150001\tGroupe 1\t1\n60001\tGroupe C\t4\n330001\ttest 3\t3\n", + "stderr": "", + "execution_time_ms": 128 +} \ No newline at end of file diff --git a/.manus/db/db-query-1765380439374.json b/.manus/db/db-query-1765380439374.json new file mode 100644 index 0000000..30b1a39 --- /dev/null +++ b/.manus/db/db-query-1765380439374.json @@ -0,0 +1,14 @@ +{ + "query": "SELECT s.id, s.nom FROM sequences s WHERE EXISTS (SELECT 1 FROM inscriptions i WHERE i.sequenceId = s.id AND i.statut = 'confirmee') LIMIT 1", + "command": "mysql --batch --raw --column-names --default-character-set=utf8mb4 --host gateway02.us-east-1.prod.aws.tidbcloud.com --port 4000 --user 4CrrYuB5tme73Qo.root --database 7PAT67UmWoxv8vwp8Bbcv6 --execute SELECT s.id, s.nom FROM sequences s WHERE EXISTS (SELECT 1 FROM inscriptions i WHERE i.sequenceId = s.id AND i.statut = 'confirmee') LIMIT 1", + "rows": [ + { + "id": "30001", + "nom": "Groupe A" + } + ], + "messages": [], + "stdout": "id\tnom\n30001\tGroupe A\n", + "stderr": "", + "execution_time_ms": 52 +} \ No newline at end of file diff --git a/client/src/pages/AdminSequenceInscrits.tsx b/client/src/pages/AdminSequenceInscrits.tsx index e5de46b..1b60a75 100644 --- a/client/src/pages/AdminSequenceInscrits.tsx +++ b/client/src/pages/AdminSequenceInscrits.tsx @@ -63,6 +63,8 @@ export default function AdminSequenceInscrits() { const updateStatutMutation = trpc.inscriptions.updateStatut.useMutation({ onSuccess: () => { utils.inscriptions.listBySequence.invalidate({ sequenceId }); + utils.sequences.getById.invalidate({ id: sequenceId }); + utils.sequences.list.invalidate(); toast.success("Statut mis à jour avec succès"); }, onError: (error) => { diff --git a/server/routers.ts b/server/routers.ts index 83392b6..2db0881 100644 --- a/server/routers.ts +++ b/server/routers.ts @@ -278,7 +278,8 @@ export const appRouter = router({ const seq = await db.getSequenceById(input.id); if (!seq) return null; const dates = await db.getDatesBySequence(input.id); - return { ...seq, dates }; + const nbInscrits = await db.countInscriptionsBySequence(input.id, 'confirmee'); + return { ...seq, dates, nbInscrits }; }), create: adminProcedure.input(z.object({ diff --git a/todo.md b/todo.md index 0d17840..b6f79d7 100644 --- a/todo.md +++ b/todo.md @@ -412,3 +412,9 @@ - [x] Modifier l'initialisation pour ouvrir uniquement TABLEAU DE BORD par défaut - [x] Fermer GESTION, CONFIGURATION, ANALYSES par défaut - [x] Tester le comportement à l'ouverture + +## Bug compteur d'inscrits après suppression +- [x] Analyser le code de suppression d'inscription +- [x] Identifier pourquoi le compteur ne se met pas à jour +- [x] Corriger le bug de rafraîchissement du compteur +- [x] Tester la suppression d'un apprenant et vérifier le compteur