mirror of
https://gitverse.ru/kpa39l/vesti.git
synced 2026-09-29 18:05:03 +00:00
fix(candidates): кнопка Опубликовать — под полем комментария рядом с Сохранить; оригинальный пост растянут на всю высоту панели
This commit is contained in:
@@ -160,6 +160,7 @@ CLASSIFY_TIMEOUT=20 .venv/bin/python -m classifier.classify --db db/vesti.db --l
|
|||||||
- Правый блок действий: кнопки «🤖 Обработать моделью / ✍️ Переписать / 🚫 Отклонить» вынесены в ОДИН ряд НАД полем комментария, «✅ Опубликовать» — в начале approve-формы, поле комментария + «💾 Сохранить комментарий» — ниже (change `candidates-buttons-order`).
|
- Правый блок действий: кнопки «🤖 Обработать моделью / ✍️ Переписать / 🚫 Отклонить» вынесены в ОДИН ряд НАД полем комментария, «✅ Опубликовать» — в начале approve-формы, поле комментария + «💾 Сохранить комментарий» — ниже (change `candidates-buttons-order`).
|
||||||
- После «🚫 Отклонить» (и bulk reject/reject-old) — остаёмся на странице кандидатов в текущей группировке, НЕ уходим в «🗑 Отклонённые» (change `reject-stay-candidates`); отклонённые — через фильтр статуса.
|
- После «🚫 Отклонить» (и bulk reject/reject-old) — остаёмся на странице кандидатов в текущей группировке, НЕ уходим в «🗑 Отклонённые» (change `reject-stay-candidates`); отклонённые — через фильтр статуса.
|
||||||
- Список кандидатов: флаг «прочитан» — непрочитанные карточки жирные, выбранный пост — светло-голубая заливка (класс active-row), открытие поста помечает is_read=1; группировка по умолчанию — «дата» (хронология получения) (change `candidates-read-flag`).
|
- Список кандидатов: флаг «прочитан» — непрочитанные карточки жирные, выбранный пост — светло-голубая заливка (класс active-row), открытие поста помечает is_read=1; группировка по умолчанию — «дата» (хронология получения) (change `candidates-read-flag`).
|
||||||
|
- Правая панель: «✅ Опубликовать» — НИЖЕ поля комментария, рядом с «💾 Сохранить комментарий»; «🤖 Обработать / ✍️ Переписать / 🚫 Отклонить» — НАД полем комментария. Панель — фикс. высота 82vh, «Оригинальный пост» занимает всё оставшееся место (flex-grow + прокрутка), нет пустоты внизу.
|
||||||
|
|
||||||
## Ключевые артефакты
|
## Ключевые артефакты
|
||||||
- /opt/vesti/AGENT.MD — правила проекта (обязательно: все изменения через OpenSpec)
|
- /opt/vesti/AGENT.MD — правила проекта (обязательно: все изменения через OpenSpec)
|
||||||
|
|||||||
@@ -121,9 +121,9 @@
|
|||||||
|
|
||||||
<!-- ПРАВАЯ ПАНЕЛЬ: детали выбранного -->
|
<!-- ПРАВАЯ ПАНЕЛЬ: детали выбранного -->
|
||||||
<div class="col-md-8">
|
<div class="col-md-8">
|
||||||
<div class="border rounded p-3 bg-white" style="max-height: 82vh; overflow-y:auto;">
|
<div class="border rounded p-3 bg-white d-flex flex-column" style="height: 82vh;">
|
||||||
{% if selected %}
|
{% if selected %}
|
||||||
<div class="d-flex justify-content-between align-items-start">
|
<div class="d-flex justify-content-between align-items-start flex-shrink-0">
|
||||||
<h5 class="mb-0">#{{ selected.id }} {{ selected.source_name or '?' }}</h5>
|
<h5 class="mb-0">#{{ selected.id }} {{ selected.source_name or '?' }}</h5>
|
||||||
<small class="text-muted">{{ (selected.published_at or selected.fetched_at) | dt }}</small>
|
<small class="text-muted">{{ (selected.published_at or selected.fetched_at) | dt }}</small>
|
||||||
</div>
|
</div>
|
||||||
@@ -172,11 +172,11 @@
|
|||||||
{% if selected.status != 'published' %}
|
{% if selected.status != 'published' %}
|
||||||
<form method="post" action="/posts/{{ selected.id }}/approve" id="approve-form">
|
<form method="post" action="/posts/{{ selected.id }}/approve" id="approve-form">
|
||||||
{{ hid }}
|
{{ hid }}
|
||||||
<button class="btn btn-success" type="submit" title="Опубликовать в канал: комментарий (если есть) первым, затем текст поста/пересказ, картинка, ссылка">✅ Опубликовать</button>
|
<label class="form-label small text-muted mb-0 d-block">💬 Мой комментарий (будет первым в канале):</label>
|
||||||
<label class="form-label small text-muted mb-0 mt-2 d-block">💬 Мой комментарий (будет первым в канале):</label>
|
|
||||||
<textarea class="form-control form-control-sm mt-1" name="comment" rows="2"
|
<textarea class="form-control form-control-sm mt-1" name="comment" rows="2"
|
||||||
placeholder="Комментарий/анонс…">{{ selected.comment or '' }}</textarea>
|
placeholder="Комментарий/анонс…">{{ selected.comment or '' }}</textarea>
|
||||||
<div class="mt-2">
|
<div class="mt-2 d-flex flex-wrap gap-2">
|
||||||
|
<button class="btn btn-success" type="submit" title="Опубликовать в канал: комментарий (если есть) первым, затем текст поста/пересказ, картинка, ссылка">✅ Опубликовать</button>
|
||||||
<button class="btn btn-sm btn-outline-secondary" type="submit"
|
<button class="btn btn-sm btn-outline-secondary" type="submit"
|
||||||
formaction="/posts/{{ selected.id }}/comment"
|
formaction="/posts/{{ selected.id }}/comment"
|
||||||
title="Сохранить комментарий в черновик (не публикует). Он подтянется при следующей публикации">💾 Сохранить комментарий</button>
|
title="Сохранить комментарий в черновик (не публикует). Он подтянется при следующей публикации">💾 Сохранить комментарий</button>
|
||||||
@@ -200,8 +200,9 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<hr>
|
<hr class="flex-shrink-0">
|
||||||
<h6 class="text-muted">Оригинальный пост</h6>
|
<h6 class="text-muted flex-shrink-0">Оригинальный пост</h6>
|
||||||
|
<div class="flex-grow-1 overflow-auto" style="min-height:0;">
|
||||||
{% if selected.text %}
|
{% if selected.text %}
|
||||||
<div class="post-text mt-1">{{ selected.text | markdown }}</div>
|
<div class="post-text mt-1">{{ selected.text | markdown }}</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@@ -219,6 +220,7 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if selected.summary %}<div class="mt-2"><span class="badge bg-light text-dark">резюме</span> {{ selected.summary }}</div>{% endif %}
|
{% if selected.summary %}<div class="mt-2"><span class="badge bg-light text-dark">резюме</span> {{ selected.summary }}</div>{% endif %}
|
||||||
|
</div>
|
||||||
|
|
||||||
{% else %}
|
{% else %}
|
||||||
<div class="alert alert-info py-3">Выберите кандидата слева</div>
|
<div class="alert alert-info py-3">Выберите кандидата слева</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user