fix: импорт старых данных (обратная совместимость)
- объекты КИИ: добавлены варианты во мн.ч. в словари типов объекта (Автоматизированные системы управления, Информационно-телекоммуникационные сети) и способов взаимодействия (Проводной, Без проводной) — как в старом опроснике - employees_access: фильтр плейсхолдеров («Формат: Фамилия Имя Отчество», «Пример: …») и пустых строк при загрузке файла (from_dict) и при импорте опросника
This commit is contained in:
@@ -1,4 +1,6 @@
|
||||
[
|
||||
"проводной",
|
||||
"беспроводной"
|
||||
"беспроводной",
|
||||
"Проводной",
|
||||
"Без проводной"
|
||||
]
|
||||
@@ -1,5 +1,7 @@
|
||||
[
|
||||
"Информационная система",
|
||||
"Автоматизированная система управления",
|
||||
"Информационно-телекоммуникационная сеть"
|
||||
"Информационно-телекоммуникационная сеть",
|
||||
"Автоматизированные системы управления",
|
||||
"Информационно-телекоммуникационные сети"
|
||||
]
|
||||
@@ -154,6 +154,20 @@ class Company:
|
||||
]
|
||||
if "employees_access" in d and not isinstance(d["employees_access"], list):
|
||||
d["employees_access"] = []
|
||||
# Отбрасываем плейсхолдеры из старых опросников («Формат: Фамилия Имя Отчество») и пустые строки
|
||||
if "employees_access" in d and isinstance(d["employees_access"], list):
|
||||
clean = []
|
||||
for e in d["employees_access"]:
|
||||
if not isinstance(e, dict):
|
||||
continue
|
||||
fio = str(e.get("fio", "")).strip()
|
||||
pos = str(e.get("position", "")).strip()
|
||||
if fio.lower().startswith("формат:") or fio.lower().startswith("пример:"):
|
||||
continue
|
||||
if not fio and not pos:
|
||||
continue
|
||||
clean.append(e)
|
||||
d["employees_access"] = clean
|
||||
if "okved_extra" in d and not isinstance(d.get("okved_extra"), list):
|
||||
d["okved_extra"] = []
|
||||
valid = {f.name for f in cls.__dataclass_fields__.values()}
|
||||
|
||||
+9
-6
@@ -2479,14 +2479,17 @@ class DokoGenApp:
|
||||
row_frame.destroy()
|
||||
self._employee_entries.clear()
|
||||
for emp in data['employeesAccess']:
|
||||
fio = str(emp.get('fio', '')).strip()
|
||||
pos = str(emp.get('position', '')).strip()
|
||||
if fio.lower().startswith('формат:') or fio.lower().startswith('пример:'):
|
||||
continue
|
||||
if not fio and not pos:
|
||||
continue
|
||||
self.model.employees_access.append({
|
||||
'position': emp.get('position', ''),
|
||||
'fio': emp.get('fio', ''),
|
||||
'position': pos,
|
||||
'fio': fio,
|
||||
})
|
||||
self._add_employee_row(
|
||||
emp.get('position', ''),
|
||||
emp.get('fio', ''),
|
||||
)
|
||||
self._add_employee_row(pos, fio)
|
||||
self._update_emp_count()
|
||||
|
||||
self.log("✅ Импорт применён")
|
||||
|
||||
Reference in New Issue
Block a user