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\tCher(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