fix: импорт старых данных (обратная совместимость)

- объекты КИИ: добавлены варианты во мн.ч. в словари типов объекта
  (Автоматизированные системы управления, Информационно-телекоммуникационные сети)
  и способов взаимодействия (Проводной, Без проводной) — как в старом опроснике
- employees_access: фильтр плейсхолдеров («Формат: Фамилия Имя Отчество»,
  «Пример: …») и пустых строк при загрузке файла (from_dict) и при импорте опросника
This commit is contained in:
2026-08-04 17:28:20 +04:00
parent e4d4324005
commit 3ef1ff41e0
4 changed files with 31 additions and 10 deletions
+14
View File
@@ -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()}