Checkpoint: Correction du bug où le compteur d'inscrits ne se mettait pas à jour après la suppression d'un apprenant d'une séquence. Modifications : 1) Ajout du calcul de nbInscrits dans la procédure sequences.getById (server/routers.ts ligne 281), 2) Ajout de l'invalidation des requêtes sequences.getById et sequences.list après la mise à jour du statut d'inscription (client/src/pages/AdminSequenceInscrits.tsx lignes 66-67). Le compteur affiche maintenant correctement le nombre d'inscrits confirmés en temps réel.

This commit is contained in:
Manus Sandbox
2025-12-10 10:28:25 -05:00
parent 8640c17b3b
commit 323c83ff06
5 changed files with 54 additions and 1 deletions

View File

@@ -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
}

View File

@@ -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
}

View File

@@ -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) => {

View File

@@ -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({

View File

@@ -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