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