5 Commits

Author SHA1 Message Date
Manus
99c0ee6bae Checkpoint: Correction de l'erreur "Cannot convert undefined or null to object" sur la page /admin/notifications :
**Problème identifié :**
- Incohérence entre le schéma Drizzle (`drizzle/schema.ts`) et le code (`notificationLogsDb.ts`)
- Le schéma utilisait des noms de colonnes et des types d'enum différents de ceux utilisés dans le code
- Cela causait l'erreur "Cannot convert undefined or null to object" lors de la récupération des données

**Corrections appliquées :**

1. **Mise à jour du schéma Drizzle (drizzle/schema.ts) :**
   - Renommé `destinataire` en `emailDestinataire` pour correspondre au code
   - Ajouté la colonne `sujet` (VARCHAR 500)
   - Ajouté la colonne `formateurId` (INT NULL)
   - Ajouté la colonne `metadata` (TEXT NULL)
   - Mis à jour l'enum `type` avec les bonnes valeurs : `remerciement`, `notification_formateur_inscription`, `notification_formateur_annulation`, `alerte_capacite`, `notification_liste_attente`
   - Mis à jour l'enum `statut` avec les bonnes valeurs : `success`, `failed`

2. **Amélioration de la gestion des valeurs null (notificationLogsDb.ts) :**
   - Ajout de vérifications null-safe dans `getNotificationStats()` pour éviter les erreurs lors du calcul du taux de succès
   - Ajout de valeurs par défaut pour `parType` et `evolutionParJour` (tableaux vides si undefined)
   - Ajout d'un mapping des logs pour s'assurer que tous les champs sont bien définis (null au lieu d'undefined)

**Tests réussis :**
-  Onglet "Statistiques" : affiche correctement 24 envois, 100% de succès, répartition par type et évolution par jour
-  Onglet "Historique" : affiche correctement les 24 notifications avec toutes les colonnes (Date, Type, Destinataire, Sujet, Formation/Séquence, Statut)
-  Pagination fonctionnelle (Page 1 sur 2)
-  Filtres disponibles (Type, Statut, Email, Date début, Date fin)

**Résultat :**
 L'erreur "Cannot convert undefined or null to object" est complètement résolue
 La page notifications fonctionne correctement avec toutes ses fonctionnalités
2026-01-20 12:07:33 -05:00
Manus
8ecb856191 Checkpoint: Améliorations techniques et documentation complètes :
- Correction des 170 erreurs TypeScript liées aux types templateType dans les procédures rappels.create et rappels.update (passage de z.string() à z.enum() avec les valeurs correctes)
- Nettoyage complet des fichiers de migration Drizzle (suppression des 32 anciens fichiers et génération d'une nouvelle migration propre 0000_clean_justice.sql)
- Création du guide utilisateur GUIDE_CONFIGURATION_ATTESTATIONS.md expliquant en détail le nouveau workflow de configuration des attestations (modes de génération et d'envoi, workflows recommandés, bonnes pratiques, dépannage)
2026-01-13 04:24:27 -05:00
Manus Sandbox
37e0f8da49 Rollback to 9d67724e 2025-11-19 08:41:10 -05:00
Manus Sandbox
5085159cf7 Rollback to 641200f3 2025-11-19 08:36:23 -05:00
Manus Sandbox
5f4a049e05 Checkpoint: Ajout du champ "Public cible" dans la fiche formation avec liste déroulante identique à celle de "Fonction" des apprenants (Directeur, Chef de service, Autre). Mise à jour du schéma de base de données, des procédures tRPC, du formulaire de gestion des formations avec affichage dans le tableau, et affichage du public cible sur la page d'inscription publique. 2025-11-13 10:35:54 -05:00