Checkpoint: Améliorations de la gestion des attestations de formation :

- Ajout du paramètre d'envoi automatique des attestations dans la page Paramètres
- Ajout de la prévisualisation du modèle d'attestation avec génération PDF
- Création de la page Historique des attestations dans la section Traçabilité
- Création de la table historiqueAttestations pour tracer les envois
- Ajout des procédures tRPC pour l'historique et la prévisualisation
This commit is contained in:
Manus
2026-01-12 13:54:18 -05:00
parent 61f28781f0
commit ce64c72f00
13 changed files with 563 additions and 19 deletions

View File

@@ -1478,6 +1478,7 @@ export const appRouter = router({
delaiExpirationQR: z.number().int().positive().optional(),
dureeValiditeToken: z.number().int().positive().optional(),
notificationsActives: z.boolean().optional(),
envoiAutomatiqueAttestations: z.boolean().optional(),
}))
.mutation(async ({ input, ctx }) => {
const { updateParametres } = await import("./parametresDb");
@@ -2092,6 +2093,30 @@ export const appRouter = router({
await updateConfigAttestation(input);
return { success: true };
}),
// Récupérer l'historique des envois d'attestations
historique: adminProcedure
.query(async () => {
const { getHistoriqueAttestations } = await import("./attestationsDb");
return getHistoriqueAttestations();
}),
// Récupérer l'historique pour une séquence spécifique
historiqueBySequence: adminProcedure
.input(z.object({
sequenceId: z.number(),
}))
.query(async ({ input }) => {
const { getHistoriqueAttestationsBySequence } = await import("./attestationsDb");
return getHistoriqueAttestationsBySequence(input.sequenceId);
}),
// Générer une prévisualisation du modèle d'attestation
previsualiser: adminProcedure
.mutation(async () => {
const { genererPreviewAttestation } = await import("./attestationService");
return genererPreviewAttestation();
}),
}),
// ===== PRESENCES (ÉMARGEMENT NUMÉRIQUE) =====