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.

This commit is contained in:
Manus Sandbox
2025-11-12 09:57:58 -05:00
parent ca9b1c3d37
commit 5c9b6637c4
20 changed files with 2445 additions and 1410 deletions

View File

@@ -8,7 +8,7 @@ import { useMemo } from "react";
export default function Admin() {
const { data: formations, isLoading: loadingFormations } = trpc.formations.list.useQuery();
const { data: sessions, isLoading: loadingSessions } = trpc.sessions.list.useQuery();
const { data: sequences, isLoading: loadingSessions } = trpc.sequences.list.useQuery();
const { data: apprenants, isLoading: loadingApprenants } = trpc.apprenants.list.useQuery();
// Statistiques par fonction
@@ -34,8 +34,8 @@ export default function Admin() {
loading: loadingFormations,
},
{
title: "Sessions ouvertes",
value: sessions?.filter(s => s.statut === "ouverte").length || 0,
title: "Séquences ouvertes",
value: sequences?.filter(s => s.statut === "ouverte").length || 0,
icon: <Calendar className="w-8 h-8 text-green-500" />,
loading: loadingSessions,
},
@@ -46,8 +46,8 @@ export default function Admin() {
loading: loadingApprenants,
},
{
title: "Sessions terminées",
value: sessions?.filter(s => s.statut === "terminee").length || 0,
title: "Séquences terminées",
value: sequences?.filter(s => s.statut === "terminee").length || 0,
icon: <CheckCircle className="w-8 h-8 text-orange-500" />,
loading: loadingSessions,
},
@@ -132,7 +132,7 @@ export default function Admin() {
<CardHeader>
<CardTitle>Bienvenue dans l'espace d'administration</CardTitle>
<CardDescription>
Gérez vos formations, sessions et apprenants depuis le menu de navigation.
Gérez vos formations, sequences et apprenants depuis le menu de navigation.
</CardDescription>
</CardHeader>
<CardContent className="space-y-4">
@@ -140,7 +140,7 @@ export default function Admin() {
<h3 className="font-semibold">Fonctionnalités principales :</h3>
<ul className="list-disc list-inside space-y-1 text-sm text-muted-foreground">
<li>Créer et gérer les formations avec liens d'inscription uniques</li>
<li>Organiser les sessions avec limitation à 12 participants</li>
<li>Organiser les sequences avec limitation à 12 participants</li>
<li>Gérer les inscriptions avec blocage automatique à J-15</li>
<li>Exporter les listes d'inscrits en PDF ou Excel</li>
<li>Générer des invitations Outlook et envoyer des emails automatiques</li>