fix: вернул «+ Добавить» у организационных и технических мер

- _sec_row: новый параметр allow_add — ручное добавление показывается
  даже при наличии словаря
- орг. и тех. меры: allow_add=True (может пригодиться), остальные словарные
  списки (угрозы, инциденты, критерии) — по-прежнему только из словаря
This commit is contained in:
2026-08-04 17:51:17 +04:00
parent 6206c867c7
commit 8569b478d4
+5 -5
View File
@@ -998,7 +998,7 @@ class DokoGenApp:
command=lambda: self._select_sw_from_dict(self.is_threats_listbox, 'threats_fstec.json')).pack(fill=tk.X, pady=1)
# ===== Правая колонка =====
def _sec_row(parent, label, attr, dict_name=None, height=2):
def _sec_row(parent, label, attr, dict_name=None, height=2, allow_add=False):
"""Ряд: label + listbox + кнопки (+/-/✏️/📚)."""
ttk.Label(parent, text=label).pack(anchor=tk.W)
row = ttk.Frame(parent)
@@ -1008,8 +1008,8 @@ class DokoGenApp:
setattr(self, attr, lb)
btns = ttk.Frame(row)
btns.pack(side=tk.RIGHT, padx=(4, 0))
if not dict_name:
# нет словаря — разрешаем ручное добавление
if allow_add or not dict_name:
# ручное добавление: если разрешено или нет словаря
ttk.Button(btns, text="+", width=2,
command=lambda l=lb: self._add_sw_item(l)).pack(pady=1)
ttk.Button(btns, text="-", width=2,
@@ -1029,9 +1029,9 @@ class DokoGenApp:
_sec_row(sec_right, "Обоснование значений показателей:",
'is_criteria_justification_listbox', None, height=2)
_sec_row(sec_right, "Организационные меры:",
'is_org_measures_listbox', 'org_measures.json', height=2)
'is_org_measures_listbox', 'org_measures.json', height=2, allow_add=True)
_sec_row(sec_right, "Технические меры:",
'is_tech_measures_listbox', 'tech_measures.json', height=2)
'is_tech_measures_listbox', 'tech_measures.json', height=2, allow_add=True)
# ===== Вкладка «Средства защиты» =====
def_tab = ttk.Frame(nb2)