**Corrections d'erreurs :** 1. **Erreurs SQL DATE_FORMAT corrigées** (analyticsDb.ts) : - Remplacement des sous-requêtes corrélées par des JOIN dans getTauxRemplissageByMonth() - Utilisation de COUNT(CASE WHEN...) au lieu de SUM(SELECT COUNT(*)) - Ajout de leftJoin pour éviter les erreurs de sous-requêtes 2. **Erreur React "Cannot read properties of null" corrigée** (AdminRapportPublicCible.tsx) : - Ajout de l'opérateur null-safe `?.` pour accéder à `insc.apprenant?.fonction` - Vérification explicite si la fonction est null/undefined - Gestion du cas "public cible = tous" qui correspond toujours 3. **Tests réussis** : - Page rapport-public-cible : affiche correctement les statistiques et recommandations - Tableau de bord analytique : graphiques et statistiques fonctionnels - Page suivi questionnaires : affiche correctement les données **Harmonisation charte graphique :** - Application du style bleu clair (#6B9FE8) avec ombre portée à tous les titres des 32 pages - Création de la classe CSS `.page-title` réutilisable dans index.css - Cohérence visuelle sur toute l'application **Résultat :** ✅ Toutes les erreurs SQL et React sont corrigées ✅ Les pages fonctionnent correctement sans erreur ✅ Charte graphique harmonisée sur toutes les pages
58 lines
1.5 KiB
JSON
58 lines
1.5 KiB
JSON
{
|
|
"query": "DESCRIBE passwordResetTokens;",
|
|
"command": "mysql --batch --raw --column-names --default-character-set=utf8mb4 --host gateway02.us-east-1.prod.aws.tidbcloud.com --port 4000 --user 4CrrYuB5tme73Qo.root --database 7PAT67UmWoxv8vwp8Bbcv6 --execute DESCRIBE passwordResetTokens;",
|
|
"rows": [
|
|
{
|
|
"Field": "id",
|
|
"Type": "int(11)",
|
|
"Null": "NO",
|
|
"Key": "PRI",
|
|
"Default": "NULL",
|
|
"Extra": "auto_increment"
|
|
},
|
|
{
|
|
"Field": "userId",
|
|
"Type": "int(11)",
|
|
"Null": "NO",
|
|
"Key": "",
|
|
"Default": "NULL",
|
|
"Extra": ""
|
|
},
|
|
{
|
|
"Field": "token",
|
|
"Type": "varchar(255)",
|
|
"Null": "NO",
|
|
"Key": "UNI",
|
|
"Default": "NULL",
|
|
"Extra": ""
|
|
},
|
|
{
|
|
"Field": "expiresAt",
|
|
"Type": "timestamp",
|
|
"Null": "NO",
|
|
"Key": "",
|
|
"Default": "NULL",
|
|
"Extra": ""
|
|
},
|
|
{
|
|
"Field": "used",
|
|
"Type": "tinyint(1)",
|
|
"Null": "NO",
|
|
"Key": "",
|
|
"Default": "0",
|
|
"Extra": ""
|
|
},
|
|
{
|
|
"Field": "createdAt",
|
|
"Type": "timestamp",
|
|
"Null": "NO",
|
|
"Key": "",
|
|
"Default": "CURRENT_TIMESTAMP",
|
|
"Extra": ""
|
|
}
|
|
],
|
|
"messages": [],
|
|
"stdout": "Field\tType\tNull\tKey\tDefault\tExtra\nid\tint(11)\tNO\tPRI\tNULL\tauto_increment\nuserId\tint(11)\tNO\t\tNULL\t\ntoken\tvarchar(255)\tNO\tUNI\tNULL\t\nexpiresAt\ttimestamp\tNO\t\tNULL\t\nused\ttinyint(1)\tNO\t\t0\t\ncreatedAt\ttimestamp\tNO\t\tCURRENT_TIMESTAMP\t\n",
|
|
"stderr": "",
|
|
"execution_time_ms": 53
|
|
} |