refactor(gui): intégrer les Règles dans Administration > Profils

Retour Dom : « les règles du profil doivent être dans le menu profil, pas à
part ! ». Même logique que le Masquage — les règles qui influencent
l'anonymisation appartiennent au profil ; un sous-onglet séparé crée la
même confusion.

- Retrait du sous-onglet « Administration > Règles » (_SUBTABS, builder,
  méthode _build_regles supprimée). Sous-onglets restants : Réglages /
  Profils / Partage.
- Section « Profils > Règles du profil » enrichie : wording clair (règles
  d'anonymisation portées par le profil), aperçu illustratif de la table
  des règles (réutilise _rule_row + _HELP_REGLES), édition fine annoncée
  « à venir ».
- Abandon du « Testeur de règle » (écran outil global) pour ne pas
  réintroduire un second réglage métier.

Cible UX : Réglages / Profils (Général・Masquage・Mots・Moteurs・Règles du
profil) / Partage. Test obsolète test_rules_subtab_has_no_unexplained_2
remplacé par test_no_separate_rules_subtab.

262 tests unit OK (0 régression), self-test OK, nav 3 sous-onglets + section
Règles dans Profils + thème OK. Préserve d8bc0cd + GO Qwen. Aucun build/push
sans GO Dom.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-16 12:00:10 +02:00
parent d8bc0cd8c8
commit 764cf00581
3 changed files with 47 additions and 44 deletions

View File

@@ -53,13 +53,15 @@ def test_main_tab_renamed_to_administration():
assert not any("Configuration" in lbl for lbl in labels)
def test_rules_subtab_has_no_unexplained_2():
"""Retour Dom #3 : « Règles 2 » incompréhensible → simple « Règles »."""
def test_no_separate_rules_subtab():
"""Retour Dom : les règles appartiennent au profil → plus de sous-onglet
« Règles » séparé (et donc plus de « Règles 2 » incompréhensible)."""
from gui_v6.tabs.tab_config import _SUBTABS
keys = [key for key, _ in _SUBTABS]
labels = [label for _, label in _SUBTABS]
assert any(lbl.strip() == "🛡️ Règles" for lbl in labels)
assert not any("Règles 2" in lbl or "Règles 2" in lbl for lbl in labels)
assert "rul" not in keys
assert not any("Règles" in lbl for lbl in labels)
def test_help_button_opens_help_window(app):