Опросник: добавлен словарь criterion_fields (20 показателей ПП-127), импортёр распознаёт строки «Показатель N …» в листе объекта и складывает в criterion_input; фильтр по сфере (берутся только применимые показатели)

This commit is contained in:
LocoAgent
2026-08-05 15:39:06 +04:00
parent dbf8c613dd
commit 8e97e10714
3 changed files with 157 additions and 0 deletions
+11
View File
@@ -556,6 +556,17 @@ def _import_187_is_list(wb, data, settings, log_fn):
if _set(field_lower, 'tech_measures', val_b):
log_fn(f" Тех. меры: {val_b[:60]}")
continue
# --- Показатели критериев значимости (ПП-127) → criterion_input ---
# Строки вида «Показатель 1. …» / «Показатель 2а. …» / «Показатель 13.1. …»
m_crit = re.match(r'^показател[ья]?\s*(\d+(?:\.\d+)?)([а-яА-Я]?)', field_lower)
if m_crit:
_num_crit = m_crit.group(1) + m_crit.group(2)
# нормализация: «10.1» → «10.1», «13.1» → «13.1», «2а» → «2а»
_num_crit = _num_crit.replace(' .', '.').strip()
if val_b and 'выбрать' not in field_lower and not _is_hint(val_b):
is_obj.setdefault('criterion_input', {})[_num_crit] = str(val_b).strip()
log_fn(f" Показатель {_num_crit}: {str(val_b)[:60]}")
continue
if 'интернет' in field_lower:
is_obj['isInternet'] = is_checked
continue