Commit Graph

70 Commits

Author SHA1 Message Date
Manus Sandbox
46f8a6bcfd Checkpoint: Correction complète du bug d'import Excel - Utilisation de $returningId() pour récupérer les IDs après insertion (formations et séquences), ajout de la colonne ordre obligatoire pour les dates de formation. L'import fonctionne maintenant correctement. 2025-11-25 14:33:57 -05:00
Manus Sandbox
c4f9cb9ebc Checkpoint: Correction du bug d'import Excel - Retrait de la colonne publicCible inexistante dans la table formations. Ajout de logs de débogage et amélioration de la gestion des erreurs d'import. 2025-11-25 14:22:36 -05:00
Manus Sandbox
9fffa8c773 Checkpoint: Correction du bug de création/modification de séquence avec public cible "Tous"
- Ajout de la valeur "tous" dans l'enum publicCible du schéma drizzle/schema.ts
- Mise à jour des validations Zod dans server/routers.ts
- Modification directe de la colonne publicCible en base de données via SQL
- Test réussi : création d'une séquence avec public cible "Tous" fonctionne parfaitement
2025-11-25 02:38:12 -05:00
Manus Sandbox
03efb59cbf Checkpoint: Ajout de filtres de période (dernier mois, trimestre, année) pour affiner l'analyse des tendances. Implémentation de l'export Excel des rapports analytiques avec 5 feuilles (statistiques globales, inscriptions par mois, taux de remplissage, participation par établissement et par fonction). Création du schéma de base de données pour les alertes automatiques (fonctionnalité future). Les utilisateurs peuvent maintenant filtrer les données analytiques par période et télécharger des rapports Excel complets. 2025-11-23 16:36:26 -05:00
Manus Sandbox
62644d544e Checkpoint: Ajout du champ "Corps du message" dans l'interface de gestion des templates d'emails. Les utilisateurs peuvent maintenant personnaliser le contenu principal de leurs emails automatiques (confirmation, teaser, rappel) en plus du titre, des couleurs et du pied de page. Le champ accepte du texte simple et affiche une prévisualisation en temps réel. 2025-11-23 14:57:58 -05:00
Manus Sandbox
8a61f9b823 Checkpoint: Ajout de l'identifiant de connexion et modification du mot de passe dans la gestion des utilisateurs
Modifications apportées :
- Ajout du champ username (identifiant de connexion) dans le schéma de la base de données avec contrainte UNIQUE
- Mise à jour des procédures tRPC create et update pour gérer username et password
- Implémentation du hashage du mot de passe avec bcryptjs dans createUser et updateUser
- Ajout de la colonne "Identifiant" dans le tableau de la page de gestion des utilisateurs
- Ajout des champs "Identifiant de connexion" et "Mot de passe" dans le formulaire de création
- Ajout des champs "Identifiant de connexion" et "Nouveau mot de passe" dans le formulaire d'édition avec notes explicatives
- Les mots de passe sont hashés avant d'être stockés en base de données pour la sécurité
- Dans le formulaire d'édition, les champs username et password sont optionnels (laissez vide pour ne pas modifier)
2025-11-21 10:08:56 -05:00
Manus Sandbox
fad88c5257 Checkpoint: Correction majeure du problème de création excessive d'utilisateurs
Problème identifié :
- La contrainte UNIQUE sur la colonne openId n'existait pas dans la base de données
- Tous les utilisateurs partageaient le même openId
- Chaque connexion créait un nouvel utilisateur au lieu de mettre à jour l'existant
- 344 utilisateurs en double ont été créés

Solution appliquée :
- Nettoyé 343 utilisateurs en double (gardé le plus récent pour chaque openId)
- Ajouté la contrainte UNIQUE sur la colonne openId via ALTER TABLE
- Maintenant onDuplicateKeyUpdate fonctionne correctement

