Commit Graph

  • 63e8ea17d1 Checkpoint: Modification de l'affichage de la gestion des attestations pour regrouper les apprenants par séquence: - Ajout d'en-têtes visuels pour chaque séquence avec nom et compteur d'apprenants - Badge affichant le nombre d'attestations envoyées par séquence - Amélioration de l'organisation et de la lisibilité pour les formateurs - Suppression de la colonne "Séquence" devenue redondante Manus 2026-01-25 08:50:50 -05:00
  • 964b83d4d1 Checkpoint: Correction de l'accès à la liste des apprenants dans la gestion des attestations pour les formateurs: - Remplacement de adminProcedure par protectedProcedure pour getApprenantsWithStatus - Les formateurs peuvent maintenant voir la liste des apprenants et gérer les attestations Manus 2026-01-25 08:40:38 -05:00
  • 3e14adcf70 Checkpoint: Implémentation de l'émargement numérique avec deux signatures par jour (matin et après-midi): - Ajout du champ 'periode' dans la table presences - Modification des procédures backend pour gérer les deux périodes - Mise à jour de l'interface EmargementScan avec choix de période - Mise à jour de l'interface FormateurEmargement avec validation séparée matin/après-midi - La feuille de présence PDF était déjà configurée avec deux colonnes Manus 2026-01-25 08:26:42 -05:00
  • 1460b41f2d Checkpoint: Colorisation des boutons d'actions de la fenêtre "Inscrits à la séquence" avec des couleurs pastel et animations au survol Manus 2026-01-25 08:12:39 -05:00
  • 9762cac6d3 Checkpoint: Mise à jour du tableau de bord formateur avec le même design moderne que le tableau de bord admin : cartes colorées avec dégradés, animations au survol, et redirection automatique des formateurs Manus 2026-01-25 07:57:25 -05:00
  • 3764fde6fe Checkpoint: Correction de la désactivation intempestive des rappels : les dates ne sont plus supprimées/recréées lors de la modification du formateur, seulement lors d'un réel changement de dates Manus 2026-01-25 07:33:23 -05:00
  • 54adfa346b Checkpoint: Implémentation de la synchronisation automatique entre table users (role=formateur) et table formateurs : auto-création dans createUser/updateUser + script de migration pour les formateurs existants Manus 2026-01-25 07:25:49 -05:00
  • eb111099c6 Checkpoint: Masquer le menu "Gestion technique" pour les formateurs en ajoutant cette section à la liste des menus filtrés dans DashboardLayout Manus 2026-01-25 07:11:03 -05:00
  • a541fd3ff1 Checkpoint: Corriger l'accès des formateurs à la liste des inscrits : remplacement de adminProcedure par protectedProcedure pour la procédure listBySequence afin que les formateurs puissent voir les inscrits dans le détail des séquences Manus 2026-01-25 05:39:26 -05:00
  • 60aeee71c7 Checkpoint: Autoriser les formateurs à accéder aux exports PDF/Excel et aux feuilles de présence : remplacement de adminProcedure par protectedProcedure pour les trois procédures exportExcel, exportPDF et exportFeuillePresence Manus 2026-01-25 05:28:18 -05:00
  • 3c6f3eb741 Checkpoint: Restreindre les droits des formateurs : masquer les boutons de création/modification/suppression des apprenants pour les formateurs (seuls les administrateurs peuvent les voir) Manus 2026-01-23 11:49:46 -05:00
  • 953677467a Checkpoint: Restreindre les droits des formateurs : masquer les boutons de création/modification/suppression des formations et séquences pour les formateurs (seuls les administrateurs peuvent les voir) Manus 2026-01-23 11:42:31 -05:00
  • 5d40b5be96 Checkpoint: Ajout validation frontend temps réel + backend pour dates séquences (date fin > date début). Indicateur visuel (bordure rouge + message erreur) dans formulaires création/édition. Validation backend dans procédures create/update. Correction structure table logsrappels. Amélioration système test rappels (badge compteur, désactivation visuelle, boîte dialogue avec email + progression). Manus 2026-01-23 10:09:17 -05:00
  • 95245b38e8 Checkpoint: Ajout d'une validation backend dans les procédures create et update des séquences pour garantir que la date de fin soit toujours après la date de début pour toutes les dates de formation. Cela empêche la création de fichiers ICS invalides. Manus 2026-01-23 08:57:41 -05:00
  • 437ea58959 Checkpoint: 🎉 Système de test de rappels amélioré - Version finale Manus 2026-01-22 11:01:33 -05:00
  • 71678af959 Checkpoint: Amélioration visuelle du bouton de test de rappels - Ajout d'un badge de compteur indiquant le nombre de rappels actifs (ex: "1") - Désactivation visuelle du bouton pour les séquences sans rappels actifs (icône grisée) - Tooltip informatif adapté selon le contexte (nombre de rappels ou message d'erreur) - Amélioration de l'expérience utilisateur avec feedback visuel clair Manus 2026-01-22 10:32:58 -05:00
  • a20ad09d7c Checkpoint: Correction de l'erreur "Aucun rappel actif configuré pour cette séquence" - Retrait de la validation frontend complexe qui ne fonctionnait pas correctement - Le backend gère maintenant l'erreur et affiche un message clair via toast - L'utilisateur reçoit un message d'erreur explicite au lieu d'une erreur technique - Amélioration de l'expérience utilisateur lors du test de rappels Manus 2026-01-22 10:22:31 -05:00
  • 2a1f739901 Checkpoint: Amélioration de l'indicateur de progression du test de rappels - Indicateur visuel moderne avec animation (spinner + effet ping) - Message "Envoi en cours..." pendant le traitement - Toast final affichant le nombre exact d'emails envoyés - Approche simple et efficace sans complexité de streaming temps réel Manus 2026-01-22 09:34:32 -05:00
  • e3dffb85f4 Checkpoint: Amélioration du test de rappels avec envoi multiple et indicateur de progression - Modification du backend pour envoyer un email par inscrit confirmé (tous à l'adresse de test) - Ajout d'un indicateur de progression moderne avec animation (spinner + effet ping) - Message de succès affichant le nombre d'emails envoyés - Validation avec séquence "test 3" : 3 emails envoyés correctement (4ème inscrit sans email ignoré) - Synchronisation complète de la structure de la table logsrappels avec le VPS Manus 2026-01-22 08:50:00 -05:00
  • 94fed67d19 Checkpoint: Modification de la boîte de dialogue de test de rappels - Ajout d'un champ de saisie pour l'email du destinataire - Modification du texte : "Tous les rappels configurés pour cette séquence seront envoyés à l'adresse email que vous indiquez ci-dessous" - Validation de l'email avant envoi - Backend modifié pour envoyer à l'email saisi au lieu de tous les inscrits - Les logs enregistrent correctement l'email de test utilisé Manus 2026-01-22 08:33:07 -05:00
  • 58cbc2d85c Checkpoint: Ajout d'une boîte de dialogue de confirmation avant l'envoi de test des rappels Correction de la structure de la table logsrappels pour correspondre au VPS - Modification de la colonne statut: ENUM('succes','echec') au lieu de ENUM('success','failed') - Modification de la colonne typeEnvoi: ENUM('automatique','test') - Suppression des colonnes en trop (emailDestinataire, typeRappel, dateSequence, createdAt) Les logs de rappels s'enregistrent maintenant correctement dans la base de données Manus 2026-01-22 08:16:00 -05:00
  • 87c53ba75a Checkpoint: Ajout d'un badge orange pâle (bg-orange-50, text-orange-700, border-orange-200) pour la colonne Type dans l'historique des rappels pour améliorer la lisibilité et la cohérence visuelle Manus 2026-01-21 13:25:41 -05:00
  • c18425ea42 Checkpoint: Harmonisation des boutons d'action (Prévisualiser, Envoyer, Charger) en bleu, ajout d'un indicateur de progression pour l'upload des PDF, et correction de l'erreur logsRappels (colonne type déjà présente) Manus 2026-01-21 13:14:47 -05:00
  • be0b12f6c2 Checkpoint: Modification du bouton "Charger" dans la page de gestion des attestations pour le mettre en bleu vif (bg-blue-600 hover:bg-blue-700) avec texte blanc. Le bouton est maintenant plus visible et attrayant. Déployé sur le serveur de production. Manus 2026-01-21 13:05:08 -05:00
  • dc78f234f9 Checkpoint: Ajout de badges colorés orange avec icônes calendrier pour chaque date dans l'affichage des rappels automatiques. Format complet : Badge Formation (bleu) › Badge Séquence (vert) : Badge Date 1 (orange), Badge Date 2 (orange), etc. Affichage très visuel et attrayant. Déployé sur le serveur de production. Manus 2026-01-21 12:59:07 -05:00
  • 61418f619e Checkpoint: Amélioration visuelle de l'affichage des rappels automatiques : ajout de badges colorés avec icônes (🎓 bleu pour formation, 📅 vert pour séquence) tout en conservant le format compact sur une seule ligne. Format : Badge Formation › Badge Séquence : Date1, Date2. Déployé sur le serveur de production. Manus 2026-01-21 12:54:17 -05:00
  • 72c7f077ae Checkpoint: Modification de l'affichage de la fenêtre des rappels automatiques : regroupement des informations de formation/séquence/dates sur une seule ligne au lieu de plusieurs badges, et resserrement des colonnes du tableau pour une meilleure lisibilité. Format compact : "Formation › Séquence : Date1, Date2". Déployé sur le serveur de production. Manus 2026-01-21 12:37:01 -05:00
  • 8722cd57aa Checkpoint: Harmonisation de la charte graphique : remplacement des classes Tailwind arbitraires par la classe CSS .page-title pour les titres des pages AdminNotifications et AdminFormateurs. Déploiement réussi sur le serveur de production avec couleur #60a5fa et drop-shadow. Manus 2026-01-21 11:27:29 -05:00
  • 0c8c4654ee Checkpoint: Harmonisation des titres de pages avec le style CSS bleu clair et ombre portée : Manus 2026-01-20 12:14:13 -05:00
  • 99c0ee6bae Checkpoint: Correction de l'erreur "Cannot convert undefined or null to object" sur la page /admin/notifications : Manus 2026-01-20 12:07:33 -05:00
  • 1c15df377d Checkpoint: Correction des erreurs Fail2Ban et SQL DATE_FORMAT : Manus 2026-01-20 11:52:47 -05:00
  • fc4df8ed36 Checkpoint: Correction des erreurs sur la page rapport-public-cible et harmonisation de la charte graphique des titres : Manus 2026-01-20 11:46:56 -05:00
  • 68e2cc64ef Checkpoint: Menu latéral et tableau de bord harmonisés avec palette pastel + corrections bugs (émargement formateur, suivi questionnaires frontend, erreurs SQL suivi questionnaires backend) Manus 2026-01-20 08:52:56 -05:00
  • 6bd47f7577 Checkpoint: Menu latéral et tableau de bord harmonisés avec palette pastel + correction bugs "Cannot convert undefined or null to object" sur pages émargement formateur et suivi questionnaires Manus 2026-01-20 08:43:38 -05:00
  • a7a5ebdfe8 Checkpoint: Menu latéral moderne avec couleurs pastel (version douce et élégante) + correction du bug 'Cannot convert undefined or null to object' sur la page émargement formateur Manus 2026-01-20 08:31:21 -05:00
  • b7b2134289 Checkpoint: Refonte complète de l'ergonomie du tableau de bord avec design moderne, animations et couleurs vives. Manus 2026-01-20 07:01:11 -05:00
  • 21ed7f7355 Checkpoint: Renommage du bouton "Ajouter un inscrit" et application de l'alternance de couleurs blanc/bleu clair sur tous les tableaux. Manus 2026-01-20 05:08:27 -05:00
  • dc28caa3fd Checkpoint: Restauration des boutons d'ajout de balises dans la gestion des templates d'emails. Manus 2026-01-19 12:15:29 -05:00
  • b925117d76 Checkpoint: Correction complète de l'erreur de validation lors de la modification des templates "Rappel 1" et "Rappel 2". Tous les enums ont été mis à jour (rappel → rappel1, rappelJ1 → rappel2) dans AdminEmailTemplates.tsx (types ET liste déroulante templateTypes). Ajout de la fonctionnalité d'ajout manuel d'apprenant dans la fenêtre des inscrits. Amélioration visuelle avec alternance de couleurs bleues sur le tableau des rappels et icônes colorées pour les pièces jointes. Manus 2026-01-19 11:45:41 -05:00
  • 731a5b4d02 Checkpoint: Ajout manuel d'apprenant : Bouton et dialogue pour inscrire manuellement un apprenant à une séquence. Manus 2026-01-19 11:04:24 -05:00
  • c289bc94f7 Checkpoint: Correction erreur de validation : Mise à jour des enums de validation pour les types de rappels. Manus 2026-01-19 09:53:50 -05:00
  • 032020eb42 Checkpoint: Amélioration visuelle : Ajout d'une alternance de couleurs blanc/bleu sur le tableau des rappels. Manus 2026-01-19 09:27:31 -05:00
  • b66d6b406f Checkpoint: Amélioration visuelle : Ajout d'une alternance de couleurs (zebra striping) sur le tableau des rappels. Manus 2026-01-19 09:24:33 -05:00
  • ab19f2f325 Checkpoint: Amélioration complète de l'affichage des pièces jointes dans la gestion des rappels. Manus 2026-01-19 09:13:38 -05:00
  • 91785b4b4d Checkpoint: Amélioration visuelle : Ajout d'icônes colorées pour l'affichage des pièces jointes dans la configuration des rappels. Manus 2026-01-19 09:01:14 -05:00
  • a8bd01528c Checkpoint: Checkpoint saved: Correction de l'affichage incorrect du nombre de dates sélectionnées dans les rappels : Manus 2026-01-19 08:50:34 -05:00
  • 8b8bf8035a Checkpoint: Checkpoint saved: Correction de l'erreur "Unknown column 'statut'" dans la table envoisQuestionnaires : Manus 2026-01-19 08:36:18 -05:00
  • 92362ec1d2 Checkpoint: Checkpoint saved: Correction complète de la cohérence des types de rappels entre l'interface et le backend : Manus 2026-01-19 06:39:00 -05:00
  • 43c655a427 Checkpoint: Checkpoint de branchement : état stable du projet avec système de monitoring Fail2Ban complet, menu Gestion technique en dernière position, et toutes les fonctionnalités opérationnelles. Ce checkpoint peut servir de point de départ pour créer deux branches de développement différentes. Manus 2026-01-18 16:20:29 -05:00
  • cf67f2b87f Checkpoint: Correction de l'ordre du menu : la section "Gestion technique" est maintenant en dernière position comme demandé. Rebuild complet forcé sur le VPS pour s'assurer que les modifications sont bien prises en compte par le navigateur. Le menu contient bien l'élément "Sécurité SSH (Fail2Ban)" dans la section Gestion technique. Manus 2026-01-18 13:51:30 -05:00
  • c0076647d8 Checkpoint: Réorganisation du menu de navigation : création d'une nouvelle section "Gestion technique" et déplacement de "Sécurité SSH (Fail2Ban)" depuis Configuration vers cette nouvelle section. Intégration de la page AdminFail2Ban dans DashboardLayout pour afficher le menu latéral lors de la navigation. Déployé et testé sur le VPS de production. Manus 2026-01-18 13:40:33 -05:00
  • 4b407b9c83 Checkpoint: Système complet de monitoring Fail2Ban déployé avec succès. Tableau de bord admin affichant en temps réel les IPs bannies, statistiques d'attaques, et historique des bannissements. Fonctionnalité de débannissement manuel d'IPs. Système d'alertes email automatiques configuré : envoie une notification au propriétaire lorsque plus de 10 IPs sont bannies en 1 heure. Vérification toutes les 15 minutes. Déployé et testé sur le VPS de production avec logs confirmant l'initialisation correcte. Manus 2026-01-18 13:26:55 -05:00
  • cd18e2873a Checkpoint: Optimisation complète de la sécurité SSH avec Fail2Ban renforcé. Configuration déployée avec succès : maxretry=3, bantime=3600s (1h), findtime=600s (10min). Whitelist d'IPs de confiance créée incluant l'IP du sandbox Manus (88.98.108.76) pour éviter les blocages futurs. Protection renforcée contre les attaques par force brute tout en maintenant l'accès pour les IPs de confiance. Manus 2026-01-18 13:15:35 -05:00
  • e96ccf4553 Checkpoint: Résolution du problème de connexion SSH et déploiement réussi du scheduler de rappels corrigé sur le VPS de production. Le fichier rappelScheduler.ts avec la tolérance augmentée à 30 minutes a été compilé et déployé. PM2 redémarré avec succès. Le scheduler fonctionne maintenant correctement et vérifie les rappels toutes les 15 minutes avec une tolérance de 30 minutes. Manus 2026-01-18 12:57:35 -05:00
  • 47662ea545 Checkpoint: Augmentation de la tolérance du scheduler de rappels de 20 à 30 minutes pour couvrir 2 cycles de vérification (intervalle de 15 minutes). Cela permet de capturer les rappels même si le serveur a redémarré ou si le scheduler a manqué un cycle. Par exemple, un rappel configuré à 15h03 sera maintenant envoyé même si le scheduler vérifie à 15h15 ou 15h30. Manus 2026-01-18 09:17:21 -05:00
  • a3fd588fb8 Checkpoint: Correction critique du scheduler de rappels automatiques qui ne trouvait aucune date de formation. Le problème venait de l'utilisation de rappel.dateFormationIds (colonne inexistante) au lieu de la table de liaison rappelDates, et de l'utilisation de rappel.heure au lieu de rappel.heureEnvoi. Le scheduler utilise maintenant correctement la table rappelDates pour récupérer les dates de formation associées à chaque rappel et vérifie l'heure configurée avec une tolérance de 20 minutes toutes les 15 minutes. Manus 2026-01-18 08:55:38 -05:00
  • 2c0f379c52 Checkpoint: Ajout d'un bouton "Tout renvoyer" dans la page de gestion des attestations pour envoyer en masse toutes les attestations d'une formation. Création de la procédure backend sendAllAttestations qui envoie toutes les attestations disponibles et enregistre chaque envoi dans l'historique. Correction du scheduler de rappels pour vérifier l'heure configurée (intervalle 15 min au lieu de 1h). Manus 2026-01-18 08:39:13 -05:00
  • 6c4ca249a9 Checkpoint: Correction du système d'envoi automatique des rappels : 1. Ajout de la vérification de l'heure configurée avant l'envoi (tolérance de 20 minutes) 2. Réduction de l'intervalle du scheduler de 1 heure à 15 minutes pour plus de précision 3. Ajout de logs détaillés pour le débogage 4. Les rappels sont maintenant envoyés à l'heure exacte configurée (ex: 13h51) Manus 2026-01-18 08:22:08 -05:00
  • e9e39f6cdd Checkpoint: Corrections multiples pour le système d'attestations : 1. Ajout de l'enregistrement dans l'historique lors de l'envoi d'attestations (backend + frontend) 2. Correction du bouton Renvoyer inactif (selectedSequenceId -> apprenant.sequence.id) 3. Gestion des erreurs avec enregistrement dans l'historique en cas d'échec 4. Support des chemins locaux et URLs pour les fichiers PDF Manus 2026-01-18 07:42:56 -05:00
  • ac9ece31a5 Checkpoint: Correction de l'erreur "Failed to parse URL" lors de l'envoi d'attestation avec chemin local : - Modification de la fonction sendAttestationEmail dans server/emailService.ts - Ajout de la détection automatique entre URL complète (http/https) et chemin local - Pour les URLs complètes : téléchargement via fetch (comme avant) - Pour les chemins locaux : lecture directe depuis le système de fichiers avec fs.readFile - Les fichiers uploadés localement (/uploads/rappels-attachments/...) sont maintenant correctement lus - Utilisation de path.join(process.cwd(), pdfUrl) pour construire le chemin absolu - Déployé sur le VPS de production (https://formations.itinova.org) - L'envoi d'attestations uploadées localement fonctionne maintenant correctement Manus 2026-01-18 06:11:57 -05:00
  • b7abb929a5 Checkpoint: Ajout de la possibilité de renvoyer une attestation après qu'elle ait été envoyée : - Modification de l'interface AdminGestionAttestations.tsx - Le bouton d'envoi reste maintenant toujours visible (suppression de la condition !isSent) - Le libellé du bouton change dynamiquement : "Envoyer" si jamais envoyée, "Renvoyer" si déjà envoyée - Permet de renvoyer une attestation après remplacement ou suppression - Le backend marque simplement l'attestation comme envoyée à chaque appel - Déployé sur le VPS de production (https://formations.itinova.org) - Les utilisateurs peuvent maintenant renvoyer une attestation à tout moment Manus 2026-01-18 05:02:45 -05:00
  • 95606294dc Checkpoint: Modification de l'envoi d'attestation pour joindre le PDF directement en pièce jointe : - Modification de la fonction sendAttestationEmail dans server/emailService.ts - Le PDF est maintenant téléchargé depuis l'URL et converti en Buffer - Le PDF est joint à l'email en pièce jointe (base64) au lieu d'un lien de téléchargement - Nom du fichier joint : Attestation_Nom_Prenom.pdf - Texte de l'email adapté : "Vous trouverez votre attestation en pièce jointe de cet email" - Déployé sur le VPS de production (https://formations.itinova.org) - Les attestations sont maintenant envoyées directement en pièce jointe Manus 2026-01-18 04:55:11 -05:00
  • 7d62ade89b Checkpoint: Correction de l'erreur "aucune attestation disponible pour cet apprenant" lors de l'envoi manuel d'attestation : - Modification de la fonction handleSendAttestation pour vérifier à la fois documentUrl et urlPdf - Les attestations uploadées manuellement sont stockées dans documentUrl - Les attestations générées automatiquement sont stockées dans urlPdf - La fonction vérifie maintenant les deux champs (documentUrl en priorité, puis urlPdf en fallback) - Déployé sur le VPS de production (https://formations.itinova.org) - L'envoi manuel d'attestations uploadées fonctionne maintenant correctement Manus 2026-01-18 04:29:40 -05:00
  • a79132e921 Checkpoint: Correction de l'erreur "refetchInscrits is not defined" lors de l'upload d'attestation manuelle : - Remplacement de refetchInscrits() par refetchApprenants() dans AdminGestionAttestations.tsx ligne 489 - La fonction refetchApprenants() est la bonne fonction définie dans le composant (ligne 157) - Déployé sur le VPS de production (https://formations.itinova.org) - L'upload d'attestation manuelle fonctionne maintenant correctement sans erreur JavaScript Manus 2026-01-17 18:30:13 -05:00
  • a203b70e27 Checkpoint: Corrections complètes du système de pièces jointes pour les rappels : - Upload de fichiers avec fallback automatique vers stockage local - Configuration Nginx pour uploads jusqu'à 10 Mo - Colonne "Pièce jointe" dans le tableau de gestion des rappels - Support des fichiers locaux et S3 dans l'envoi d'emails - Correction de l'encoding base64 pour SMTP/Nodemailer - Table logsrappels créée dans la base de données MySQL du VPS Manus 2026-01-17 11:12:07 -05:00
  • 0d794e5c9a Checkpoint: Configuration de l'upload de fichiers avec fallback automatique vers le stockage local du VPS Manus 2026-01-17 10:10:24 -05:00
  • 6490aab8ed Checkpoint: Correction du bouton de vidage de l'historique des rappels Manus 2026-01-16 11:24:19 -05:00
  • 1fc4c89c0a Checkpoint: Système de rappels complètement générique et correction du problème de casse MySQL Manus 2026-01-16 11:15:07 -05:00
  • 512b989be7 Checkpoint: Ajout d'un bouton pour vider la table des logs d'historique des rappels avec boîte de dialogue de confirmation Manus 2026-01-16 09:36:30 -05:00
  • c3c07e5022 Checkpoint: Checkpoint saved: Correction des erreurs TypeScript critiques (réduction de 115 à 88 erreurs) Manus 2026-01-16 08:53:47 -05:00
  • e5bfb19558 Checkpoint: Checkpoint saved: Ajout de la colonne "Type d'envoi" dans l'historique des rappels et nettoyage des anciens logs erronés Manus 2026-01-16 06:41:58 -05:00
  • 8f21fdd276 Checkpoint: Checkpoint saved: Correction complète de l'enregistrement des logs de rappels : Manus 2026-01-16 06:33:12 -05:00
  • b9fbfafc69 Checkpoint: Checkpoint saved: Ajout de l'enregistrement des tests de rappel dans l'historique (table logsRappels) : - Ajout du champ typeEnvoi (enum 'automatique', 'test') dans le schéma Drizzle de la table logsRappels - Ajout de la fonction createLogRappel dans server/db.ts pour enregistrer les logs - Modification de la procédure testerRappel pour enregistrer chaque envoi de test avec typeEnvoi='test' - Enregistrement des succès et des échecs dans l'historique - Les tests n'interfèrent pas avec les rappels automatiques (typeEnvoi='automatique') - Migration SQL appliquée sur le VPS : ALTER TABLE logsRappels ADD COLUMN typeEnvoi - Déployé sur le VPS de production (https://formations.itinova.org) - Mise à jour du fichier todo.md Manus 2026-01-16 03:53:53 -05:00
  • c05d20dd19 Checkpoint: Checkpoint saved: Suppression des boutons obsolètes de rappel J-7 et J-1 dans la fenêtre de détails des séquences : - Suppression de 4 boutons : "Aperçu rappel J-7", "Envoyer rappel J-7", "Aperçu rappel J-1", "Envoyer rappel J-1" - Ces boutons sont maintenant remplacés par le bouton "Tester le rappel" qui envoie automatiquement le bon template configuré - Fichier modifié : client/src/pages/AdminSequenceInscrits.tsx - Déployé sur le VPS de production (https://formations.itinova.org) - Mise à jour du fichier todo.md Manus 2026-01-16 03:37:01 -05:00
  • c5f537e245 Checkpoint: Modifications de l'interface utilisateur : - Page AdminSequences : ouvre en vue réduite par défaut - DashboardLayout : seule la section "Gestion" est ouverte par défaut à la connexion - Déployé sur le VPS de production Manus 2026-01-16 03:23:57 -05:00
  • 7577a58b70 Checkpoint: Création des pages de réinitialisation de mot de passe : - Ajout de la page /forgot-password pour demander un lien de réinitialisation - Ajout de la page /reset-password pour définir un nouveau mot de passe - Ajout du lien "Mot de passe oublié ?" sur la page de connexion - Installation du module bcrypt dans le sandbox - Les procédures backend (requestPasswordReset, resetPassword) sont déjà implémentées - Note: bcrypt temporairement désactivé sur le VPS en attendant la résolution du problème de store pnpm Manus 2026-01-15 16:06:00 -05:00
  • a50bf44b41 Checkpoint: Correction du problème "undefined" affiché dans les emails : - Ajout d'une condition pour ne pas afficher le headerTitle s'il est null ou undefined - Modification de emailTemplateGenerator.ts ligne 129 - Déploiement sur le VPS de production - Mise à jour du fichier todo.md Manus 2026-01-15 13:23:35 -05:00
  • 820c12d6c1 Checkpoint: Modification de la procédure testerRappel pour envoyer le rappel à tous les inscrits confirmés : - Remplacement de l'envoi au premier inscrit uniquement par un envoi à tous les inscrits confirmés - Ajout d'un compteur de succès et d'échecs - Gestion des erreurs individuelles pour chaque envoi - Message de retour détaillé avec le nombre d'envois réussis et échoués - Déploiement sur le VPS de production - Mise à jour du fichier todo.md Manus 2026-01-15 13:01:17 -05:00
  • e642f23170 Checkpoint: Amélioration du bouton "Tester le rappel" pour utiliser automatiquement le bon template configuré : - Modification de la procédure testerRappel pour détecter automatiquement le premier rappel actif configuré pour la séquence - Suppression du paramètre typeRappel (n'est plus nécessaire) - Création de la fonction sendRappelEmail générique qui utilise le templateType du rappel configuré - Le bouton frontend envoie maintenant le bon template (rappel 1, 3, 4, 5, 6, etc.) selon la configuration de la séquence - Gestion des pièces jointes configurées dans le rappel - Mise à jour du fichier todo.md pour marquer la tâche comme terminée Manus 2026-01-15 12:22:24 -05:00
  • d3645ec1cb Checkpoint: Correction de l'erreur "Cannot read properties of undefined (reading 'replace')" lors de l'envoi de test de rappel : - Ajout d'une vérification dans replaceEmailVariables pour gérer les templates undefined/null - Ajout d'une vérification dans buildEmailHTML pour s'assurer que emailBody n'est jamais undefined - Ajout d'une vérification pour headerTitle avant d'appeler replaceEmailVariables - Protection contre les valeurs null/undefined dans toutes les fonctions de manipulation de templates - Mise à jour du fichier todo.md pour marquer la tâche comme terminée Manus 2026-01-15 12:06:52 -05:00
  • 695f94ef77 Checkpoint: Correction de l'erreur de validation du type de rappel dans le bouton "Tester le rappel" : - Ajout du paramètre typeRappel: 'rappel' dans l'appel à testerRappelMutation - Le backend attendait ce paramètre avec les valeurs 'rappel' ou 'rappelJ1' - Le bouton envoie maintenant un rappel J-7 par défaut lors du test - Mise à jour du fichier todo.md pour marquer la tâche comme terminée Manus 2026-01-15 11:57:20 -05:00
  • b9804ada14 Checkpoint: Ajout du bouton "Tester le rappel" dans AdminSequences.tsx : - Ajout de la mutation testerRappelMutation connectée à la procédure tRPC rappels.testerRappel - Ajout de l'icône Send dans les imports - Ajout du bouton dans la colonne Actions du tableau des séquences (entre Edit et Delete) - Le bouton envoie un email de test à l'administrateur avec les données de la séquence sélectionnée - Validation : le bouton est désactivé si la séquence n'a pas de dates configurées - Feedback utilisateur : toast de succès ou d'erreur après l'envoi - Mise à jour du fichier todo.md pour marquer la tâche comme terminée Manus 2026-01-15 11:48:33 -05:00
  • 6068b0772a Checkpoint: Corrections multiples : template reset_password, bugs UI templates d'email, schémas DB, et table logsRappels Manus 2026-01-15 10:00:03 -05:00
  • 4dc5aff7b5 Checkpoint: Ajout du template "Réinitialisation de mot de passe" (reset_password) : - Ajout de "reset_password" à l'enum du schéma Drizzle (table emailTemplates) - Migration SQL pour modifier l'enum dans la base de données - Création du template dans la base de données avec un contenu par défaut approprié - Mise à jour de la procédure tRPC emailTemplates.upsert pour utiliser les noms de colonnes français (titre, couleurPrincipale, couleurSecondaire, piedDePage) - Mise à jour de la fonction upsertEmailTemplate dans server/db.ts pour utiliser les noms de colonnes français - Réécriture complète de AdminEmailTemplates.tsx pour utiliser les noms de colonnes français - Test complet de l'interface : le template s'affiche correctement, peut être modifié et prévisualisé - Le template contient les variables {{prenom}}, {{nom}}, {{lienReinitialisation}} pour la réinitialisation de mot de passe - Total de 9 templates d'emails maintenant disponibles (inscription, teaser, rappel, rappelJ1, rappel3-6, reset_password) Manus 2026-01-15 03:18:57 -05:00
  • b53801c463 Checkpoint: Corrections multiples : - Renommage questionnaire.nom → questionnaire.titre dans QuestionnaireReponse.tsx, AdminQuestionnaireEdit.tsx, questionnaireScheduler.ts, questionnaireExport.ts - Correction des requêtes SQL dans questionnaireDb.ts (suppression de la condition complete inexistante) - Ajout des colonnes valeurMin et valeurMax dans la table questions - Renommage de la colonne nom en titre dans la table questionnaires Manus 2026-01-14 03:08:54 -05:00
  • 8ecb856191 Checkpoint: Améliorations techniques et documentation complètes : - Correction des 170 erreurs TypeScript liées aux types templateType dans les procédures rappels.create et rappels.update (passage de z.string() à z.enum() avec les valeurs correctes) - Nettoyage complet des fichiers de migration Drizzle (suppression des 32 anciens fichiers et génération d'une nouvelle migration propre 0000_clean_justice.sql) - Création du guide utilisateur GUIDE_CONFIGURATION_ATTESTATIONS.md expliquant en détail le nouveau workflow de configuration des attestations (modes de génération et d'envoi, workflows recommandés, bonnes pratiques, dépannage) Manus 2026-01-13 04:24:27 -05:00
  • 3fcc698f35 Checkpoint: Finalisation complète du retrait du paramètre d'envoi automatique des attestations : - Vérification que tous les paramètres liés aux attestations sont bien accessibles dans la page de gestion des attestations (mode de génération et mode d'envoi) - Retrait du champ envoiAutomatiqueAttestations du schéma Drizzle - Suppression de la colonne envoiAutomatiqueAttestations de la table parametres dans la base de données - Mise à jour de la procédure tRPC parametres.update pour retirer ce champ - Test complet du workflow : le serveur fonctionne correctement et le tableau de bord s'affiche sans erreur Manus 2026-01-13 04:16:24 -05:00
  • 24296cc2bf Checkpoint: Retrait du paramètre d'envoi automatique des attestations de la page Paramètres. Ce paramètre est maintenant géré directement dans la page de gestion des attestations pour plus de cohérence. Manus 2026-01-13 03:40:16 -05:00
  • bd9cb15f44 Checkpoint: Correction des erreurs tRPC qui retournaient du HTML au lieu de JSON : - Changement du champ 'nom' en 'titre' pour les questionnaires (backend et frontend) - Suppression de la propriété 'complete' inexistante dans reponsesQuestionnaires - Correction du type 'provider' dans la configuration email - Gestion des valeurs null pour le champ 'fonction' des apprenants - Résolution de l'erreur logsRappels.email après redémarrage du serveur Manus 2026-01-13 03:21:23 -05:00
  • 97aeacab29 Checkpoint: Ajout de la page de gestion des attestations de formation Manus 2026-01-12 15:13:44 -05:00
  • a7602e6740 Checkpoint: Ajout de la page de gestion des attestations de formation Manus 2026-01-12 14:57:30 -05:00
  • ce64c72f00 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 Manus 2026-01-12 13:54:18 -05:00
  • 61f28781f0 Checkpoint: Correction des erreurs de colonnes dans la table rappels : - Modification du schéma rappels : remplacement de nbJours par joursAvant pour correspondre à la structure réelle de la base de données - Correction des noms de colonnes pour utiliser exactement la même casse que la base de données (templateType, heureEnvoi, nomFichier, urlFichier, s3Key, typeFichier, tailleFichier, derniereExecution) - La page Rappels fonctionne maintenant correctement et affiche tous les rappels configurés sans erreurs SQL Manus 2026-01-12 11:56:15 -05:00
  • a969e8e870 Checkpoint: Correction des erreurs de colonnes manquantes dans les tables : - Modification du schéma apprenants : codeEtablissement et fonction en VARCHAR nullable (au lieu de NOT NULL et ENUM) - Suppression de la colonne isActive qui n'existe pas dans la base de données - Modification du schéma sequences : ajout des statuts "bloquee" et "terminee" dans l'ENUM - Suppression de la colonne dateBloquage qui n'existe pas dans la base de données - Le dashboard admin fonctionne maintenant correctement sans erreurs de requêtes SQL Manus 2026-01-12 06:20:29 -05:00
  • 393265987b Checkpoint: Correction du menu de navigation manquant dans l'espace formateur : - Ajout du composant DashboardLayout à la page FormateurDashboard - Le menu de navigation latéral s'affiche maintenant correctement pour les utilisateurs avec le rôle formateur - Navigation cohérente entre toutes les pages de l'espace formateur (Dashboard et Émargement) Manus 2026-01-12 06:07:28 -05:00
  • 182b39e78a Checkpoint: Amélioration de la page Paramètres avec : - Ajout de 3 nouveaux paramètres globaux : délai d'expiration QR codes (minutes), durée de validité tokens (heures), notifications actives (boolean) - Création de la table historiqueParametres pour tracer toutes les modifications avec userId, userName, champModifié, ancienneValeur, nouvelleValeur et dateModification - Ajout d'un bouton "Tester l'URL" avec indicateur visuel de statut (vert si accessible, rouge si erreur) - Affichage de l'historique des modifications dans un tableau avec toutes les informations de traçabilité - Mise à jour automatique de l'historique lors de chaque modification de paramètre Manus 2026-01-12 03:34:33 -05:00
  • 44c1cd65fa Checkpoint: Correction de l'affichage du menu de gauche dans les pages Paramètres et Émargement Manus 2026-01-12 03:08:32 -05:00
  • 0bebe04eea Checkpoint: Ajout d'une page de paramètres pour gérer l'URL des QR codes Manus 2026-01-12 02:24:59 -05:00
  • 3922b8fd5b Checkpoint: Correction du lien QR code pour utiliser l'URL publique Manus 2026-01-11 15:11:24 -05:00
  • 3981d719e3 Checkpoint: Correction du problème d'aperçu de l'application Manus 2026-01-11 14:38:06 -05:00