Checkpoint: Corrections multiples sur les attestations : bug de modal bloquée corrigé, remplacement des variables dans l'email d'attestation fonctionnel, et type attestation ajouté au schéma de validation
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import { useState, useMemo } from "react";
|
||||
import { useState, useMemo, useEffect } from "react";
|
||||
import { trpc } from "@/lib/trpc";
|
||||
import DashboardLayout from "@/components/DashboardLayout";
|
||||
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card";
|
||||
@@ -34,6 +34,15 @@ function UploadAttestationDialog({
|
||||
tailleFichier: number;
|
||||
} | null>(null);
|
||||
|
||||
// Réinitialiser l'état quand la modal s'ouvre
|
||||
useEffect(() => {
|
||||
if (open) {
|
||||
setUploading(false);
|
||||
setUploadProgress(0);
|
||||
setFileData(null);
|
||||
}
|
||||
}, [open]);
|
||||
|
||||
const uploadMutation = trpc.gestionAttestations.uploadDocument.useMutation({
|
||||
onSuccess: () => {
|
||||
onSuccess();
|
||||
|
||||
@@ -1175,11 +1175,15 @@ export async function sendAttestationEmail(params: {
|
||||
|
||||
const template = templates[0];
|
||||
|
||||
// Remplacer les variables dans le template
|
||||
let content = template.bodyContent;
|
||||
content = content.replace(/{{prenomApprenant}}/g, params.apprenantPrenom);
|
||||
content = content.replace(/{{nomApprenant}}/g, params.apprenantNom);
|
||||
content = content.replace(/{{nomFormation}}/g, params.formationNom);
|
||||
// Préparer les variables pour le remplacement
|
||||
const variables = {
|
||||
prenomApprenant: params.apprenantPrenom,
|
||||
nomApprenant: params.apprenantNom,
|
||||
nomFormation: params.formationNom,
|
||||
};
|
||||
|
||||
// Le contenu sera remplacé par generateEmailFromTemplate
|
||||
const content = template.bodyContent;
|
||||
|
||||
// Récupérer le PDF (depuis URL ou chemin local)
|
||||
let pdfBuffer: Buffer;
|
||||
@@ -1211,7 +1215,7 @@ export async function sendAttestationEmail(params: {
|
||||
return sendEmail({
|
||||
to: params.to,
|
||||
subject: `Votre attestation de formation - ${params.formationNom}`,
|
||||
html: await getEmailTemplate(content, 'attestation'),
|
||||
html: await getEmailTemplate(content, 'attestation', variables),
|
||||
attachments: [{
|
||||
filename: `Attestation_${params.apprenantNom}_${params.apprenantPrenom}.pdf`,
|
||||
content: pdfBuffer.toString('base64'),
|
||||
|
||||
4
todo.md
4
todo.md
@@ -1466,3 +1466,7 @@
|
||||
- [x] Corriger le bug où le statut reste "envoyé" après la suppression d'une attestation
|
||||
|
||||
- [x] Corriger l'erreur de validation lors de la modification du template attestation
|
||||
|
||||
- [x] Corriger le remplacement des variables dans le template email d'attestation
|
||||
|
||||
- [x] Corriger le bug de la modal de chargement d'attestation qui reste bloquée sur l'état précédent
|
||||
|
||||
Reference in New Issue
Block a user