# selected-layout-stay: отбор без ухода со страницы + удобный layout отобранных ## Why Два замечания пользователя по веб-интерфейсу: 1. **«⭐ Отобрать» уводит со страницы кандидатов.** При отметке поста (single-кнопка или bulk) редирект идёт на `/selected` — поток отбора разрывается: после каждого отбора нужно возвращаться назад в очередь кандидатов. Пользователь: «При отметке поста на странице кандидатов не нужно открывать страницу отобранных — остаёмся на странице кандидатов». 2. **Layout страницы отобранных неудобный:** - поля «Мой пост» и «Оригинальный пост» высотой всего несколько строчек (textarea rows=8, оригинал max-height:300px) — не хватает места для работы с текстом; - резюме оригинального поста спрятано внизу блока оригинала — должно быть под блоком кнопок «Обработать моделью»; - поле комментария и кнопки публикации стоят в середине страницы — должны быть в самом низу; - внизу страницы остаётся пустое место (панели `height: 82vh`, контент не растягивается) — нужно использовать всё окно браузера по высоте. ## What Changes ### 1. Отбор остаётся на кандидатах (`web/app.py`) - `post_select()` (`POST /posts/{id}/select`): редирект после отбора — `_cand_back(group_by, direction, own, q, src="candidates")` вместо `src="selected"` (пост ушёл из очереди, возвращаемся в кандидаты в той же группировке/фильтрах). - `candidates_bulk()` `action == "select"`: редирект на `back` (текущая группировка + фильтры, src=candidates из скрытого поля формы) вместо перехода в `/selected`. ### 2. Layout отобранных (`web/templates/selected.html`) Правая панель перестраивается по вертикали (flex-колонка на всю высоту окна): 1. Заголовок поста + бейджи (как сейчас). 2. Блок кнопок «🤖 Обработать моделью / ✍️ Переписать / 🚫 Отклонить». 3. **Резюме** (`selected.summary`) — сразу под кнопками, отдельный блок. 4. Разделитель. 5. «Мой пост» (textarea) + «Оригинальный пост» (текст+медиа) — **растянуты на всю оставшуюся высоту** (flex-grow-1, min-height:0, оригинал — overflow-auto). 6. **В самом низу**: поле «💬 Мой комментарий» + «✅ Опубликовать» / «💾 Сохранить комментарий» (border-top поверх). Высота панелей: `82vh` → `calc(100vh - 160px)` (navbar 4.5rem + заголовок + форма фильтров) — страница использует всё окно, пустого места внизу нет. То же для левой панели (`max-height`) и для страницы кандидатов (`web/templates/candidates.html`), чтобы поведение было консистентным. ## Why Not - Не менять переход после «✅ Опубликовать» (на опубликованные) — осознанное поведение, не просили. - Не добавлять «вернуться к следующему кандидату» автоматом — редирект в очередь с сохранением фильтров достаточен и предсказуем. ## Impact - Файлы: `web/app.py` (2 точки редиректа), `web/templates/selected.html` (правая панель), `web/templates/candidates.html` (высоты панелей). - Данные: без изменений. - Сервис: `vesti-web` (:8400) — перезапуск. - Rollback: откатить коммит/вернуть редиректы на `src="selected"` и высоты `82vh`, перезапустить.