feat: недостающие переменные из инструкции 152-ФЗ

- {{item.fio_initials}} (И.О. Фамилия) и {{item.fio_short}} (Фамилия И.О.)
  для комиссии
- {{item.software}} (ПО) для ИС + поле «ПО» в интерфейсе
- модель: поле software у InformationSystem
This commit is contained in:
2026-08-03 11:17:20 +04:00
parent 4b4fcbc59d
commit c5f03164c8
3 changed files with 14 additions and 0 deletions
+1
View File
@@ -37,6 +37,7 @@ class InformationSystem:
purpose: str = ""
room: str = ""
structure: str = "" # Структура информационной системы
software: str = "" # Программное обеспечение
@dataclass
+10
View File
@@ -338,6 +338,11 @@ 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)
@@ -615,6 +620,8 @@ class DokoGenApp:
isys.description = self.is_description_entry.get().strip()
if hasattr(self, 'is_structure_entry'):
isys.structure = self.is_structure_entry.get().strip()
if hasattr(self, 'is_software_entry'):
isys.software = self.is_software_entry.get().strip()
isys.is_local_network = self.is_lan_var.get()
isys.is_internet = self.is_internet_var.get()
isys.threat_type = self.is_threat_var.get()
@@ -877,6 +884,9 @@ class DokoGenApp:
if hasattr(self, 'is_structure_entry'):
self.is_structure_entry.delete(0, tk.END)
self.is_structure_entry.insert(0, isys.structure or "")
if hasattr(self, 'is_software_entry'):
self.is_software_entry.delete(0, tk.END)
self.is_software_entry.insert(0, isys.software or "")
self.is_lan_var.set(isys.is_local_network)
self.is_internet_var.set(isys.is_internet)
self.is_threat_var.set(isys.threat_type or "3")
+3
View File
@@ -252,6 +252,8 @@ def _build_loop_data(company: Company, is_list: List) -> Dict[str, List[Dict]]:
'role': role_disp,
'position': pos,
'fio': fio,
'fio_initials': dc.get_initials(fio) if fio != '' else '',
'fio_short': dc.get_short_fio(fio) if fio != '' else '',
'full': full,
'signature': sig,
})
@@ -278,6 +280,7 @@ def _build_loop_data(company: Company, is_list: List) -> Dict[str, List[Dict]]:
'pd_subjects': '; '.join(isys.pd_subjects_list or []) or '',
'is_purpose': isys.purpose or '',
'structure': getattr(isys, 'structure', '') or '',
'software': getattr(isys, 'software', '') or '',
})
loops['information_systems'] = items