✅ **Nouvelles fonctionnalités** : **Base de données** : - Nouvelle table `supportsFormation` pour stocker les documents uploadés par les formateurs - Champs : sequenceId, formateurId, nomFichier, typeFichier, tailleFichier, urlFichier, s3Key, description - Migration effectuée avec succès **Backend (server/formateurDb.ts)** : - `getCalendrierFormateur()` : Récupère les interventions à venir avec dates, lieux et nombre d'inscrits - `getApprenantsSequence()` : Liste des apprenants inscrits à une séquence - `getSupportsSequence()` : Liste des supports de formation d'une séquence - `ajouterSupport()` : Upload d'un nouveau support - `supprimerSupport()` : Suppression d'un support avec vérification de propriété - `validerPresence()` : Validation de la présence d'un apprenant - `getHistoriqueFormateur()` : Historique des formations passées avec statistiques - `getDetailSequence()` : Détails complets d'une séquence avec dates **API tRPC (server/routers.ts)** : - `formateur.calendrier` : Calendrier des interventions avec filtres de dates - `formateur.apprenants` : Liste des apprenants d'une séquence - `formateur.supports` : Gestion des supports (liste, ajout, suppression) - `formateur.validerPresence` : Validation des présences en ligne - `formateur.historique` : Historique complet des formations - `formateur.detailSequence` : Détails d'une séquence **Pages frontend** : - `/formateur` : **FormateurDashboard** - Calendrier des interventions à venir groupées par date - `/formateur/sequence/:id` : **FormateurSequence** - Détails séquence avec onglets Apprenants et Supports - `/formateur/historique` : **FormateurHistorique** - Historique des formations avec taux de présence **Fonctionnalités implémentées** : - 📅 Calendrier des interventions avec dates, heures, lieux et nombre d'inscrits - 👥 Liste des apprenants avec informations complètes (nom, email, fonction, établissement) - ✅ Validation des présences en ligne avec checkboxes interactives - 📎 Gestion des supports de formation (liste, téléchargement) - 📊 Historique des formations avec statistiques (inscrits, présents, taux) - 🎨 Interface moderne avec cartes, tableaux et onglets **Notes** : - L'ID du formateur est actuellement fixé à 1 (TODO: lier à l'utilisateur connecté) - La fonctionnalité d'upload de supports est préparée mais nécessite l'implémentation du composant d'upload - Les présences sont gérées via le statut de l'inscription (confirmée/annulée)
146 lines
2.9 KiB
JSON
146 lines
2.9 KiB
JSON
{
|
|
"version": "7",
|
|
"dialect": "mysql",
|
|
"entries": [
|
|
{
|
|
"idx": 0,
|
|
"version": "5",
|
|
"when": 1762953852020,
|
|
"tag": "0000_charming_grey_gargoyle",
|
|
"breakpoints": true
|
|
},
|
|
{
|
|
"idx": 1,
|
|
"version": "5",
|
|
"when": 1762953926304,
|
|
"tag": "0001_smooth_warbird",
|
|
"breakpoints": true
|
|
},
|
|
{
|
|
"idx": 2,
|
|
"version": "5",
|
|
"when": 1762957612797,
|
|
"tag": "0002_fuzzy_sugar_man",
|
|
"breakpoints": true
|
|
},
|
|
{
|
|
"idx": 3,
|
|
"version": "5",
|
|
"when": 1762958719297,
|
|
"tag": "0003_steady_mystique",
|
|
"breakpoints": true
|
|
},
|
|
{
|
|
"idx": 4,
|
|
"version": "5",
|
|
"when": 1763047968048,
|
|
"tag": "0004_futuristic_malice",
|
|
"breakpoints": true
|
|
},
|
|
{
|
|
"idx": 5,
|
|
"version": "5",
|
|
"when": 1763050409917,
|
|
"tag": "0005_cuddly_bushwacker",
|
|
"breakpoints": true
|
|
},
|
|
{
|
|
"idx": 6,
|
|
"version": "5",
|
|
"when": 1763412717239,
|
|
"tag": "0006_lame_madrox",
|
|
"breakpoints": true
|
|
},
|
|
{
|
|
"idx": 7,
|
|
"version": "5",
|
|
"when": 1763414014386,
|
|
"tag": "0007_awesome_genesis",
|
|
"breakpoints": true
|
|
},
|
|
{
|
|
"idx": 8,
|
|
"version": "5",
|
|
"when": 1763416801277,
|
|
"tag": "0008_jittery_fenris",
|
|
"breakpoints": true
|
|
},
|
|
{
|
|
"idx": 9,
|
|
"version": "5",
|
|
"when": 1763448844826,
|
|
"tag": "0009_polite_senator_kelly",
|
|
"breakpoints": true
|
|
},
|
|
{
|
|
"idx": 10,
|
|
"version": "5",
|
|
"when": 1763628773882,
|
|
"tag": "0010_aspiring_kitty_pryde",
|
|
"breakpoints": true
|
|
},
|
|
{
|
|
"idx": 11,
|
|
"version": "5",
|
|
"when": 1763630439521,
|
|
"tag": "0011_natural_cyclops",
|
|
"breakpoints": true
|
|
},
|
|
{
|
|
"idx": 12,
|
|
"version": "5",
|
|
"when": 1763737191050,
|
|
"tag": "0012_dapper_ronan",
|
|
"breakpoints": true
|
|
},
|
|
{
|
|
"idx": 13,
|
|
"version": "5",
|
|
"when": 1763927796862,
|
|
"tag": "0013_demonic_trish_tilby",
|
|
"breakpoints": true
|
|
},
|
|
{
|
|
"idx": 14,
|
|
"version": "5",
|
|
"when": 1763933695050,
|
|
"tag": "0014_calm_thanos",
|
|
"breakpoints": true
|
|
},
|
|
{
|
|
"idx": 15,
|
|
"version": "5",
|
|
"when": 1764056078540,
|
|
"tag": "0015_young_moonstone",
|
|
"breakpoints": true
|
|
},
|
|
{
|
|
"idx": 16,
|
|
"version": "5",
|
|
"when": 1764329348207,
|
|
"tag": "0016_romantic_sinister_six",
|
|
"breakpoints": true
|
|
},
|
|
{
|
|
"idx": 17,
|
|
"version": "5",
|
|
"when": 1764540514199,
|
|
"tag": "0017_unique_skrulls",
|
|
"breakpoints": true
|
|
},
|
|
{
|
|
"idx": 18,
|
|
"version": "5",
|
|
"when": 1764934995109,
|
|
"tag": "0018_smooth_purifiers",
|
|
"breakpoints": true
|
|
},
|
|
{
|
|
"idx": 19,
|
|
"version": "5",
|
|
"when": 1765143202063,
|
|
"tag": "0019_unknown_nomad",
|
|
"breakpoints": true
|
|
}
|
|
]
|
|
} |