Commit Graph

135 Commits

Author SHA1 Message Date
Manus Sandbox
40964c8369 Checkpoint: Ajout de la possibilité d'envoyer des emails via SMTP directement (sans Resend) :
**Modifications de la base de données** :
- Ajout des champs SMTP dans la table `emailConfig` : smtpHost, smtpPort, smtpSecure, smtpUser, smtpPassword

**Backend** :
- Installation de `nodemailer` pour l'envoi SMTP
- Création de `server/_core/smtpSender.ts` avec les fonctions d'envoi SMTP et de test de connexion
- Modification de `server/_core/emailSender.ts` pour supporter les deux méthodes (Resend et SMTP)
- Priorité donnée à SMTP si configuré, sinon fallback sur Resend

**Frontend** :
- Mise à jour de `AdminEmailConfig.tsx` pour permettre le choix entre Resend et SMTP
- Ajout d'un sélecteur de méthode d'envoi (Resend API / SMTP Direct)
- Formulaire de configuration SMTP avec :
  * Hôte SMTP (ex: smtp.gmail.com)
  * Port (587, 465, 25)
  * Sécurité (TLS, SSL, None)
  * Identifiants (utilisateur/mot de passe)
  * Email expéditeur

**Compatibilité** :
- Support des principaux fournisseurs SMTP (Gmail, Outlook, serveurs SMTP personnalisés)
- Instructions pour les mots de passe d'application Gmail
- Mode simulation toujours disponible pour les tests
2025-11-28 06:33:25 -05:00
Manus Sandbox
3647443898 Checkpoint: Corrections apportées :
1. Bug décalage horaire dans le formulaire d'édition des séquences
   - Correction de la fonction safeFormatDate pour utiliser les méthodes locales (getHours, getMinutes) au lieu des méthodes UTC
   - Les heures saisies (ex: 9h00) s'affichent maintenant correctement dans le formulaire d'édition

2. Ajout du menu de navigation sur la page Import Excel
   - Intégration du DashboardLayout wrapper dans AdminImportExcel.tsx
   - Le menu latéral s'affiche maintenant correctement sur cette page

3. Déplacement du menu "Import Excel"
   - Déplacé du bloc GESTION vers le bloc CONFIGURATION dans le menu de navigation
   - Positionné après "Utilisateurs" et avant "Rappels" pour une meilleure organisation
2025-11-27 05:39:37 -05:00
Manus Sandbox
6f6d7e8f7f Checkpoint: Correction du décalage horaire dans la gestion des séquences - Utilisation des méthodes UTC (getUTCHours, getUTCMinutes, etc.) pour l'affichage des dates et conversion locale vers UTC lors de l'envoi au serveur. Les heures saisies (ex: 9h00) sont maintenant correctement enregistrées et affichées. 2025-11-27 04:17:13 -05:00
Manus Sandbox
f5dfb20e9a Checkpoint: Ajout de la fonctionnalité d'import Excel pour créer des formations et séquences en masse. Inclut le template Excel, la logique backend de parsing et validation, l'interface frontend avec prévisualisation, et la documentation utilisateur complète. 2025-11-25 05:49:13 -05:00
Manus Sandbox
625cbedf08 Checkpoint: Améliorations majeures du calendrier : ajout de filtres (formation, lieu, public cible), vues alternatives (semaine, jour) et exports (PDF, iCal) 2025-11-24 12:17:03 -05:00
Manus Sandbox
14aa8c5f21 Checkpoint: Correction du bug React #31 dans le calendrier - Erreur lors du survol des vignettes de séquences
Corrections apportées:
- Utilisation de clés stables (format yyyy-MM-dd) au lieu de day.toISOString() pour éviter l'erreur React #31
- Gestion correcte des objets Date vs strings pour dateBloquage dans le modal
- Gestion correcte du champ formateur qui peut être un objet ou une string
- Ajout de clés uniques pour les dates de formation dans le modal

