From b30c68c1101a740a8deedbcb60a163cca402bba8 Mon Sep 17 00:00:00 2001 From: Manus Sandbox Date: Mon, 1 Dec 2025 03:51:18 -0500 Subject: [PATCH] Checkpoint: Correction du remplacement des variables dans les emails de confirmation d'inscription MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Ajout d'alias de variables pour supporter les deux formats : {{prenom}} et {{prenomApprenant}} - Les templates peuvent maintenant utiliser indifféremment les noms courts (prenom, nom, formation, sequence) ou les noms longs (prenomApprenant, nomApprenant, nomFormation, nomSequence) - Correction appliquée dans sendInscriptionConfirmation --- .manus/db/db-query-1764578676326.json | 15 +++++++++++++++ server/emailService.ts | 7 ++++++- todo.md | 8 ++++++++ 3 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 .manus/db/db-query-1764578676326.json diff --git a/.manus/db/db-query-1764578676326.json b/.manus/db/db-query-1764578676326.json new file mode 100644 index 0000000..4553be9 --- /dev/null +++ b/.manus/db/db-query-1764578676326.json @@ -0,0 +1,15 @@ +{ + "query": "SELECT type, name, bodyContent FROM emailTemplates WHERE type = 'inscription'", + "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 type, name, bodyContent FROM emailTemplates WHERE type = 'inscription'", + "rows": [ + { + "type": "inscription", + "name": "confirmation", + "bodyContent": "

Cher(e) {{prenomApprenant}} {{nomApprenant}},

Nous avons le plaisir de vous informer que votre inscription à une formation Itinova : {{nomFormation}} le {{dateDebut}} a été confirmée avec succès.

Nous sommes ravis de vous accueillir et nous espérons que cette formation répondra à vos attentes.

" + } + ], + "messages": [], + "stdout": "type\tname\tbodyContent\ninscription\tconfirmation\t

Cher(e) {{prenomApprenant}} {{nomApprenant}},

Nous avons le plaisir de vous informer que votre inscription à une formation Itinova : {{nomFormation}} le {{dateDebut}} a été confirmée avec succès.

Nous sommes ravis de vous accueillir et nous espérons que cette formation répondra à vos attentes.

\n", + "stderr": "", + "execution_time_ms": 56 +} \ No newline at end of file diff --git a/server/emailService.ts b/server/emailService.ts index 7b558fc..8fbb42c 100644 --- a/server/emailService.ts +++ b/server/emailService.ts @@ -122,7 +122,7 @@ export async function sendInscriptionConfirmation(params: { contentType: 'text/calendar', })) : undefined; - // Préparer les variables pour le remplacement + // Préparer les variables pour le remplacement (avec alias pour compatibilité) const variables: EmailVariables = { nomApprenant: params.apprenantNom, prenomApprenant: params.apprenantPrenom, @@ -131,6 +131,11 @@ export async function sendInscriptionConfirmation(params: { dateDebut: params.dates[0]?.dateDebut.toLocaleDateString('fr-FR') || '', dateFin: params.dates[params.dates.length - 1]?.dateFin.toLocaleDateString('fr-FR') || '', lieu: params.lieu, + // Alias pour compatibilité avec les templates utilisant les noms courts + nom: params.apprenantNom, + prenom: params.apprenantPrenom, + formation: params.formationNom, + sequence: params.sequenceNom, }; return sendEmail({ diff --git a/todo.md b/todo.md index 9d173fe..6299416 100644 --- a/todo.md +++ b/todo.md @@ -917,3 +917,11 @@ - [x] Ajuster les couleurs de l'en-tête selon la charte graphique Itinova (Bleu #283581, Bleu clair #0578BE, Orange #E94E1B, Vert #45ac34) - [x] Appliquer un style sobre et professionnelt liens - [x] Tester le rendu des templates personnalisés + +## Bug Email Confirmation - Variables non remplacées + +- [x] Analyser la fonction d'envoi d'email de confirmation d'inscription +- [x] Identifier pourquoi {{prenom}} et autres variables ne sont pas remplacées +- [x] Corriger le remplacement des variables (ajout d'alias pour compatibilité) +- [x] Corriger le code pour supporter les deux formats de variables ({{prenom}} et {{prenomApprenant}}) +- [ ] Tester l'envoi d'un email de confirmation en production