fix(audit) : libellés i18n des types d'entité + garde-fou (ERP-99) #48

Merged
malio merged 2 commits from fix/ERP-99-audit-i18n-entity-labels into develop 2026-06-03 09:09:38 +00:00
Owner

Contexte

Le filtre « Type d'entité » de l'audit-log est dynamique (GET /audit-log-entity-types). Toute entité #[Auditable] dont la clé i18n manquait s'affichait en type technique brut (ex: commercial.Client), le rendu retombant silencieusement sur le fallback.

Décisions (cœur du ticket ERP-99)

  • Schéma de clé : flat audit.entity.<module>_<entity> (inchangé, zéro régression).
  • Emplacement : centralisé dans frontend/i18n/locales/fr.json (migration per-module = ticket infra i18n dédié).
  • Source de vérité : entity_type = strtolower(module).Entity (confirmé dans AuditListener::formatEntityType).

Changements

  • Complétude : ajout des clés audit.entity.* manquantes (catalog + commercial) → 9 entités #[Auditable] couvertes.
  • Convention : .claude/rules/backend.md § Audit — ajouter sa clé de libellé audit fait partie de la définition de fini d'une entité auditée.
  • Garde-fou : tests/Architecture/AuditableEntitiesHaveI18nLabelTest scanne les entités #[Auditable] et échoue si une clé audit.entity.* manque ou est vide (rend le manque bloquant en CI).

Vérifications

  • Suite PHPUnit complète : 465 tests OK (1604 assertions).
  • Garde-fou : vert (9 entités) + test négatif confirmé rouge (clé retirée → échec actionnable).
  • JSON fr.json valide, php-cs-fixer OK.
## Contexte Le filtre « Type d'entité » de l'audit-log est dynamique (`GET /audit-log-entity-types`). Toute entité `#[Auditable]` dont la clé i18n manquait s'affichait en **type technique brut** (ex: `commercial.Client`), le rendu retombant **silencieusement** sur le fallback. ## Décisions (cœur du ticket ERP-99) - **Schéma de clé** : flat `audit.entity.<module>_<entity>` (inchangé, zéro régression). - **Emplacement** : centralisé dans `frontend/i18n/locales/fr.json` (migration per-module = ticket infra i18n dédié). - **Source de vérité** : `entity_type` = `strtolower(module).Entity` (confirmé dans `AuditListener::formatEntityType`). ## Changements - **Complétude** : ajout des clés `audit.entity.*` manquantes (catalog + commercial) → 9 entités `#[Auditable]` couvertes. - **Convention** : `.claude/rules/backend.md` § Audit — ajouter sa clé de libellé audit fait partie de la définition de fini d'une entité auditée. - **Garde-fou** : `tests/Architecture/AuditableEntitiesHaveI18nLabelTest` scanne les entités `#[Auditable]` et échoue si une clé `audit.entity.*` manque ou est vide (rend le manque bloquant en CI). ## Vérifications - Suite PHPUnit complète : **465 tests OK** (1604 assertions). - Garde-fou : vert (9 entités) + test négatif confirmé rouge (clé retirée → échec actionnable). - JSON `fr.json` valide, php-cs-fixer OK.
matthieu added 1 commit 2026-06-03 08:45:46 +00:00
fix(audit) : libellés i18n des types d'entité + garde-fou (ERP-99)
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Successful in 1m39s
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Successful in 1m0s
c80563a7f5
Le filtre « Type d'entité » de l'audit-log affichait le type technique brut
(ex: commercial.Client) pour toute entité dont la clé i18n manquait, le rendu
retombant silencieusement sur le fallback.

- complétude : ajout des clés audit.entity.* manquantes (catalog + commercial),
  couvre les 9 entités #[Auditable]
- convention : .claude/rules/backend.md § Audit — ajouter sa clé de libellé
  audit fait partie de la définition de fini d'une entité auditée (schéma flat,
  emplacement centralisé fr.json)
- garde-fou : AuditableEntitiesHaveI18nLabelTest scanne les entités #[Auditable]
  et échoue si une clé audit.entity.* manque ou est vide (rend le manque
  bloquant en CI au lieu de silencieux)
matthieu added the backfronttype/fixtype/test labels 2026-06-03 08:46:22 +00:00
malio added 1 commit 2026-06-03 08:59:15 +00:00
Merge branch 'develop' into fix/ERP-99-audit-i18n-entity-labels
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Successful in 1m49s
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Successful in 1m15s
e5e5093c3e
malio merged commit 052a39092b into develop 2026-06-03 09:09:38 +00:00
malio deleted branch fix/ERP-99-audit-i18n-entity-labels 2026-06-03 09:09:38 +00:00
Sign in to join this conversation.