fix: баг выбора категории (III выбиралась как I) + «Заполните…» не попадает в обоснование

- проверка категории через regex с границей слова: «Категория значимости: I»
  была подстрокой «…III», из-за чего III выбиралась как I
- если расчёт не удался (в result «Заполните…») — ничего не применяется
  и не пишется в обоснование
This commit is contained in:
2026-08-05 00:54:10 +04:00
parent 5544941469
commit fafeea4fcf
+6 -6
View File
@@ -2342,15 +2342,15 @@ class DokoGenApp:
def _apply():
_calc()
txt = result.get('1.0', 'end-1c').strip()
# Если расчёт не удался (ошибка «Заполните…») — не применяем и не пишем в обоснование
if txt.startswith('Заполните'):
return
lines = txt.split('\n')
cat_line = next((l for l in lines if l.startswith('Категория значимости:')), '')
cat = None
if 'Категория значимости: I' in cat_line:
cat = 'I'
elif 'Категория значимости: II' in cat_line:
cat = 'II'
elif 'Категория значимости: III' in cat_line:
cat = 'III'
m = _re2.search(r'Категория значимости:\s*(I{1,3})\b', cat_line)
if m:
cat = m.group(1)
if cat:
opts = list(combo['values'])
target = next((o for o in opts if o.startswith(f"{cat} категория")), None)