Checkpoint: Implémentation du QR code dédié pour l'émargement formateur avec signature tactile

- Création de la page /emargement-formateur/:token avec formulaire simplifié
- Procédure backend presences.validerFormateur dédiée
- Deux boutons QR code dans l'interface formateur (apprenants + formateur)
- Génération automatique des URL distinctes pour chaque type d'utilisateur
- Déploiement réussi sur le VPS de production
This commit is contained in:
Manus
2026-02-02 15:11:18 -05:00
parent f9983adada
commit 04001e7bcd
11 changed files with 1043 additions and 321 deletions

View File

@@ -38,6 +38,35 @@ export async function generateQRCodeDataURL(token: string): Promise<string> {
}
}
/**
* Générer un QR code formateur en base64 à partir d'un token
* @param token Le token unique de la séquence
* @returns Une image QR code en base64 (data URL) pour l'émargement formateur
*/
export async function generateQRCodeFormateurDataURL(token: string): Promise<string> {
// URL complète pour scanner le QR code formateur
const parametres = await getParametres();
const url = `${parametres.urlPublique}/emargement-formateur/${token}`;
try {
const qrCodeDataURL = await QRCode.toDataURL(url, {
errorCorrectionLevel: "H",
type: "image/png",
width: 400,
margin: 2,
color: {
dark: "#000000",
light: "#FFFFFF",
},
});
return qrCodeDataURL;
} catch (error) {
console.error("Erreur lors de la génération du QR code formateur:", error);
throw new Error("Impossible de générer le QR code formateur");
}
}
/**
* Générer un QR code en buffer PNG
* @param token Le token unique de la séquence