Résultat :
- Plus aucun utilisateur en double ne sera créé
- À chaque connexion, l'utilisateur existant est mis à jour
- Table users propre avec seulement les utilisateurs uniques
2025-11-21 09:53:16 -05:00
Manus Sandbox
1768e45dc1 Checkpoint: Correction complète de l'affichage du formateur dans la liste des séquences et dans le formulaire de modification. Ajout de la colonne formateurId dans la table sequences, modification du schéma Zod pour accepter null, et correction du FormateurCombobox pour stocker l'ID au lieu du nom. Le formateur s'affiche maintenant correctement dans la liste des séquences. 2025-11-20 04:36:02 -05:00
Manus Sandbox
89cc7db497 Checkpoint: Sauvegarde complète de l'application avec toutes les modifications récentes :
Corrections d'affichage du formateur :
- Correction du placeholder "Sélectionner un formateur (optionnel)" en "Sélectionner un formateur" dans le formulaire de modification de séquence
- Ajout d'une colonne "Formateur" dans le tableau de la liste des séquences
- Le formateur s'affiche maintenant dans la liste avec "-" si non assigné

Corrections d'affichage du nom de formation :
- Création de la fonction getSequencesWithFormation() qui récupère les informations de formation via jointure
- Mise à jour de la procédure sequences.list pour utiliser cette nouvelle fonction
- Le nom de la formation s'affiche maintenant correctement dans le calendrier et les détails de séquence

Nettoyage de la base de données :
- Suppression de tous les utilisateurs sauf les 4 spécifiés (IDs: 1110110, 2010001, 2040001, 2070001)
- La table utilisateurs ne contient maintenant que les utilisateurs autorisés
2025-11-19 12:39:44 -05:00
Manus Sandbox
2283e84b54 true message 2025-11-19 10:33:48 -05:00
Manus Sandbox
4bf589dde3 Checkpoint: Trois améliorations majeures pour la gestion des séquences :
 **1. Indicateur visuel de remplissage**
- Composant CapacityProgressBar avec barre de progression colorée
- Affichage "X / Y" avec pourcentage
- Couleurs automatiques : vert (<70%), orange (70-90%), rouge (>90%)
- Intégré dans la colonne capacité du tableau des séquences

 **2. Vue calendrier mensuel**
