feat(gui): câbler les 7 toggles catégories au moteur (P1-2)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-26 11:26:47 +02:00
parent daec1f53bd
commit bf832e12f0
5 changed files with 228 additions and 14 deletions

View File

@@ -26,14 +26,17 @@ _SUBTABS = [
("shr", "🔄 Partage"),
]
# Chaque ligne = (libellé, aide, champ ConfigState). Le champ relie le toggle
# à la catégorie moteur (cf. gui_v6.config_state.CATEGORY_FIELDS). ON = détecter
# (masquer) ; OFF = laisser en clair (entre dans disabled_kinds).
_DETECTION_OPTIONS = [
("Noms et prénoms", "Annuaire + IA"),
("Dates de naissance", "Contexte naissance"),
("Établissements", "FINESS + contexte"),
("Adresses / CP", "Voie, ville, code"),
("N° sécurité sociale", "NIR"),
("Téléphones / e-mails", "Contact"),
("N° adhérent mutuelle", "Identifiant local"),
("Noms et prénoms", "Annuaire + IA", "detect_nom"),
("Dates de naissance", "Contexte naissance", "detect_date_naissance"),
("Établissements", "FINESS + contexte", "detect_etab"),
("Adresses / CP", "Voie, ville, code", "detect_adresse"),
("N° sécurité sociale", "NIR", "detect_nir"),
("Téléphones / e-mails", "Contact", "detect_tel"),
("N° adhérent mutuelle", "Identifiant local", "detect_adherent"),
]
_MASK_COLORS = [
@@ -353,8 +356,20 @@ class ConfigTab(ctk.CTkFrame):
help_text=_HELP_DONNEES_DETECTER, help_title="Données à détecter",
)
det.pack(fill="both", expand=True)
for label, hint in _DETECTION_OPTIONS:
self._mini_toggle(det, label, hint, value=True).pack(fill="x", padx=12, pady=1)
# Les 7 toggles « Données à détecter » sont câblés sur les booléens
# detect_* de ConfigState (lecture initiale + écriture au changement).
# ON = détecter/masquer ; OFF = laisser en clair (→ disabled_kinds).
self._detect_toggles: dict[str, object] = {}
for label, hint, field_name in _DETECTION_OPTIONS:
toggle = self._mini_toggle(
det,
label,
hint,
value=bool(getattr(self._state, field_name)),
command=lambda f=field_name: self._on_detect_toggle(f),
)
toggle.pack(fill="x", padx=12, pady=1)
self._detect_toggles[field_name] = toggle
ner = ui_kit.Card(
cols[1], p, title="🧠 Moteurs et masques",
@@ -865,6 +880,16 @@ class ConfigTab(ctk.CTkFrame):
def _on_profile(self, value: str) -> None:
self._state.profile = value
def _on_detect_toggle(self, field_name: str) -> None:
"""Recopie l'état d'un toggle « Données à détecter » dans ConfigState.
ON = détecter (masquer) ; OFF = laisser en clair. ``disabled_kinds()``
de ConfigState dérive ensuite le set des catégories désactivées.
"""
toggle = self._detect_toggles.get(field_name)
if toggle is not None:
setattr(self._state, field_name, bool(toggle.get()))
def _on_ner(self) -> None:
self._state.use_local_ner = self._tog_ner.get()