M-Audit - Audit de cohérence¶
Type : écran « Audit de cohérence », carte d'action du prisme Collecte & passages de M-Accueil. Persona principal : Samuel (garder une base saine sur la durée, sur un volume que l'œil ne couvre plus). Parcours couverts : transverse. L'écran ne sert aucun parcours de bout en bout : il se consulte quand un doute naît, souvent après un import, un dépôt ou un changement de disque. Épopées couvertes : E0.S11. Issues : #1133 (écran), #1254 (vérification en ligne), #1347 (audit ciblé et navigation vers le passage), #3100 (barre de filtres) - chantiers #1131 et #3092.
Trois vérités, trois endroits. Le travail de l'observateur vit sur le disque (les fichiers audio), dans la base (ce que l'application en sait) et sur Vigie-Chiro (ce que la plateforme a reçu). Ces trois-là divergent, et le plus souvent sans rien dire : un disque débranché, un fichier renommé à la main, un dépôt inachevé. Cet écran existe pour que plus rien ne diverge en silence.
Maquette principale - des écarts détectés¶
Annotations¶
- Le résumé chiffre, la table détaille (
lblResume). L'en-tête ventile les constats par gravité - « 2 écarts : 1 erreur, 0 avertissement, 1 info » - avant que l'utilisateur ne lise une seule ligne. Un audit se juge d'abord à sa forme : y a-t-il des erreurs, ou seulement des informations ? - Le verdict porte sur l'audit ENTIER, jamais sur ce qui est filtré. Poser une puce masque des lignes ; cela ne rend pas la base saine. Le résumé, le verdict et le code de sortie de la commande jumelle continuent donc de juger l'ensemble (ADR 3092). Sans cette règle,
audit-coherence --gravite INFOrendrait0sur un workspace abîmé, et un script d'intégration en conclurait que tout va bien. - Trois critères, aucun présélectionné (#3100) : Gravité, Catégorie, Passage. Un audit se lit d'abord en entier ; on filtre ensuite pour travailler. C'est pourquoi cet écran n'a pas d'entorse comparable à celle de « Sons & validation », où deux puces filtrent dès leur ajout (ADR 3099).
- Aucune vue par défaut, contrairement aux quatre autres écrans à puces. Une vue « Bloquants seulement » se dessine sur une distribution de gravités réelle, que la base de démonstration ne produit pas encore : la proposer sans l'avoir vue à l'œuvre serait deviner ce que l'observateur regarde en premier.
- Le critère Passage se calcule sur les autres puces. Lire la liste déjà filtrée ferait s'auto-effondrer la puce : une fois la nuit 42 cochée, le menu n'offrirait plus que 42 (ADR 3095). Un constat qui ne cite aucune nuit - un fichier orphelin, un serveur injoignable - n'entre pas dans la liste des passages : il n'y aurait rien à y désigner.
- Les gravités et catégories se lisent en français. Les colonnes ont longtemps affiché
PREFIXE_NON_CONFORMEetAVERTISSEMENT: des identifiants de code au milieu d'une interface française. Chaque constante porte désormais son libellé, tiré de sa propre documentation. - « Auditer ce passage » (
boutonAuditerPassage, #1347) reste désactivé tant qu'aucun constat citant une nuit n'est sélectionné. Un bouton désactivé n'affiche pas d'infobulle : l'explication se pose sur son enveloppe (socle #789). Après avoir réparé une nuit, on veut vérifier celle-là, pas tout le workspace. - Le double-clic ouvre le passage accusé. La table nommait le coupable et laissait l'utilisateur le retrouver à la main, alors que partout ailleurs une ligne de table s'ouvre au double-clic.
- « Vérifier en ligne » ajoute les constats serveur aux constats disque / base. L'appel réseau se fait derrière un voile d'occupation (#1254) : le bouton se grise le temps du traitement plutôt qu'un
setDisableposé à la main. - Un bandeau de compte rendu paraît quand des filtres n'ont pas pu être remis en place. Sur cet écran, le cas est la règle plutôt que l'exception : relancer l'audit renouvelle les constats, donc les passages qu'un filtre mémorisé désignait (ADR 3093).
Variante - rien à signaler¶
Interactions clés¶
| Geste | Effet |
|---|---|
| Relancer l'audit | Recalcule les constats disque / base, hors ligne et rapide |
| Vérifier en ligne | Ajoute les constats serveur (unités absentes, localités divergentes) |
| Double-clic sur une ligne | Ouvre le passage que le constat accuse |
| Sélection d'une ligne citant un passage | Active « Auditer ce passage » |
| « + Filtre » puis une puce | Restreint l'affichage ; le résumé et le verdict ne bougent pas |
| « Tout effacer » | Retire les puces, la recherche et le tri, et oublie la mémoire de session |
Notes pour l'implémentation¶
- La vue est pur câblage :
AuditControllerlie la table et le résumé àAuditViewModel, qui expose deux listes -constats()(l'audit entier, d'où viennent le résumé et le verdict) etconstatsFiltres()(ce que la table montre). Les brancher à l'envers est silencieux. - La table se pose sur une
SortedListpar-dessus la liste filtrée. UneFilteredListposée nue est non modifiable :TableViewrenonce alors à trier et vide sonsortOrderen silence. - Les clés
gravite,categorieetpassagerestent chez cet écran : elles ne sont partagées avec aucun autre, etClesCriteresne porte que le commun (ADR 3096).categorien'a rien à voir avec legroupetaxonomique des autres écrans. - En ligne de commande :
audit-coherence [--passage <id>] [--gravite <niveau>] [--categorie <nature>] [--json] [--online].--passagecadre l'audit (il n'audite que cette nuit), là où la puce filtre l'affichage d'un audit global. Les deux répondent à « qu'est-ce qui cloche sur cette nuit ? », par deux chemins qui ne produisent pas exactement le même ensemble.