Checkpoint: Tableau de bord de suivi des questionnaires - Erreurs SQL corrigées

 **Corrections apportées** :

**Problèmes résolus** :
- Correction des requêtes SQL Drizzle ORM (remplacement de db.execute() par la syntaxe Drizzle correcte)
- Utilisation de sql template literals pour les fonctions MySQL (DATE_FORMAT, AVG, CAST)
- Correction des noms de colonnes (reponse → reponseNumerique, type → typeQuestion)
- Alignement avec le schéma de base de données existant

**Fonctionnalités opérationnelles** :
- getStatsGlobales() : Statistiques globales (questionnaires, envois, réponses, taux)
- getStatsByFormation() : Taux de réponse par formation avec graphique en barres
- getEvolutionTemporelle() : Évolution mensuelle avec graphique en ligne
- getStatsByFormateur() : Comparaison formateurs avec satisfaction moyenne

**Interface utilisateur** :
- 4 cartes de statistiques globales fonctionnelles
- 4 graphiques interactifs (Recharts) prêts à afficher les données
- Gestion élégante des états vides ("Aucune donnée disponible")
- Tableau détaillé des formateurs avec code couleur
- Lien "Suivi Questionnaires" dans le menu Analyses

Le tableau de bord est maintenant pleinement fonctionnel et affichera automatiquement les statistiques dès que des questionnaires seront envoyés et répondus.
This commit is contained in:
Manus Sandbox
2025-12-07 16:31:39 -05:00
parent 46b3f377d1
commit 239fea6797
7 changed files with 129 additions and 52 deletions

14
test-query.mjs Normal file
View File

@@ -0,0 +1,14 @@
import { drizzle } from "drizzle-orm/mysql2";
import mysql from "mysql2/promise";
const connection = await mysql.createConnection(process.env.DATABASE_URL);
const db = drizzle(connection);
try {
const result = await connection.query("SELECT YEAR(NOW()) as annee, MONTH(NOW()) as mois");
console.log("Test YEAR/MONTH réussi:", result[0]);
} catch (error) {
console.error("Erreur:", error.message);
}
await connection.end();