Checkpoint: Correction du remplacement des variables dans les emails de confirmation d'inscription

- 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
This commit is contained in:
Manus Sandbox
2025-12-01 03:51:18 -05:00
parent 1255124c3d
commit b30c68c110
3 changed files with 29 additions and 1 deletions

View File

@@ -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": "<p>Cher(e) {<strong>{prenomApprenant}} {{nomApprenant}},</strong></p><p>Nous avons le plaisir de vous informer que votre inscription à une formation Itinova : {{nomFormation}} le {{dateDebut}} a été confirmée avec succès.</p><p>Nous sommes ravis de vous accueillir et nous espérons que cette formation répondra à vos attentes.</p>"
}
],
"messages": [],
"stdout": "type\tname\tbodyContent\ninscription\tconfirmation\t<p>Cher(e) {<strong>{prenomApprenant}} {{nomApprenant}},</strong></p><p>Nous avons le plaisir de vous informer que votre inscription à une formation Itinova : {{nomFormation}} le {{dateDebut}} a été confirmée avec succès.</p><p>Nous sommes ravis de vous accueillir et nous espérons que cette formation répondra à vos attentes.</p>\n",
"stderr": "",
"execution_time_ms": 56
}

View File

@@ -122,7 +122,7 @@ export async function sendInscriptionConfirmation(params: {
contentType: 'text/calendar', contentType: 'text/calendar',
})) : undefined; })) : undefined;
// Préparer les variables pour le remplacement // Préparer les variables pour le remplacement (avec alias pour compatibilité)
const variables: EmailVariables = { const variables: EmailVariables = {
nomApprenant: params.apprenantNom, nomApprenant: params.apprenantNom,
prenomApprenant: params.apprenantPrenom, prenomApprenant: params.apprenantPrenom,
@@ -131,6 +131,11 @@ export async function sendInscriptionConfirmation(params: {
dateDebut: params.dates[0]?.dateDebut.toLocaleDateString('fr-FR') || '', dateDebut: params.dates[0]?.dateDebut.toLocaleDateString('fr-FR') || '',
dateFin: params.dates[params.dates.length - 1]?.dateFin.toLocaleDateString('fr-FR') || '', dateFin: params.dates[params.dates.length - 1]?.dateFin.toLocaleDateString('fr-FR') || '',
lieu: params.lieu, 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({ return sendEmail({

View File

@@ -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] 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] Appliquer un style sobre et professionnelt liens
- [x] Tester le rendu des templates personnalisés - [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