From c5f03164c8a59a29c8aa9df8269ce7c4b7616e1b Mon Sep 17 00:00:00 2001 From: DokoGen Date: Mon, 3 Aug 2026 11:17:20 +0400 Subject: [PATCH] =?UTF-8?q?feat:=20=D0=BD=D0=B5=D0=B4=D0=BE=D1=81=D1=82?= =?UTF-8?q?=D0=B0=D1=8E=D1=89=D0=B8=D0=B5=20=D0=BF=D0=B5=D1=80=D0=B5=D0=BC?= =?UTF-8?q?=D0=B5=D0=BD=D0=BD=D1=8B=D0=B5=20=D0=B8=D0=B7=20=D0=B8=D0=BD?= =?UTF-8?q?=D1=81=D1=82=D1=80=D1=83=D0=BA=D1=86=D0=B8=D0=B8=20152-=D0=A4?= =?UTF-8?q?=D0=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - {{item.fio_initials}} (И.О. Фамилия) и {{item.fio_short}} (Фамилия И.О.) для комиссии - {{item.software}} (ПО) для ИС + поле «ПО» в интерфейсе - модель: поле software у InformationSystem --- dokogen/models.py | 1 + dokogen/ui.py | 10 ++++++++++ dokogen/variables.py | 3 +++ 3 files changed, 14 insertions(+) diff --git a/dokogen/models.py b/dokogen/models.py index 8f52556..05abad1 100644 --- a/dokogen/models.py +++ b/dokogen/models.py @@ -37,6 +37,7 @@ class InformationSystem: purpose: str = "" room: str = "" structure: str = "" # Структура информационной системы + software: str = "" # Программное обеспечение @dataclass diff --git a/dokogen/ui.py b/dokogen/ui.py index f60469c..0f30192 100644 --- a/dokogen/ui.py +++ b/dokogen/ui.py @@ -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") diff --git a/dokogen/variables.py b/dokogen/variables.py index 5baaf08..61d22ec 100644 --- a/dokogen/variables.py +++ b/dokogen/variables.py @@ -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