Le calendrier fonctionne maintenant sans erreur lors du survol et de l'ouverture des modals de détails.
2025-11-24 09:29:03 -05:00
Manus Sandbox
7a737c0593 Checkpoint: Modification de la couleur des titres des zones du menu (TABLEAU DE BORD, GESTION, CONFIGURATION, ANALYSES) en bleu pour améliorer la visibilité et la cohérence visuelle 2025-11-23 18:07:40 -05:00
Manus Sandbox
b96c84d615 Checkpoint: Réorganisation du menu de navigation en 4 zones distinctes avec séparateurs visuels et titres de sections : Tableau de bord, Gestion (Formations, Séquences, Calendrier, Apprenants), Configuration (Utilisateurs, Rappels, Templates d'emails, Configuration SMTP), Analyses (Établissements, Tableau de bord analytique, Rapport public cible) 2025-11-23 18:05:00 -05:00
Manus Sandbox
1e4543e672 Checkpoint: Correction de l'erreur React #31 dans le modal de détails du calendrier en gérant correctement la conversion des objets Date en string avant affichage 2025-11-23 17:55:36 -05:00
Manus Sandbox
65a2d00358 Checkpoint: Correction de l'erreur d'affichage au clic sur un événement du calendrier (ajout import useState manquant) et correction du menu invisible sur la page Établissements (ajout DashboardLayout wrapper) 2025-11-23 17:48:36 -05:00
Manus Sandbox
a0049436cc Checkpoint: Ajout de badges Actif/Inactif dans la liste des apprenants et création d'une page dédiée aux établissements avec statistiques de participation 2025-11-23 17:28:12 -05:00
Manus Sandbox
9a38fc9dd3 Checkpoint: Amélioration visuelle de la page des apprenants : l'icône œil (visualisation) s'affiche en bleu, l'icône corbeille en rouge pour mieux signaler l'action destructive. La fonction de chaque apprenant est maintenant colorée (Directeurs en bleu, Chefs de service en vert, Autre en gris) pour faciliter l'identification visuelle rapide et maintenir une cohérence avec le reste de l'interface. 2025-11-23 17:22:05 -05:00
Manus Sandbox
193ffd7ecc Checkpoint: Correction de l'algorithme de génération de couleur pour les formations : utilisation d'un mapping basé sur l'ordre d'apparition des formations plutôt que sur leur ID. Chaque formation reçoit maintenant une couleur unique parmi 10 couleurs disponibles (bleu, violet, rose, indigo, cyan, teal, violet, fuchsia, sky, amber), garantissant une distinction visuelle claire entre toutes les formations dans le tableau des séquences. 2025-11-23 17:17:47 -05:00
Manus Sandbox
d2bb185ea5 Checkpoint: Amélioration visuelle de la fenêtre des séquences : l'icône œil (visualisation) s'affiche maintenant en bleu pour mieux la distinguer. Chaque formation a une couleur unique (bleu, violet, rose, indigo, cyan, etc.) appliquée à son nom dans le tableau, facilitant l'identification visuelle rapide des séquences par formation sans utiliser vert, orange ou rouge déjà réservés aux indicateurs de capacité. 2025-11-23 17:12:59 -05:00
Manus Sandbox
41fc4874fd Checkpoint: Amélioration visuelle de la gestion des séquences : le taux de remplissage (pourcentage) s'affiche maintenant en couleur conditionnelle (vert pour <70%, orange pour 70-90%, rouge pour >90%) pour faciliter l'identification rapide des séquences proches de la capacité maximale. L'icône corbeille de suppression est maintenant affichée en rouge pour mieux signaler l'action destructive. 2025-11-23 17:05:45 -05:00
Manus Sandbox
3ec648f8cf Checkpoint: Ajout du graphique de répartition par établissement sur le tableau de bord principal, affiché côte à côte avec le graphique de répartition par fonction. Le graphique affiche le top 10 des établissements avec le plus d'apprenants inscrits, utilisant des couleurs distinctes pour faciliter la lecture. Les deux graphiques sont maintenant visibles en grille responsive (2 colonnes sur desktop, 1 colonne sur mobile). 2025-11-23 16:48:29 -05:00
Manus Sandbox
a807183e2b Checkpoint: Correction de l'incohérence dans les statistiques de répartition des apprenants par fonction. Le tableau de bord principal et le tableau de bord analytique affichent maintenant les mêmes pourcentages car ils comptent tous les deux le nombre d'apprenants (et non le nombre d'inscriptions). Les deux graphiques sont maintenant cohérents. 2025-11-23 16:42:38 -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
64db3f1aa6 Checkpoint: Création d'un tableau de bord analytique avancé avec graphiques interactifs (Recharts). Affiche les statistiques globales, l'évolution temporelle des inscriptions par mois, le taux de remplissage des séquences, le top 10 des établissements participants et la répartition par fonction. Accessible via le menu "Tableau de bord analytique". 2025-11-23 16:25:22 -05:00
Manus Sandbox
33161d1a4d Checkpoint: Implémentation complète du remplacement automatique des variables dans les emails et ajout d'un bouton d'aperçu. Les variables {{nomApprenant}}, {{prenomApprenant}}, {{nomFormation}}, {{nomSequence}}, {{dateDebut}}, {{dateFin}}, {{lieu}}, {{formateur}} sont automatiquement remplacées lors de l'envoi d'emails. Un bouton "Aperçu email" permet de visualiser le rendu final avec des données d'exemple avant l'envoi. 2025-11-23 16:14:53 -05:00
Manus Sandbox
4e825dbf99 Checkpoint: Correction de l'erreur de compatibilité React Quill avec React 19. Remplacement par TipTap (éditeur moderne compatible React 19). Barre d'outils complète (gras, italique, barré, titres H2/H3, listes). 7 boutons de variables dynamiques fonctionnels. Prévisualisation HTML en temps réel. Imports corrigés pour utiliser les exports nommés. 2025-11-23 16:05:38 -05:00
Manus Sandbox
e16bdb22a1 Checkpoint: Ajout d'un éditeur de texte riche (React Quill) pour formater facilement le contenu des emails (gras, italique, listes, couleurs, liens). Ajout de 7 boutons pour insérer rapidement des variables dynamiques : {{nomApprenant}}, {{prenomApprenant}}, {{nomFormation}}, {{nomSequence}}, {{dateDebut}}, {{lieu}}, {{formateur}}. La prévisualisation affiche le contenu HTML formaté en temps réel. 2025-11-23 15:36:56 -05:00
Manus Sandbox
3de0e39350 Checkpoint: Amélioration de la prévisualisation des templates d'emails : la prévisualisation affiche maintenant en temps réel le contenu saisi dans le champ "Corps du message". Lorsque le champ est vide, un message d'aide s'affiche. Le contenu se met à jour automatiquement pendant la saisie, permettant de visualiser exactement l'email final avant de l'enregistrer. 2025-11-23 15:29:04 -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
ccb1484839 Checkpoint: Amélioration de la page de choix de connexion : ajout de la détection automatique de l'état de connexion. Les utilisateurs déjà connectés sont maintenant redirigés automatiquement vers le tableau de bord admin, tandis que les utilisateurs non connectés voient la page de choix entre connexion Manus OAuth et connexion locale. Cela évite d'afficher la page de choix inutilement aux utilisateurs déjà authentifiés. 2025-11-23 06:22:04 -05:00
Manus Sandbox
92d5825ead Checkpoint: Correction de la redirection après déconnexion : l'utilisateur est maintenant redirigé vers la page de choix de connexion (/) après s'être déconnecté, au lieu de rester sur la même page. Cela permet de choisir à nouveau entre connexion Manus OAuth et connexion locale après chaque déconnexion. 2025-11-23 06:16:58 -05:00
Manus Sandbox
83b32f44ab Checkpoint: Ajout d'une page de choix de connexion à la racine (/) permettant de sélectionner entre "Connexion Manus OAuth" et "Connexion locale". La page affiche deux cartes avec icônes distinctes (bouclier bleu pour OAuth, clé verte pour connexion locale) et redirige vers la page appropriée selon le choix de l'utilisateur. Cette page résout le problème de redirection automatique vers OAuth en production en offrant un point d'entrée clair pour les deux modes d'authentification. 2025-11-23 05:45:41 -05:00
Manus Sandbox
fe8b8e90c4 Checkpoint: Ajout d'une page de connexion locale permettant aux utilisateurs de se connecter avec leur identifiant et mot de passe (username/password) au lieu de l'OAuth Manus. Implémentation complète avec route d'authentification backend, hashage bcrypt, session JWT, et reconnaissance automatique des sessions locales vs OAuth. Tests unitaires et manuels réussis avec l'utilisateur adminServFormation. 2025-11-23 04:59:54 -05:00
Manus Sandbox
b2e7505afb Checkpoint: Email modifiable pour l'utilisateur administrateur
Modification apportée :
- Le champ email est maintenant modifiable pour l'utilisateur adminServFormation
- Mise à jour du message dans le formulaire d'édition : "Seuls l'email et le mot de passe peuvent être modifiés pour cet utilisateur"
- Les champs nom et identifiant restent en lecture seule (grisés et désactivés)
- Les champs email, mot de passe et rôle sont modifiables pour cet utilisateur spécial
2025-11-21 10:39:00 -05:00
Manus Sandbox
422f5634f9 Checkpoint: Création d'un utilisateur administrateur spécial non supprimable
Modifications apportées :
- Création de l'utilisateur "Administrateur" avec identifiant "adminServFormation" et mot de passe "Itinova69!" (hashé avec bcrypt)
- Modification de l'interface pour désactiver le bouton de suppression pour cet utilisateur (grisé avec tooltip explicatif)
- Modification du formulaire d'édition pour rendre les champs nom, email et identifiant en lecture seule (grisés et désactivés)
- Ajout d'un message explicatif dans le formulaire : "Seul le mot de passe peut être modifié pour cet utilisateur"
- Seuls les champs "Nouveau mot de passe" et "Rôle" restent modifiables pour cet utilisateur
- L'utilisateur est identifié par son username "adminServFormation" pour appliquer les restrictions
- Cet utilisateur ne peut pas être supprimé et ses informations de base ne peuvent pas être modifiées, garantissant un accès administrateur permanent au système
2025-11-21 10:18:49 -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
2975d92568 Checkpoint: Ajout de la fonctionnalité "Détail par apprenant"
 Nouvelle procédure tRPC `apprenants.getInscriptions` pour récupérer toutes les inscriptions d'un apprenant avec les détails de formation et séquence
 Nouvelle page AdminApprenantDetail (/admin/apprenants/:id) affichant :
   - Informations personnelles de l'apprenant (nom, prénom, email, code établissement, fonction)
   - Tableau complet de toutes ses inscriptions avec :
     * Nom de la formation
     * Nom de la séquence
     * Toutes les dates de la séquence
     * Lieu
     * Public cible
     * Date d'inscription
     * Statut (avec badge coloré : vert pour confirmée, gris pour en attente, rouge pour annulée)
 Bouton "Détail" (icône œil) ajouté dans la colonne Actions de la page AdminApprenants
 Route /admin/apprenants/:id configurée dans App.tsx
 Bouton "Retour aux apprenants" pour navigation facile

Correction appliquée : La procédure getInscriptions extrait maintenant correctement l'objet inscription du résultat retourné par getInscriptionsByApprenant.

Tests réussis : Affichage correct des inscriptions pour l'apprenant "Nouveau Apprenant" (1 inscription à la séquence "Groupe A" avec statut confirmée).
2025-11-20 11:00:53 -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
01c23405af Checkpoint: Corrections d'affichage du formateur :
- Correction du placeholder du formateur dans le formulaire de modification de séquence (suppression de "(optionnel)")
- 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é
- Tests réussis : le placeholder est correct et la colonne formateur est visible
2025-11-19 12:28:18 -05:00
Manus Sandbox
4a48164461 Checkpoint: Corrections d'affichage du nom de formation dans le calendrier :
- Création de getSequencesWithFormation() pour récupérer les informations de formation
- Mise à jour de la procédure sequences.list pour utiliser la nouvelle fonction
- Correction de AdminCalendrier.tsx pour utiliser formation.nom au lieu de formation.titre
- Le nom de la formation s'affiche maintenant correctement dans le calendrier et dans le dialog de détails
- Vérification que le placeholder du FormateurCombobox est correct
2025-11-19 12:17:52 -05:00
Manus Sandbox
6264693dff Checkpoint: Trois corrections appliquées
 **1. Champ formateur dans nouvelle séquence**
Ajout du champ formateur avec autocomplétion dans le formulaire de création de séquence, permettant de sélectionner ou ajouter rapidement un formateur.

 **2. Placeholder du formateur**
Le placeholder affiche "Sélectionner un formateur" (déjà correct par défaut dans le composant).

 **3. Nom séquence + formation dans calendrier**
Le calendrier affiche maintenant le nom de la séquence ET le nom de la formation associée pour une meilleure identification visuelle.
2025-11-19 12:03:25 -05:00
Manus Sandbox
1eba34a31f Checkpoint: Trois corrections appliquées
 **1. "Tous" dans le formulaire nouvelle séquence**
Ajout de l'option "Tous" dans la liste des publics cible du formulaire de création de séquence, avec badge violet et labels correspondants.

 **2. Couleurs de la barre de progression**
Correction du composant Progress pour supporter `indicatorClassName`. La barre affiche maintenant les bonnes couleurs selon le taux de remplissage : vert (<70%), orange (70-90%), rouge (>90%).

 **3. Informations complètes dans le calendrier**
Enrichissement des cases du calendrier avec lieu, formateur et nombre d'inscrits pour chaque séquence, permettant une vue d'ensemble plus complète.
2025-11-19 11:54:47 -05:00
Manus Sandbox
a130d464d0 Checkpoint: Correction bug calendrier - Gestion robuste des dates
 **Bug corrigé**

**Erreur "e.split is not a function"** : Ajout d'une vérification du type de `dateDebut` dans AdminCalendrier.tsx avant d'appeler `parseISO`. Le code gère maintenant trois cas :
- Si `dateDebut` est une chaîne : utilisation de `parseISO` pour la convertir en Date
- Si `dateDebut` est déjà un objet Date : utilisation directe
- Sinon : retour false pour ignorer cette date invalide

Le calendrier fonctionne maintenant correctement sans plantage, quel que soit le format des dates retournées par l'API.
2025-11-19 11:41:02 -05:00
Manus Sandbox
1ab817c9ea Checkpoint: Corrections de bugs : calendrier et taux de remplissage
 **Bugs corrigés**

1. **Calendrier de novembre vide** : Correction du nom de propriété dans AdminCalendrier.tsx - utilisation de `seq.dates` au lieu de `seq.datesFormation` pour correspondre aux données retournées par l'API

2. **Taux de remplissage toujours à 0%** : Ajout du calcul du nombre d'inscrits dans la procédure `sequences.list` (routers.ts ligne 127) - appel de `db.countInscriptionsBySequence(seq.id, 'confirmee')` pour chaque séquence

Les séquences s'affichent maintenant correctement dans le calendrier et la barre de progression colorée reflète le véritable taux de remplissage avec le code couleur approprié (vert/orange/rouge).
2025-11-19 11:35:24 -05:00
Manus Sandbox
4ce36ebbb0 Checkpoint: Ajout des pages Calendrier et Rappels dans le menu de navigation
 **Corrections apportées**
- Routes /admin/calendrier et /admin/rappels ajoutées dans App.tsx
- Liens "Calendrier" et "Rappels" ajoutés dans le menu de navigation (DashboardLayout)
- Imports des icônes CalendarDays et Bell ajoutés
- Pages AdminCalendrier et AdminRappels maintenant accessibles depuis le menu

 **Fonctionnalités complètes disponibles**
1. Barre de progression colorée dans le tableau des séquences
2. Vue calendrier mensuel avec navigation
3. Système de rappels automatiques configurables
4. Gestion des formateurs avec autocomplétion
5. Public cible "Tous" ajouté
6. Formulaires réorganisés sans chevauchement
2025-11-19 11:25:18 -05:00
Manus Sandbox
21b75d4464 Checkpoint: Checkpoint complet avec toutes les fonctionnalités développées
 **Fonctionnalités incluses**

**1. Gestion des formateurs**
- Table formateurs dans la base de données
- Composant FormateurCombobox avec autocomplétion
- Ajout rapide de nouveaux formateurs depuis le formulaire
- Champ formateur dans les séquences (création et modification)
- Affichage du formateur dans le tableau et les emails

**2. Barre de progression colorée**
- Composant CapacityProgressBar avec code couleur automatique
- Vert (<70%), Orange (70-90%), Rouge (>90%)
- Affichage "nbInscrits / capacité" + pourcentage
- Intégré dans le tableau des séquences

**3. Vue calendrier mensuel**
- Page AdminCalendrier avec navigation mois précédent/suivant
- Affichage des séquences sur leurs dates respectives
- Dialog de détails au clic sur une séquence
- Lien "Calendrier" dans le menu de navigation

**4. Système de rappels automatiques**
- Page AdminRappels pour configurer les rappels (J-15, J-7, J-1)
- Templates d'emails personnalisables avec variables dynamiques
- Activation/désactivation des rappels
- Infrastructure prête pour l'envoi automatique futur

**5. Améliorations diverses**
- Public cible "Tous" ajouté dans les options
- Formulaires de séquences réorganisés (pas de chevauchement)
- Affichage du formateur dans les emails d'invitation
- Colonne formateur dans le tableau des séquences
2025-11-19 11:20:40 -05:00
Manus Sandbox
b7cadc173b Checkpoint: Correction du bug FormateurCombobox manquant
 **Problème résolu**
- Le fichier FormateurCombobox.tsx avait été perdu lors d'une manipulation précédente
- Fichier recréé avec toutes les fonctionnalités :
  * Autocomplétion avec recherche en temps réel
  * Ajout rapide de nouveaux formateurs depuis le composant
  * Intégration complète avec tRPC

 **Import corrigé**
- Import ajouté dans AdminSequences.tsx
- Serveur redémarré pour détecter le nouveau fichier

Le formulaire de modification des séquences fonctionne maintenant correctement avec le champ formateur.
2025-11-19 10:53:22 -05:00
Manus Sandbox
2283e84b54 true message 2025-11-19 10:33:48 -05:00
Manus Sandbox
54cf4297bf Checkpoint: Corrections d'affichage pour la page de gestion des séquences
 **1. Fenêtre de modification agrandie**
- Largeur passée de max-w-3xl à max-w-4xl
- Les champs formateur et capacité ne se chevauchent plus
- Meilleure lisibilité de tous les champs du formulaire

 **2. Espacement amélioré dans la barre de progression**
- Ajout d'un gap de 4 unités entre la capacité et le pourcentage
- Meilleure séparation visuelle des informations
- Lecture plus claire du taux de remplissage

Ces ajustements améliorent l'ergonomie et la lisibilité de l'interface de gestion des séquences.
2025-11-19 10:19:34 -05:00
Manus Sandbox
770f803717 Checkpoint: Correction du bug "useMemo is not defined" dans AdminSequences.tsx
 Ajout de l'import manquant de useMemo depuis React
 La page Séquences fonctionne maintenant correctement sans erreur

Bug corrigé : L'erreur ReferenceError qui empêchait l'accès à la page de gestion des séquences a été résolue.
2025-11-19 10:04:18 -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
b9907f9cca Checkpoint: Corrections apportées à la gestion des séquences :
 Ajout du champ "Public cible" dans le dialogue de modification des séquences
- Le champ est maintenant visible et modifiable lors de l'édition d'une séquence
- Support complet de l'option "Tous" ajoutée précédemment

 Affichage du nombre d'inscrits dans la colonne capacité
- Format : "nombre d'inscrits / capacité" (ex: "5 / 12")
- Mise à jour de la procédure sequences.list pour inclure le comptage des inscriptions confirmées
- Mise à jour du schéma de validation pour inclure "tous" dans publicCible

Les deux problèmes signalés sont maintenant corrigés et l'application est prête à l'emploi.
2025-11-19 09:19:47 -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