diff --git a/server/presenceDb.ts b/server/presenceDb.ts index f990238..d952acd 100644 --- a/server/presenceDb.ts +++ b/server/presenceDb.ts @@ -68,6 +68,9 @@ export async function getPresencesBySequence(sequenceId: number) { modeValidation: presences.modeValidation, validateurId: presences.validateurId, commentaire: presences.commentaire, + signatureUrl: sql`${presences}.signatureUrl`, + signatureS3Key: sql`${presences}.signatureS3Key`, + dateSigned: sql`${presences}.dateSigned`, apprenantId: apprenants.id, apprenantNom: apprenants.nom, apprenantPrenom: apprenants.prenom, @@ -100,9 +103,9 @@ export async function getPresencesByInscription(inscriptionId: number) { modeValidation: presences.modeValidation, validateurId: presences.validateurId, commentaire: presences.commentaire, - signatureUrl: presences.signatureUrl, - signatureS3Key: presences.signatureS3Key, - dateSigned: presences.dateSigned, + signatureUrl: sql`${presences}.signatureUrl`, + signatureS3Key: sql`${presences}.signatureS3Key`, + dateSigned: sql`${presences}.dateSigned`, dateDebut: datesFormation.dateDebut, dateFin: datesFormation.dateFin, }) diff --git a/server/routers.ts b/server/routers.ts index 9fc311a..4ce3715 100644 --- a/server/routers.ts +++ b/server/routers.ts @@ -2603,7 +2603,7 @@ export const appRouter = router({ })) .query(async ({ input }) => { const { getPresencesBySequence } = await import("./presenceDb"); - return getPresencesBySequence(input.sequenceId); + return await getPresencesBySequence(input.sequenceId); }), // Lister les présences pour une inscription diff --git a/todo.md b/todo.md index f544765..49e4264 100644 --- a/todo.md +++ b/todo.md @@ -1290,7 +1290,7 @@ - [x] Corriger la page vide lors de l'émargement via QR code sur smartphone - [x] Ajouter confirmation visuelle après émargement réussi (animation + heure) - [x] Implémenter signature manuscrite sur smartphone pour attestations (annulé - changement de besoin) -- [ ] Implémenter signature manuscrite tactile pour émargement via QR code +- [x] Implémenter signature manuscrite tactile pour émargement via QR code ## Signature tactile pour émargement via QR code @@ -1298,8 +1298,13 @@ - [x] Ajouter les champs de signature dans la table presences (signatureUrl, signatureS3Key, dateSigned) - [x] Intégrer SignaturePad dans EmargementScan.tsx - [x] Modifier presences.valider pour accepter signatureDataUrl -- [x] Uploader la signature en S3 lors de la validation -- [x] Stocker l'URL et la clé S3 dans la base de données +- [x] Uploader la signature en stockage local lors de la validation (S3 abandonné pour DNS) +- [x] Stocker l'URL dans la base de données +- [x] Afficher les informations de signature dans l'émargement formateur +- [x] Ajouter une modale pour visualiser les signatures en grand format +- [x] Corriger le problème Drizzle ORM avec sql.raw pour les colonnes de signature +- [x] Déployer sur le VPS (formations.itinova.org) +- [x] Retirer les logs de debug - [ ] Intégrer les signatures dans la feuille de présence PDF (optionnel) - [ ] Tester le flux complet sur smartphone - [ ] Déployer sur le VPS @@ -1319,3 +1324,22 @@ - [ ] Ajouter une modale pour visualiser la signature en grand format - [ ] Tester l'affichage sur smartphone - [ ] Déployer sur le VPS + +## BUG: Signatures non enregistrées lors de la validation + +- [x] Vérifier les logs serveur lors de la validation avec signature +- [x] Vérifier le code d'upload de signature dans routers.ts +- [x] Vérifier que signatureUrl et signatureS3Key sont bien enregistrés en base +- [x] Corriger le problème (ajouter les champs dans getPresencesBySequence) +- [x] Déployer sur VPS +- [ ] Tester l'affichage des icônes + +## BUG CRITIQUE: Informations de validation disparues à nouveau + +- [x] Vérifier les logs navigateur pour erreurs JavaScript +- [x] Vérifier si l'API retourne bien les données +- [x] Comparer le code actuel avec la version qui fonctionnait +- [x] Corriger de manière définitive et robuste +- [x] Tester localement avant déploiement (fonctionne en local) +- [x] Déployer sur VPS (rebuild complet effectué) +- [ ] Tester sur VPS après rebuild