Commit Graph

16 Commits

Author SHA1 Message Date
Manus
fc4df8ed36 Checkpoint: Correction des erreurs sur la page rapport-public-cible et harmonisation de la charte graphique des titres :
**Corrections d'erreurs :**

1. **Erreurs SQL DATE_FORMAT corrigées** (analyticsDb.ts) :
   - Remplacement des sous-requêtes corrélées par des JOIN dans getTauxRemplissageByMonth()
   - Utilisation de COUNT(CASE WHEN...) au lieu de SUM(SELECT COUNT(*))
   - Ajout de leftJoin pour éviter les erreurs de sous-requêtes

2. **Erreur React "Cannot read properties of null" corrigée** (AdminRapportPublicCible.tsx) :
   - Ajout de l'opérateur null-safe `?.` pour accéder à `insc.apprenant?.fonction`
   - Vérification explicite si la fonction est null/undefined
   - Gestion du cas "public cible = tous" qui correspond toujours

3. **Tests réussis** :
   - Page rapport-public-cible : affiche correctement les statistiques et recommandations
   - Tableau de bord analytique : graphiques et statistiques fonctionnels
   - Page suivi questionnaires : affiche correctement les données

**Harmonisation charte graphique :**

- Application du style bleu clair (#6B9FE8) avec ombre portée à tous les titres des 32 pages
- Création de la classe CSS `.page-title` réutilisable dans index.css
- Cohérence visuelle sur toute l'application

**Résultat :**
 Toutes les erreurs SQL et React sont corrigées
 Les pages fonctionnent correctement sans erreur
 Charte graphique harmonisée sur toutes les pages
2026-01-20 11:46:56 -05:00
Manus Sandbox
aa3e9fa093 Checkpoint: Correction du bug d'inscription qui associait le mauvais apprenant
Problème identifié :
- La procédure apprenants.create était une procédure admin (adminProcedure)
- La page d'inscription publique n'est pas authentifiée
- Lors de la création d'un apprenant, la mutation échouait silencieusement
- Le code récupérait ensuite un mauvais apprenant par email

Solution appliquée :
- Création d'une nouvelle procédure publique apprenants.createPublic
- Modification de Inscription.tsx pour utiliser createPublic au lieu de create
- Les nouveaux apprenants peuvent maintenant être créés depuis la page publique
- L'inscription associe maintenant le bon apprenant à la séquence
2025-12-01 04:52:59 -05:00
Manus Sandbox
2283e84b54 true message 2025-11-19 10:33:48 -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
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
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
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
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
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
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
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
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