mirror of
https://gitverse.ru/kpa39l/vesti.git
synced 2026-09-29 09:55:03 +00:00
Session 2026-09-13: unify directions (canon+LLM-fallback, 966/1019), publisher dry_run fix, git repo, archive 8 changes, candidates-mail-ui WIP, docs
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
## Why
|
||||
|
||||
Пользователь не может заапрувить новость: POST /posts/{id}/approve → 500 Internal Server Error.
|
||||
В логах веба (journalctl -u vesti-web):
|
||||
|
||||
File "/opt/vesti/web/app.py", line 180, in approve
|
||||
dirs_selected = [r["direction"] for r in cls] if cls else [dirn]
|
||||
UnboundLocalError: cannot access local variable 'dirn' where it is not associated with a value
|
||||
|
||||
Причина: на строке 180 используется переменная `dirn` (направление поста), но она
|
||||
определяется позже (строка 185: `dirn = post.get("direction") or "linux"`). При approve
|
||||
поста без явно выбранных направлений (пустая форма) всегда падает UnboundLocalError.
|
||||
|
||||
## What Changes
|
||||
|
||||
- В `web/app.py` (функция `approve`) перед строкой с `dirs_selected` определить:
|
||||
`dirn = post.get("direction") or "linux"` (и `lang = post.get("lang") or "ru"` — тоже
|
||||
используется ниже), чтобы порядок соответствовал использованию.
|
||||
- Либо заменить `[dirn]` на `[post.get("direction") or "linux"]` — минимальная правка.
|
||||
- Зависимость от `lang` — тоже проверяется до использования (строка 186).
|
||||
|
||||
## Why Not
|
||||
|
||||
- Альтернатива — вынести `dirn/lang` в начало функции (до `dirs_selected`). Это чище:
|
||||
переменные определяются один раз и используются ниже без дублирования.
|
||||
- Проверяется на живом approve поста без направлений (пустая форма).
|
||||
Reference in New Issue
Block a user