# A.15.15.2 — Journal d'activités

## 15.2 Journal d'activités

### 15.2.1 Accéder au journal

Menu latéral → **Logs**.

`<callout class="info">📸 <strong>Capture d'écran à insérer :</strong> Page "Journal d'activités" : zone de filtres en haut (Recherche par description, Module/Log name, Type d'événement, Utilisateur auteur, Date de — Date jusqu'au, Nb par page, bouton Réinitialiser les filtres) ; tableau principal avec colonnes : Utilisateur (avatar + nom), Action/Description, Module concerné, Événement (badge : created/updated/deleted/validated), Objet modifié (type + ID), Date et heure ; pagination en bas ; lien "Voir les détails" sur chaque ligne</callout>`

### 15.2.2 Comprendre les colonnes du journal

<table id="bkmrk-colonne-description-"><thead><tr><th>Colonne</th><th>Description</th></tr></thead><tbody><tr><td>**Utilisateur**</td><td>L'utilisateur qui a réalisé l'action (nom + avatar). Les actions système automatisées (jobs, scheduler) sont identifiées par « Système »</td></tr><tr><td>**Description**</td><td>Résumé lisible de l'action (ex : « École Lycée de la Paix créée », « Élève Furaha Mwamba validée pour paiement tranche 1 »)</td></tr><tr><td>**Module**</td><td>Nom du journal auquel appartient cet événement (ex : `ecoles`, `eleves`, `paiements`, `utilisateurs`, `settings`)</td></tr><tr><td>**Événement**</td><td>Type d'action : `created` (création), `updated` (modification), `deleted` (suppression), ou événements métier spécifiques (`validated`, `rejected`, `sent`…)</td></tr><tr><td>**Objet modifié**</td><td>Type et identifiant de l'enregistrement concerné (ex : `Ecole #147`, `Eleve #2304`)</td></tr><tr><td>**Date et heure**</td><td>Horodatage précis de l'action (format `JJ/MM/AAAA HH:MM:SS`)</td></tr></tbody></table>

`<callout class="info">📸 <strong>Capture d'écran à insérer :</strong> Tableau du journal avec 5 lignes d'exemple : ligne 1 "Jean Mutombo | École Lycée de la Paix créée | ecoles | created | Ecole #147 | 12/06/2026 09:14:22" ; ligne 2 "Marie Kalala | Élève Furaha Mwamba validée pour paiement tranche 1 | paiements | validated | Eleve #2304 | 12/06/2026 10:31:07" ; ligne 3 "Système | QR Code généré | eleves | updated | Eleve #2304 | 12/06/2026 10:31:10" ; badges colorés pour chaque type d'événement (created=vert, updated=bleu, deleted=rouge, validated=violet)</callout>`

### 15.2.3 Filtrer le journal

La zone de filtres en haut de page permet de cibler rapidement les événements pertinents :

1. **Recherche par description** — Saisissez un mot-clé (nom d'école, nom d'élève, action…) pour filtrer les lignes dont la description contient ce terme.
2. **Module (Log name)** — Sélectionnez un module dans la liste déroulante pour n'afficher que les événements de ce module (ex : n'afficher que les logs du module paiements).
3. **Type d'événement** — Filtrez par type : `created`, `updated`, `deleted`, ou événements métier.
4. **Utilisateur auteur** — Sélectionnez un utilisateur dans la liste pour voir uniquement ses actions.
5. **Plage de dates** — Définissez une période (Date de / Date jusqu'au) pour restreindre la recherche à un intervalle temporel.
6. **Nombre par page** — Choisissez le nombre de lignes à afficher (10, 25, 50, 100).

`<callout class="info">📸 <strong>Capture d'écran à insérer :</strong> Zone de filtres du journal avec des sélections actives : Module "paiements" sélectionné, Événement "validated", Date de 01/06/2026 au 12/06/2026 ; le tableau en dessous n'affiche que les validations de paiements sur cette période</callout>`

Pour réinitialiser tous les filtres simultanément, cliquez sur **Réinitialiser les filtres**.

### 15.2.4 Consulter le détail d'un événement

Cliquez sur le lien **Voir les détails** sur une ligne du journal pour ouvrir la fenêtre modale de détail :

`<callout class="info">📸 <strong>Capture d'écran à insérer :</strong> Modale "Détails de l'événement" : bloc supérieur (Utilisateur : nom + avatar, Date : horodatage exact, Module, Événement, Objet concerné : type + ID + lien vers la fiche si applicable) ; bloc "Données avant modification" (ancien état JSON formaté et coloré) ; bloc "Données après modification" (nouvel état JSON formaté et coloré, différences surlignées en vert/rouge) ; bouton "Fermer"</callout>`

Cette vue de détail est particulièrement utile pour :  
\- Identifier précisément **quel champ a été modifié** et quelle était la valeur précédente  
\- Vérifier qu'une modification erronée peut être corrigée manuellement  
\- Fournir des preuves documentées en cas de contestation ou d'audit

ℹ️ **Note :** L'état « avant » est vide pour les événements de type `created` (l'enregistrement n'existait pas). L'état « après » est vide pour les événements de type `deleted`.

---