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
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