From 8569b478d401b0ab09dc7ae3b30f05c0f71bfbae Mon Sep 17 00:00:00 2001 From: prog1764 Date: Tue, 4 Aug 2026 17:51:17 +0400 Subject: [PATCH] =?UTF-8?q?fix:=20=D0=B2=D0=B5=D1=80=D0=BD=D1=83=D0=BB=20?= =?UTF-8?q?=C2=AB+=20=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D1=82=D1=8C?= =?UTF-8?q?=C2=BB=20=D1=83=20=D0=BE=D1=80=D0=B3=D0=B0=D0=BD=D0=B8=D0=B7?= =?UTF-8?q?=D0=B0=D1=86=D0=B8=D0=BE=D0=BD=D0=BD=D1=8B=D1=85=20=D0=B8=20?= =?UTF-8?q?=D1=82=D0=B5=D1=85=D0=BD=D0=B8=D1=87=D0=B5=D1=81=D0=BA=D0=B8?= =?UTF-8?q?=D1=85=20=D0=BC=D0=B5=D1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - _sec_row: новый параметр allow_add — ручное добавление показывается даже при наличии словаря - орг. и тех. меры: allow_add=True (может пригодиться), остальные словарные списки (угрозы, инциденты, критерии) — по-прежнему только из словаря --- dokogen/ui.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/dokogen/ui.py b/dokogen/ui.py index 4662f2c..66291a3 100644 --- a/dokogen/ui.py +++ b/dokogen/ui.py @@ -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)