feat: в выпадающем списке показателей — «—» (применим без категории) и «не применим»
- options показателя: пусто / «—» (показатель применим, но категория не присвоена) / «не применим» / III / II / I - _selected различает «прочерк» и «не применим» (оба не влияют на категорию, но сохраняются в список показателей) - список показателей: «применим, категория не присвоена (—)» / «не применим» - авто-обоснование: прочерк — «применим, категория не присвоена», не применим — текст из словаря сферы
This commit is contained in:
+19
-10
@@ -1935,9 +1935,9 @@ class DokoGenApp:
|
||||
# Текст показателя
|
||||
lbl_name = ttk.Label(row, text=name, wraplength=640, justify=tk.LEFT)
|
||||
lbl_name.pack(side=tk.LEFT)
|
||||
# Выбор значения (категория) + вариант «не применим»
|
||||
# Выбор значения: пусто / «—» (применим, без категории) / «не применим» / категории
|
||||
var = tk.StringVar(value='')
|
||||
options = ['', 'не применим']
|
||||
options = ['', '—', 'не применим']
|
||||
for cat in ('III', 'II', 'I'):
|
||||
v = values.get(cat, '')
|
||||
if v:
|
||||
@@ -2005,6 +2005,9 @@ class DokoGenApp:
|
||||
s = var.get().strip()
|
||||
if not s:
|
||||
continue
|
||||
if s == '—':
|
||||
out.append((num, name, '—', 'прочерк')) # применим, категория не присвоена
|
||||
continue
|
||||
if s == 'не применим':
|
||||
out.append((num, name, '—', 'не применим'))
|
||||
continue
|
||||
@@ -2039,11 +2042,13 @@ class DokoGenApp:
|
||||
|
||||
def _save():
|
||||
selected = _selected()
|
||||
# Заполняем список показателей (включая «не применим»)
|
||||
# Заполняем список показателей (включая «—» и «не применим»)
|
||||
lines = []
|
||||
for num, name, cat, val in selected:
|
||||
if cat == '—':
|
||||
if cat == '—' and val == 'не применим':
|
||||
lines.append(f"Показатель {num}. {name} — не применим")
|
||||
elif cat == '—':
|
||||
lines.append(f"Показатель {num}. {name} — применим, категория не присвоена (—)")
|
||||
else:
|
||||
lines.append(f"Показатель {num}. {name} — {cat} категория: {val}")
|
||||
if hasattr(self, 'is_criteria_values_listbox'):
|
||||
@@ -2067,13 +2072,17 @@ class DokoGenApp:
|
||||
f"Объект отнесён к {cat} категории значимости. Основания: "
|
||||
+ "; ".join(f"показатель {num} ({c} категория)" for num, _, c, _ in chosen) + "."
|
||||
)
|
||||
for num, name, _, _ in not_applicable:
|
||||
base = f"Показатель {num}. {name} — не применим"
|
||||
jtxt = _just_text(num)
|
||||
if jtxt:
|
||||
auto_parts.append(base + ": " + jtxt)
|
||||
for num, name, _, val in not_applicable:
|
||||
if val == 'не применим':
|
||||
base = f"Показатель {num}. {name} — не применим"
|
||||
jtxt = _just_text(num)
|
||||
if jtxt:
|
||||
auto_parts.append(base + ": " + jtxt)
|
||||
else:
|
||||
auto_parts.append(base + ".")
|
||||
else:
|
||||
auto_parts.append(base + ".")
|
||||
auto_parts.append(
|
||||
f"Показатель {num}. {name} — применим, категория значимости не присвоена.")
|
||||
if not_applicable and not chosen:
|
||||
auto_parts.insert(0, "Категория значимости: не присвоена (показатели критериев значимости неприменимы к объекту).")
|
||||
auto_just = "\n".join(auto_parts) if auto_parts else ""
|
||||
|
||||
Reference in New Issue
Block a user