fix: 6 замечаний по генератору
1) нормализация адреса: «Р-Н Крымский» → «р-н. Крымский», «Г Крымск» → «г. Крымск», «УЛ» → «ул.», «Д.» → «д.» 2) убрана строчка «ПО» на вкладке ИС 3) СЗИ без категорий: «Kaspersky, КриптоПро» (через запятую) 4) кнопка «Выбрать из списка» в подвкладке «Пользователи ИС» 5) бумажные документы: «хранятся в сейфе» (авто-предлог+падеж) 6) незаполненные данные «—» подсвечиваются жёлтым (незаменённые переменные — красным, как было)
This commit is contained in:
+23
-7
@@ -595,13 +595,6 @@ class DokoGenApp:
|
||||
self.is_structure_entry = ttk.Entry(fields_frame, width=55)
|
||||
self.is_structure_entry.grid(row=7, column=1, padx=10, sticky=tk.EW)
|
||||
|
||||
# Программное обеспечение
|
||||
ttk.Label(fields_frame, text="ПО:").grid(row=8, column=0, sticky=tk.W, pady=2)
|
||||
self.is_software_entry = ttk.Entry(fields_frame, width=55)
|
||||
self.is_software_entry.grid(row=8, column=1, padx=10, sticky=tk.EW)
|
||||
|
||||
|
||||
|
||||
fields_frame.columnconfigure(1, weight=1)
|
||||
|
||||
# Вложенные списки
|
||||
@@ -659,6 +652,7 @@ class DokoGenApp:
|
||||
self.users_listbox.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)
|
||||
btnf = ttk.Frame(user_tab)
|
||||
btnf.pack(pady=3)
|
||||
ttk.Button(btnf, text="👥 Выбрать из списка", command=self._select_users_from_employees).pack(side=tk.LEFT, padx=2)
|
||||
ttk.Button(btnf, text="+ Добавить", command=self._add_user_to_is).pack(side=tk.LEFT, padx=2)
|
||||
ttk.Button(btnf, text="- Удалить", command=self._del_user_from_is).pack(side=tk.LEFT, padx=2)
|
||||
|
||||
@@ -1339,6 +1333,28 @@ class DokoGenApp:
|
||||
if user:
|
||||
self.users_listbox.insert(tk.END, user)
|
||||
|
||||
def _select_users_from_employees(self):
|
||||
"""Выбор пользователей ИС из списка сотрудников организации (вкладка «Пользователи»)."""
|
||||
names = []
|
||||
for emp in self.model.employees_access:
|
||||
fio = (emp.get('fio') or '').strip()
|
||||
if fio and fio not in names:
|
||||
names.append(fio)
|
||||
# Дополнительно: пользователи из других ИС
|
||||
for isys in self.model.information_systems:
|
||||
for u in (isys.users_list or []):
|
||||
u = u.strip()
|
||||
if u and u not in names:
|
||||
names.append(u)
|
||||
if not names:
|
||||
messagebox.showinfo(
|
||||
"Выбор пользователей",
|
||||
"Список пуст.\nЗаполните вкладку «Пользователи» (сотрудники с доступом к ПДн) "
|
||||
"или добавьте пользователей в другой ИС."
|
||||
)
|
||||
return
|
||||
self._select_from_dialog("Выбор пользователей ИС", names, self.users_listbox)
|
||||
|
||||
def _del_user_from_is(self):
|
||||
sel = self.users_listbox.curselection()
|
||||
if sel:
|
||||
|
||||
Reference in New Issue
Block a user