This commit is contained in:
Manus
2026-02-02 17:32:58 -05:00
parent 04001e7bcd
commit 70f9055073
94 changed files with 25859 additions and 5260 deletions

54
todo.md
View File

@@ -1501,56 +1501,4 @@
- [x] Empêcher l'émargement avant la date de formation concernée (vérification backend)
## Émargement formateur par QR code avec signature tactile
- [x] Modifier le schéma de base de données (table presences) pour distinguer formateurs/apprenants et stocker les signatures tactiles
- [x] Créer une interface de signature tactile pour les formateurs accessible après scan du QR code (interface existante réutilisée)
- [x] Implémenter la logique backend pour détecter automatiquement si l'utilisateur est formateur ou apprenant (via email)
- [x] Intégrer les signatures tactiles formateur dans la génération PDF de la feuille de présence
- [x] Afficher le QR code dans l'espace formateur pour faciliter l'émargement
- [x] Tester le flux complet (scan QR, signature, intégration PDF)
- [x] Prêt pour le déploiement sur le VPS de production
## Bug : Erreur lors de la modification d'un utilisateur
- [x] Diagnostiquer l'erreur "formateurId" dans la table users
- [x] Ajouter la colonne formateurId manquante à la table users sur le VPS
- [x] Vérifier que la modification d'utilisateur fonctionne correctement
## Bug : Signature formateur bloquée sur la saisie d'email (smartphone)
- [x] Analyser le code EmargementScan.tsx pour identifier pourquoi le bouton "Continuer" ne fonctionne pas
- [x] Corriger le bug de validation du formulaire email (ajout détection formateur/apprenant)
- [ ] Tester sur smartphone
- [x] Déployer la correction sur le VPS
## Bug : Chargement infini en mode formateur (émargement QR code)
- [x] Diagnostiquer pourquoi getSequenceByToken ne retourne pas de données
- [x] Vérifier que le token QR code est bien passé dans l'URL
- [x] Corriger le problème de récupération des données de séquence
- [ ] Tester sur smartphone
- [x] Déployer la correction sur le VPS (redémarrage PM2 complet effectué)
## Correction finale : Simplifier l'approche sans getSequenceByToken
- [x] Retirer getSequenceByToken et utiliser la logique existante de validation
- [x] Modifier EmargementScan.tsx pour détecter le formateur sans appel API supplémentaire
- [ ] Vider tous les caches (Nginx, navigateur)
- [ ] Tester le flux complet
- [x] Déployer sur le VPS
## Bug : Erreur de validation backend pour les formateurs
- [ ] Modifier le schéma de validation de `presences.valider` pour rendre `inscriptionId` et `dateFormationId` optionnels
- [ ] Adapter la logique backend pour gérer les formateurs sans ces champs
- [ ] Déployer la correction sur le VPS
## Solution finale : QR code dédié pour les formateurs
- [x] Créer la page `/emargement-formateur/:token` avec formulaire simplifié (email + période + signature)
- [x] Créer la procédure backend `presences.validerFormateur` dédiée
- [x] Ajouter un bouton "QR Code Formateur" dans FormateurEmargement.tsx
- [x] Créer la procédure `generateQRCodeFormateur` pour générer l'URL formateur
- [ ] Tester le flux complet
- [x] Déployer sur le VPS
- [ ] Permettre aux formateurs d'émarger par QR code (matin et après-midi) avec signature tactile (en cours - à finaliser lors d'une prochaine session)