feat: импорт новых переменных из опросника 152-ФЗ
- {{security_department}} — наименование структурного подразделения
по безопасности (из поля 'структурное подразделение')
- {{item.pd_actions}} — действия с ПДн в цикле ИС
- {{item.structure}} — структура ИС импортируется из листов ИС
- КПП уже импортировался ({{company_kpp}})
- UI: применение подразделения, структуры и действий при импорте
This commit is contained in:
@@ -195,6 +195,10 @@ def _import_152_is_list(wb, data, log_fn):
|
|||||||
if 'перечисленные пдн принадлежат' in field_lower or 'принадлеж' in field_lower:
|
if 'перечисленные пдн принадлежат' in field_lower or 'принадлеж' in field_lower:
|
||||||
current_section = 'subjects'
|
current_section = 'subjects'
|
||||||
continue
|
continue
|
||||||
|
if 'структура ис' in field_lower or 'структура информационной' in field_lower or 'структур.*ис' in field_lower:
|
||||||
|
if val_b:
|
||||||
|
is_obj['structure'] = val_b
|
||||||
|
continue
|
||||||
if 'количество записей' in field_lower or 'количество субъект' in field_lower:
|
if 'количество записей' in field_lower or 'количество субъект' in field_lower:
|
||||||
if val_b:
|
if val_b:
|
||||||
is_obj['personalDataCount'] = val_b
|
is_obj['personalDataCount'] = val_b
|
||||||
|
|||||||
@@ -94,6 +94,9 @@ class Company:
|
|||||||
paper_documents_list: List[PaperDocument] = field(default_factory=list)
|
paper_documents_list: List[PaperDocument] = field(default_factory=list)
|
||||||
employees_access: List[Dict[str, str]] = field(default_factory=list)
|
employees_access: List[Dict[str, str]] = field(default_factory=list)
|
||||||
|
|
||||||
|
# Наименование структурного подразделения по безопасности
|
||||||
|
security_department: str = ""
|
||||||
|
|
||||||
def update_declensions(self, inflect_func):
|
def update_declensions(self, inflect_func):
|
||||||
"""Обновить склонения полного названия"""
|
"""Обновить склонения полного названия"""
|
||||||
if self.full_name:
|
if self.full_name:
|
||||||
|
|||||||
@@ -1358,6 +1358,10 @@ class DokoGenApp:
|
|||||||
if data.get('contractDate'):
|
if data.get('contractDate'):
|
||||||
self.doc_date_var.set(data['contractDate'])
|
self.doc_date_var.set(data['contractDate'])
|
||||||
|
|
||||||
|
# Наименование структурного подразделения по безопасности
|
||||||
|
if data.get('ispdnDepartment'):
|
||||||
|
self.model.security_department = data['ispdnDepartment']
|
||||||
|
|
||||||
# Информационные системы
|
# Информационные системы
|
||||||
if data.get('informationSystems'):
|
if data.get('informationSystems'):
|
||||||
self.model.information_systems.clear()
|
self.model.information_systems.clear()
|
||||||
@@ -1375,6 +1379,8 @@ class DokoGenApp:
|
|||||||
processing_modes=is_data.get('processing_mode', ''),
|
processing_modes=is_data.get('processing_mode', ''),
|
||||||
purpose=is_data.get('description', ''),
|
purpose=is_data.get('description', ''),
|
||||||
room=is_data.get('room', ''),
|
room=is_data.get('room', ''),
|
||||||
|
structure=is_data.get('structure', ''),
|
||||||
|
pd_actions_list=is_data.get('pd_actions', []),
|
||||||
)
|
)
|
||||||
self.model.information_systems.append(isys)
|
self.model.information_systems.append(isys)
|
||||||
self._refresh_is_listbox()
|
self._refresh_is_listbox()
|
||||||
|
|||||||
@@ -50,6 +50,8 @@ VARIABLE_DEFS = [
|
|||||||
('{{company_ogrn}}', 'A', 'ОГРН', 'company:ogrn'),
|
('{{company_ogrn}}', 'A', 'ОГРН', 'company:ogrn'),
|
||||||
('{{company_ogrn_date}}', 'A', 'Дата ОГРН', 'company:ogrn_date'),
|
('{{company_ogrn_date}}', 'A', 'Дата ОГРН', 'company:ogrn_date'),
|
||||||
('{{company_kpp}}', 'A', 'КПП', 'company:kpp'),
|
('{{company_kpp}}', 'A', 'КПП', 'company:kpp'),
|
||||||
|
('{{security_department}}', 'A', 'Наименование структурного подразделения по безопасности', 'company:security_department'),
|
||||||
|
('{{item.pd_actions}}', 'B', 'Действия с ПДн (в цикле ИС)', 'item:pd_actions'),
|
||||||
|
|
||||||
# === Комиссия ===
|
# === Комиссия ===
|
||||||
('{{commission_list}}', 'A', 'Список комиссии', 'commission_list'),
|
('{{commission_list}}', 'A', 'Список комиссии', 'commission_list'),
|
||||||
@@ -281,6 +283,7 @@ def _build_loop_data(company: Company, is_list: List) -> Dict[str, List[Dict]]:
|
|||||||
'is_purpose': isys.purpose or '—',
|
'is_purpose': isys.purpose or '—',
|
||||||
'structure': getattr(isys, 'structure', '') or '—',
|
'structure': getattr(isys, 'structure', '') or '—',
|
||||||
'software': getattr(isys, 'software', '') or '—',
|
'software': getattr(isys, 'software', '') or '—',
|
||||||
|
'pd_actions': '; '.join(isys.pd_actions_list or []) or '—',
|
||||||
})
|
})
|
||||||
loops['information_systems'] = items
|
loops['information_systems'] = items
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user