Commit Graph

338 Commits

Author SHA1 Message Date
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
934edc63cd Checkpoint: Correction des erreurs de compilation - Installation de jsonwebtoken, correction des imports, serveur fonctionnel. Migration OAuth vers authentification locale maintenant opérationnelle. 2025-11-19 04:47:42 -05:00
Manus Sandbox
28727171ae Checkpoint: Migration OAuth Manus vers authentification locale (80% complété) - Pages login/register créées, backend JWT implémenté, guides de déploiement ajoutés. Reste à corriger les doublons dans db.ts et finaliser AdminUsers. 2025-11-19 04:39:07 -05:00
Manus Sandbox
9d67724e83 Checkpoint: Ajout de l'interface de configuration SMTP avec Resend : formulaire de configuration (API key, email expéditeur, nom), basculement simulation/production, test d'envoi immédiat, stockage sécurisé en base de données, et guide de configuration intégré 2025-11-18 02:00:48 -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
f06cd3e8a5 Checkpoint: Amélioration du système d'envoi d'emails : intégration de Resend pour l'envoi réel d'emails avec fallback vers simulation si non configuré. Documentation complète ajoutée dans EMAIL_SETUP.md pour guider la configuration. 2025-11-17 16:53:32 -05:00
Manus Sandbox
6c24939d20 Checkpoint: Correction de l'affichage de la page de gestion des utilisateurs : intégration du DashboardLayout pour afficher le menu latéral de navigation sur toutes les pages. 2025-11-17 16:41:42 -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
Manus Sandbox
c9f6f8f068 Checkpoint: Ajout de la fonctionnalité de création d'utilisateurs : ajout de la fonction createUser dans db.ts, création de la procédure tRPC users.create, ajout du bouton "Ajouter un utilisateur" dans la page AdminUsers avec icône Plus, création du dialogue de création avec formulaire complet (OpenID, nom, email, rôle) et gestion des états de création avec validation et messages de succès/erreur 2025-11-17 16:10:16 -05:00
Manus Sandbox
8cf6a9f6c3 Checkpoint: Ajout d'une fonctionnalité complète de gestion des utilisateurs : ajout du champ isActive dans le schéma users, création des procédures tRPC (list, update, toggleStatus, delete), développement de la page AdminUsers avec tableau, filtres (recherche, rôle, statut), formulaires de modification, activation/désactivation et suppression des comptes, intégration dans le menu de navigation avec l'icône UserCog 2025-11-17 15:57:51 -05:00
Manus Sandbox
6f5178b909 Checkpoint: Ajout des badges de couleur pour le public cible (bleu pour Directeurs, vert pour Chefs de service, gris pour Autre) dans les tableaux des séquences et création d'un rapport d'analyse comparant le public cible des séquences avec la fonction des apprenants inscrits pour identifier les écarts et optimiser la planification des formations 2025-11-17 08:44:49 -05:00
Manus Sandbox
01e2b8b2d4 Checkpoint: Ajout d'un filtre par public cible sur la page de gestion des séquences pour faciliter la recherche des séquences destinées à un profil spécifique (Directeurs, Chefs de service, Autre) 2025-11-17 07:57:18 -05:00
Manus Sandbox
3f16cd8a48 Checkpoint: Ajout du champ "Public cible" dans tous les exports (Excel, PDF liste d'inscrits, PDF feuille de présence) pour une meilleure traçabilité des séquences 2025-11-17 06:06:23 -05:00
Manus Sandbox
19dbe9cccc Checkpoint: Ajout d'une alerte d'information non bloquante qui s'affiche lorsqu'un apprenant s'inscrit à une séquence dont le public cible ne correspond pas à sa fonction. L'alerte persiste 8 secondes avec un délai de 2 secondes avant la soumission pour laisser le temps de lecture. 2025-11-17 04:52:17 -05:00
Manus Sandbox
634565b134 Checkpoint: Correction des bugs d'inscription : validation des inscriptions et ajout des apprenants dans la liste. Les deux bugs étaient déjà corrigés dans la version restaurée (732b84fe). 2025-11-17 01:50:14 -05:00
Manus Sandbox
6a5af08dad Rollback to 732b84fe 2025-11-17 01:42:00 -05:00
Manus Sandbox
5439ce3ca2 Checkpoint: Correction du formulaire de modification des séquences : ajout du champ "Public cible" qui était manquant dans le dialogue de modification. Le champ est maintenant présent et modifiable dans les deux dialogues (création et modification). 2025-11-13 12:03:17 -05:00
Manus Sandbox
732b84fee8 Checkpoint: Correction : déplacement du champ "Public cible" des formations vers les séquences. Le public cible est maintenant défini au niveau de chaque séquence, permettant d'avoir des séquences différentes pour des publics différents au sein d'une même formation. Mise à jour complète du schéma de base de données, des procédures tRPC, du formulaire de création/édition de séquences avec affichage dans le tableau, et affichage du public cible pour chaque séquence sur la page d'inscription publique. 2025-11-13 11:18:02 -05:00
Manus Sandbox
5f4a049e05 Checkpoint: Ajout du champ "Public cible" dans la fiche formation avec liste déroulante identique à celle de "Fonction" des apprenants (Directeur, Chef de service, Autre). Mise à jour du schéma de base de données, des procédures tRPC, du formulaire de gestion des formations avec affichage dans le tableau, et affichage du public cible sur la page d'inscription publique. 2025-11-13 10:35:54 -05:00
Manus Sandbox
4152b88c91 Checkpoint: Correction finale du décalage horaire : parseLocalDateTime compense maintenant automatiquement le décalage UTC en utilisant getTimezoneOffset(). Cela garantit que l'heure saisie (par exemple 09:48) est stockée en UTC de manière à être affichée correctement en heure locale. Le paramètre timezone a été retiré de la connexion MySQL pour éviter les doubles conversions. 2025-11-13 10:24:37 -05:00
Manus Sandbox
7e0e9d0586 Checkpoint: Correction définitive du décalage horaire : parseLocalDateTime retourne maintenant directement une chaîne au format MySQL "YYYY-MM-DD HH:mm:ss" au lieu d'un objet Date JavaScript. Cela évite toute conversion UTC automatique lors de l'insertion en base de données. L'heure saisie (par exemple 09:48) est maintenant stockée et affichée exactement telle quelle sans décalage. 2025-11-13 10:17:35 -05:00
Manus Sandbox
1031c57f96 Checkpoint: Configuration du fuseau horaire Europe/Paris (UTC+1) dans la connexion MySQL pour éliminer le décalage horaire. Le paramètre timezone=+01:00 est ajouté automatiquement à l'URL de connexion pour forcer MySQL à stocker et récupérer les dates en heure locale française sans conversion UTC. 2025-11-13 09:59:12 -05:00
Manus Sandbox
1af1f3ceed Checkpoint: Correction de la gestion des objets Date JavaScript dans toutes les fonctions de formatage. Les dates récupérées de la base de données via tRPC sont automatiquement converties en objets Date JavaScript par SuperJSON. Toutes les fonctions formatDate et safeFormatDate ont été mises à jour pour détecter et gérer correctement les objets Date en plus des chaînes MySQL, évitant ainsi les erreurs "Format de date non reconnu". 2025-11-13 09:52:41 -05:00
Manus Sandbox
0b83cbd8cd Checkpoint: Correction complète et définitive du décalage horaire. Toutes les fonctions de formatage de dates ont été réécrites pour parser manuellement les chaînes MySQL sans passer par new Date() qui provoquait des conversions UTC. Les corrections incluent : parseLocalDateTime côté serveur, safeFormatDate dans le formulaire d'édition, formatDate dans AdminSequences, Inscription et AdminSequenceInscrits. L'heure saisie correspond désormais exactement à l'heure affichée partout dans l'application. 2025-11-13 03:23:12 -05:00
Manus Sandbox
fedfcc59a4 Checkpoint: Correction définitive du décalage horaire lors de l'enregistrement des dates. La fonction parseLocalDateTime parse maintenant manuellement les composants de la date (année, mois, jour, heures, minutes) et construit un objet Date en utilisant le constructeur avec les valeurs locales, évitant ainsi toute conversion UTC automatique. L'heure saisie (ex: 15h00) est désormais correctement enregistrée en base sans décalage. 2025-11-12 12:27:03 -05:00
Manus Sandbox
f266e8dde8 Checkpoint: Amélioration de la gestion d'erreurs pour la modification des séquences : ajout de validation dans parseLocalDateTime, protection contre les valeurs nulles dans handleEdit avec fonction safeFormatDate, remplacement de invalidate() par refetch() pour forcer le rafraîchissement immédiat, et ajout de logs détaillés côté serveur pour faciliter le débogage. 2025-11-12 12:01:14 -05:00
Manus Sandbox
7135a9d2c6 Checkpoint: Correction du décalage d'une heure entre la saisie et l'affichage des dates de séquences. Création d'un module dateUtils.ts avec des fonctions parseLocalDateTime et formatToLocalDateTime pour gérer correctement les conversions entre heure locale et UTC. Toutes les procédures de création et mise à jour de séquences utilisent maintenant ces fonctions pour préserver l'heure locale saisie par l'utilisateur. 2025-11-12 11:35:01 -05:00
Manus Sandbox
d198d4ce3f Checkpoint: Correction du calcul du nombre d'inscrits sur la page d'inscription publique - le frontend utilisait uniquement capaciteMax au lieu de calculer capaciteMax - nbInscrits. Ajout de logs de débogage côté client et serveur pour investiguer le problème de modification des heures des séquences qui persiste malgré les corrections précédentes. 2025-11-12 10:44:41 -05:00
Manus Sandbox
12bfc657e5 Checkpoint: Correction du bug de modification des horaires des séquences. Le problème venait du fait que les champs de la procédure update étaient marqués comme optionnels, ce qui empêchait la mise à jour correcte des dates. Tous les champs sont maintenant obligatoires et les dates sont systématiquement supprimées puis recréées lors de la modification pour garantir la cohérence des données. 2025-11-12 10:25:13 -05:00
Manus Sandbox
b60250e265 Checkpoint: Correction de l'erreur React "Cannot update a component while rendering" dans Home.tsx. L'appel de setLocation pour la redirection automatique des admins a été déplacé dans un useEffect pour respecter les règles de React et éviter les mises à jour de composants pendant le rendu. 2025-11-12 10:10:31 -05:00
Manus Sandbox
5c9b6637c4 Checkpoint: Refonte majeure : transformation du système de sessions en séquences avec support de jusqu'à 4 dates par séquence. L'inscription à une séquence inscrit automatiquement l'apprenant à toutes les dates. Mise à jour complète du backend (schéma DB, procédures tRPC, emails, exports) et du frontend (AdminSequences, AdminSequenceInscrits, Inscription, Admin). Toutes les fonctionnalités existantes (filtres, statistiques, exports PDF/Excel, emails automatiques) sont préservées et adaptées au nouveau modèle. 2025-11-12 09:57:58 -05:00
Manus Sandbox
ca9b1c3d37 Checkpoint: Implémentation des trois améliorations demandées : ajout de filtres par fonction sur les pages apprenants et inscrits, création d'un graphique circulaire de répartition par fonction sur le tableau de bord avec recharts, et personnalisation des templates d'emails (confirmation, teaser, rappel J-7) incluant la fonction de l'apprenant dans la salutation. 2025-11-12 09:35:58 -05:00
Manus Sandbox
9d591b64ba Checkpoint: Ajout du champ "Fonction" (Directeur, Chef de service, Autre) dans la fiche apprenant : mise à jour du schéma de base de données, ajout dans les formulaires d'inscription et de gestion des apprenants, affichage dans le tableau des apprenants, et intégration dans tous les exports (Excel, PDF, feuille de présence). 2025-11-12 09:30:30 -05:00
Manus Sandbox
2e75838bed Checkpoint: Ajout de filtres complets sur la page de gestion des inscrits : recherche par nom/prénom/email, filtre par statut d'inscription (confirmée/liste d'attente/annulée), filtre par code établissement, tri par date d'inscription ou nom alphabétique, avec compteur de résultats filtrés. 2025-11-12 09:21:21 -05:00
Manus Sandbox
8a77f62723 Checkpoint: Ajout d'un système complet de filtres et de recherche : filtres par date, lieu, statut et capacité pour les sessions ; recherche par nom/description pour les formations ; recherche multi-critères pour les apprenants. Compteurs de résultats inclus. 2025-11-12 09:11:45 -05:00
Manus Sandbox
2c5bc825af Checkpoint: Corrections : mise à jour automatique de la liste des apprenants après inscription + envoi de notifications par email via le système Manus lors des inscriptions 2025-11-12 08:58:29 -05:00
Manus Sandbox
0fc35596d9 Checkpoint: Application complète de gestion des formations Manager Itinova avec toutes les fonctionnalités : gestion des formations/sessions/apprenants, système d'inscription avec validations, génération d'invitations Outlook, emails automatiques, exports PDF/Excel, et documentation complète. 2025-11-12 08:38:33 -05:00
Manus Sandbox
641200f3a4 Initial project bootstrap 2025-11-12 08:24:07 -05:00