Checkpoint: Amélioration de l'email de teaser avec affichage du formateur et du lieu :

Modifications apportées :
- Ajout des paramètres `lieu` et `formateur` à la fonction sendTeaserEmail
- Récupération du formateur depuis la base de données dans routers.ts via getFormateurById
- Affichage du lieu et du formateur dans le contenu HTML de l'email teaser
- Ajout de `lieu` et `formateur` dans les variables disponibles pour les templates personnalisés

Variables disponibles dans les templates d'emails :
- {{nomApprenant}} - Nom de l'apprenant
- {{prenomApprenant}} - Prénom de l'apprenant
- {{nomFormation}} - Nom de la formation
- {{nomSequence}} - Nom de la séquence
- {{dateDebut}} - Date de début formatée
- {{dateFin}} - Date de fin formatée
- {{lieu}} - Lieu de la formation
- {{formateur}} - Nom du formateur

L'email de teaser affiche maintenant toutes les informations importantes pour les apprenants.
This commit is contained in:
Manus Sandbox
2025-11-30 13:11:16 -05:00
parent fc6bf5ddcc
commit 9e1d574d2e
3 changed files with 25 additions and 0 deletions

View File

@@ -154,6 +154,8 @@ export async function sendTeaserEmail(params: {
formationNom: string;
sequenceNom: string;
dates: Array<{ dateDebut: Date; dateFin: Date; ordre: number }>;
lieu?: string;
formateur?: string;
}): Promise<boolean> {
const fonctionLabel = params.apprenantFonction === 'directeur' ? 'Directeur' :
params.apprenantFonction === 'chef_service' ? 'Chef de service' : '';
@@ -180,6 +182,8 @@ export async function sendTeaserEmail(params: {
<p><strong>Séquence :</strong> ${params.sequenceNom}</p>
<h4>Dates :</h4>
${datesHTML}
${params.lieu ? `<p><strong>Lieu :</strong> ${params.lieu}</p>` : ''}
${params.formateur ? `<p><strong>Formateur :</strong> ${params.formateur}</p>` : ''}
</div>
<p>Préparez-vous à vivre une expérience enrichissante qui vous permettra de développer vos compétences managériales.</p>
@@ -194,6 +198,8 @@ export async function sendTeaserEmail(params: {
nomSequence: params.sequenceNom,
dateDebut: params.dates[0]?.dateDebut.toLocaleDateString('fr-FR') || '',
dateFin: params.dates[params.dates.length - 1]?.dateFin.toLocaleDateString('fr-FR') || '',
lieu: params.lieu || '',
formateur: params.formateur || '',
};
return sendEmail({
@@ -282,6 +288,7 @@ export async function sendGroupEmail(params: {
type: 'teaser' | 'rappel';
dates: Array<{ dateDebut: Date; dateFin: Date; ordre: number }>;
lieu?: string;
formateur?: string;
}): Promise<{ sent: number; failed: number }> {
let sent = 0;
let failed = 0;
@@ -297,6 +304,8 @@ export async function sendGroupEmail(params: {
formationNom: params.formationNom,
sequenceNom: params.sequenceNom,
dates: params.dates,
lieu: params.lieu,
formateur: params.formateur,
});
} else {
await sendRappelJ7Email({