- Nouvelle page AdminCalendrier accessible depuis le menu
- Calendrier mensuel avec navigation (mois précédent/suivant, aujourd'hui)
- Affichage des séquences sur leurs dates respectives
- Dialog de détails au clic sur une séquence
- Vue complète avec toutes les informations (lieu, formateur, capacité, dates)

 **3. Système de rappels automatiques personnalisables**
- Tables rappels et rappelsEnvoyes créées
- Procédures tRPC complètes (list, create, update, delete)
- Page AdminRappels avec interface de gestion
- Configuration de rappels multiples (J-15, J-7, J-1, etc.)
- Templates d'emails personnalisables avec variables dynamiques
- Activation/désactivation des rappels
- Infrastructure prête pour l'envoi automatique (nécessite service de planification externe)

Ces améliorations facilitent grandement la planification et le suivi des formations.
2025-11-19 09:59:37 -05:00
Manus Sandbox
16351ea3d5 Checkpoint: Trois améliorations majeures du champ formateur :
 **1. Affichage dans le tableau des séquences**
- Nouvelle colonne "Formateur" ajoutée au tableau de gestion
- Affiche le nom du formateur ou "-" si non renseigné

 **2. Liste prédéfinie avec autocomplétion**
- Nouvelle table `formateurs` dans la base de données
- Procédures tRPC (list, create, delete) pour gérer les formateurs
- Composant `FormateurCombobox` avec autocomplétion intelligente
- Possibilité d'ajouter rapidement un nouveau formateur depuis le formulaire
- Recherche en temps réel parmi les formateurs existants

 **3. Inclusion dans les emails d'invitation**
- Le nom du formateur est maintenant affiché dans les emails de confirmation d'inscription
- Affichage conditionnel (uniquement si un formateur est renseigné)
- Améliore la communication avec les apprenants

Ces améliorations standardisent la gestion des formateurs, évitent les doublons/fautes de frappe, et enrichissent l'information transmise aux apprenants.
2025-11-19 09:38:06 -05:00
Manus Sandbox
703d0e4961 Checkpoint: Ajout du champ "Formateur" dans les séquences de formation :
 Base de données : colonne "formateur" ajoutée à la table sequences (VARCHAR 255, nullable)

 Backend : procédures tRPC mises à jour
- sequences.create : champ formateur ajouté (optionnel)
- sequences.update : champ formateur ajouté (optionnel)

 Frontend : formulaires mis à jour
- Formulaire de création : champ "Formateur" ajouté avec placeholder
- Formulaire de modification : champ "Formateur" ajouté avec placeholder
- Le champ est non obligatoire comme demandé

Le champ formateur permet maintenant de spécifier le nom du formateur pour chaque séquence de formation lors de la création ou de la modification.
2025-11-19 09:30:51 -05:00
Manus Sandbox
b72a9c471c Checkpoint: Ajout de "Tous" dans la liste des publics cible pour les séquences. Modifications apportées :
 Base de données : enum publicCible mis à jour avec la valeur "tous"

 Frontend mis à jour dans 4 fichiers :
- AdminSequences.tsx : ajout de "tous" dans les types TypeScript, options de sélection et badges (couleur violet)
- AdminSequenceInscrits.tsx : ajout de "tous" dans les fonctions de labels et badges
- AdminRapportPublicCible.tsx : ajout de "tous" dans les fonctions de labels et badges
- Inscription.tsx : ajout de "tous" dans le mapping, l'affichage et la logique d'alerte (pas d'alerte si public cible = "Tous")

Les séquences peuvent maintenant être créées avec le public cible "Tous", ce qui permet de cibler tous les profils sans distinction.
2025-11-19 09:09:31 -05:00
Manus Sandbox
61d64c365b Checkpoint: Correction OAuth callback failed : ajout colonnes openId et loginMethod, password nullable, logs détaillés 2025-11-19 08:57:37 -05:00
Manus Sandbox
37e0f8da49 Rollback to 9d67724e 2025-11-19 08:41:10 -05:00
Manus Sandbox
5085159cf7 Rollback to 641200f3 2025-11-19 08:36:23 -05:00
Manus Sandbox
cc0bd97248 Checkpoint: Migration complète vers l'authentification locale avec email/mot de passe
 Modifications apportées :
- Remplacement de l'authentification OAuth Manus par un système local
- Ajout des champs email, password, emailVerified dans la table users
- Implémentation du hashage des mots de passe avec bcrypt
- Création des procédures auth.login et auth.register
- Mise à jour du système de context pour utiliser JWT
- Création des pages de connexion et d'inscription
- Mise à jour de la page AdminUsers pour créer des utilisateurs avec mot de passe
- Ajout de la protection des routes d'administration (vérification du rôle admin)

 Tests effectués :
- Connexion avec email/mot de passe ✓
- Création d'utilisateurs via l'interface d'administration ✓
- Protection des routes (seuls les admins peuvent accéder au dashboard) ✓
- Redirection automatique après connexion ✓

Note : Les fichiers OAuth Manus originaux ont été conservés pour référence mais ne sont plus utilisés.
2025-11-19 05:35:17 -05:00
Manus Sandbox
20dc80cd74 Checkpoint: Ajout d'une interface d'administration complète pour personnaliser les templates d'emails avec prévisualisation en temps réel, stockage en base de données et intégration avec le service d'envoi 2025-11-17 17:11:27 -05:00
Manus Sandbox
155c4592e1 Checkpoint: Ajout de la fonctionnalité complète de réinitialisation de mot de passe avec génération de tokens temporaires (24h), stockage en base de données, et envoi d'emails automatiques. Nouveau bouton dans la page de gestion des utilisateurs avec dialogue de confirmation. 2025-11-17 16:21:11 -05:00