140 lines
6.8 KiB
Markdown
140 lines
6.8 KiB
Markdown
# Gestion des Formations Manager Itinova - TODO
|
||
|
||
## Phase 1 : Planification et initialisation
|
||
- [x] Initialiser le projet avec architecture full-stack
|
||
- [x] Créer le plan de développement
|
||
- [x] Créer le fichier todo.md
|
||
|
||
## Phase 2 : Modèle de données
|
||
- [x] Créer la table des formations (nom, description, lien unique)
|
||
- [x] Créer la table des sessions (dates, lieu, capacité max 12, statut blocage J-15)
|
||
- [x] Créer la table des inscriptions (apprenant, session, statut)
|
||
- [x] Créer la table des apprenants (nom, prénom, email, code établissement)
|
||
- [x] Implémenter les relations entre tables
|
||
- [x] Ajouter les contraintes d'unicité pour éviter les doubles inscriptions
|
||
|
||
## Phase 3 : Interface d'administration
|
||
- [x] Créer le dashboard administrateur avec navigation
|
||
- [x] Créer l'interface de gestion des formations (CRUD)
|
||
- [x] Créer l'interface de gestion des sessions (CRUD)
|
||
- [x] Créer l'interface de gestion des apprenants (CRUD)
|
||
- [x] Afficher les listes d'inscrits par session
|
||
- [x] Implémenter la gestion des rôles (admin DRH, responsable, stagiaire)
|
||
|
||
## Phase 4 : Système d'inscription
|
||
- [x] Créer la page d'inscription publique avec lien unique par formation
|
||
- [x] Implémenter la validation de capacité maximale (12 participants)
|
||
- [x] Implémenter la validation anti-double inscription
|
||
- [x] Implémenter le blocage des inscriptions/désinscriptions à J-15
|
||
- [x] Créer le système de liste d'attente si session complète
|
||
- [x] Afficher les sessions disponibles avec places restantes
|
||
|
||
## Phase 5 : Invitations et emails automatiques
|
||
- [x] Implémenter la génération d'invitations Outlook (.ics) avec statut " occupé "
|
||
- [x] Inclure le lieu de formation dans les invitations
|
||
- [x] Créer le système d'envoi d'emails automatiques
|
||
- [x] Créer le template email de confirmation d'inscription
|
||
- [x] Créer le template email teaser pour chaque groupe
|
||
- [x] Créer le template email de rappel à J-7
|
||
- [x] Implémenter l'envoi automatique des emails selon les événements
|
||
|
||
## Phase 6 : Exports
|
||
- [x] Implémenter l'export Excel des listes d'inscrits par session
|
||
- [x] Implémenter l'export PDF des listes d'inscrits par session
|
||
- [x] Créer la génération de feuille de présence PDF (nom, prénom, code établissement)
|
||
- [x] Ajouter les boutons d'export dans l'interface admin
|
||
|
||
## Phase 7 : Tests et documentation
|
||
- [x] Tester le flux complet d'inscription
|
||
- [x] Tester les validations et contraintes
|
||
- [x] Tester la génération des invitations et emails
|
||
- [x] Tester les exports PDF/Excel
|
||
- [x] Créer la documentation utilisateur
|
||
- [x] Créer la documentation d'administration
|
||
|
||
## P## Phase 8 : Livraison
|
||
- [x] Vérifier toutes les fonctionnalités
|
||
- [x] Créer un checkpoint final
|
||
- [x] Présenter l'application à l'utilisateur
|
||
|
||
## Corrections à apporter
|
||
|
||
- [x] Corriger la mise à jour de la liste des apprenants après inscription
|
||
- [x] Implémenter l'envoi effectif des emails de confirmation
|
||
|
||
## Nouvelles fonctionnalités
|
||
|
||
- [x] Ajouter des filtres de tri sur la page des sessions (date, lieu, places restantes)
|
||
- [x] Ajouter des filtres de recherche sur la page des formations
|
||
- [x] Ajouter des filtres de recherche sur la page des apprenants
|
||
|
||
- [x] Ajouter des filtres complets sur la page de gestion des inscrits (recherche, statut, établissement, tri par date)
|
||
|
||
- [x] Ajouter le champ "Fonction" (Directeur, Chef de service, Autre) dans la fiche apprenant
|
||
- [x] Mettre à jour le schéma de base de données
|
||
- [x] Mettre à jour les formulaires d'inscription et de gestion
|
||
- [x] Ajouter la fonction dans les exports PDF/Excel
|
||
|
||
## Améliorations supplémentaires
|
||
|
||
- [x] Ajouter un filtre par fonction sur la page des apprenants
|
||
- [x] Ajouter un filtre par fonction sur la page des inscrits
|
||
- [x] Créer des statistiques de répartition par fonction sur le tableau de bord
|
||
- [x] Ajouter des graphiques de visualisation des données
|
||
- [x] Personnaliser les templates d'emails avec la fonction de l'apprenant
|
||
|
||
## Refonte : Sessions → Séquences avec dates multiples
|
||
|
||
- [x] Renommer "Session" en "Séquence" dans le schéma de base de données
|
||
- [x] Créer une table pour gérer jusqu'à 4 dates par séquence
|
||
- [x] Mettre à jour toutes les procédures tRPC pour utiliser "séquence"
|
||
- [x] Renommer toutes les interfaces et pages (AdminSessions → AdminSequences)
|
||
- [x] Adapter le formulaire de création/édition pour gérer 4 dates
|
||
- [x] Mettre à jour la page d'inscription pour afficher toutes les dates d'une séquence
|
||
- [x] Modifier la logique d'inscription pour inscrire à toutes les dates
|
||
- [x] Mettre à jour les exports PDF/Excel avec toutes les dates
|
||
- [x] Adapter les emails pour inclure toutes les dates de la séquence
|
||
- [x] Mettre à jour les invitations Outlook pour créer 4 événements si nécessaire
|
||
- [x] Renommer partout dans l'interface utilisateur (labels, titres, descriptions)
|
||
|
||
## Corrections urgentes
|
||
|
||
- [x] Corriger l'erreur React "Cannot update a component while rendering" dans Home.tsx
|
||
|
||
- [x] Corriger le bug de modification des horaires des séquences
|
||
|
||
- [x] Corriger le décalage d'une heure lors de l'enregistrement des dates (15h00 saisi devient 16h00 en base)
|
||
- [x] Corriger la mise à jour du nombre d'inscrits sur la page d'inscription publique
|
||
|
||
- [x] Corriger le décalage d'une heure entre la saisie et l'affichage des dates de séquences
|
||
|
||
- [x] Corriger le décalage d'une heure à l'affichage des dates (problème de formatage lors de la récupération)
|
||
|
||
- [x] Corriger les fonctions formatDate pour gérer les objets Date JavaScript en plus des chaînes MySQL
|
||
|
||
- [x] Forcer le fuseau horaire Europe/Paris dans la connexion MySQL pour éliminer le décalage d'une heure
|
||
|
||
- [x] Corriger le décalage horaire persistant dans parseLocalDateTime (09:48 envoyé devient 10:48 en base)
|
||
|
||
- [x] Corriger l'erreur "toISOString is not a function" lors de la modification de séquences
|
||
|
||
- [x] Ajouter le champ "Public cible" dans la fiche formation avec liste déroulante (Directeur, Chef de service, Autre)
|
||
- [x] Mettre à jour le schéma de base de données pour les formations
|
||
- [x] Mettre à jour les formulaires de gestion des formations
|
||
- [x] Afficher le public cible dans les listes et exports
|
||
|
||
- [x] Déplacer le champ "Public cible" des formations vers les séquences
|
||
- [x] Retirer publicCible du schéma formations
|
||
- [x] Ajouter publicCible au schéma sequences
|
||
- [x] Mettre à jour les procédures tRPC pour sequences
|
||
- [x] Mettre à jour le formulaire de création/édition de séquences
|
||
- [x] Afficher le public cible dans la liste des séquences
|
||
- [x] Afficher le public cible par séquence sur la page d'inscription publique
|
||
|
||
- [x] Corriger le formulaire de modification des séquences pour afficher le champ Public cible
|
||
|
||
## Bugs critiques à corriger
|
||
|
||
- [x] La validation d'une inscription ne fonctionne pas (déjà corrigé dans la version restaurée)
|
||
- [x] Lorsqu'un apprenant s'inscrit, il n'apparaît pas dans la liste des apprenants (déjà corrigé dans la version restaurée)
|