Files

45 lines
2.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## Why
Список кандидатов — «почтовый клиент»: слева список карточек, справа детали.
Сейчас все карточки выглядят одинаково, не видно, какие посты уже смотрели,
а какой пост выбран (открыт) — не выделен, кроме цвета текста ссылки.
Пользователь хочет как в почтовых клиентах:
- непрочитанные посты — жирным шрифтом;
- прочитанные — обычным (как сейчас);
- выбранный (открытый) пост — светло-голубая заливка всей карточки.
Плюс: по умолчанию группировка должна быть ПО ДАТЕ (хронология получения),
а не по источнику.
## What Changes
- БД: колонка `posts.is_read INTEGER DEFAULT 0` (0 = не прочитан, 1 = прочитан).
- Web:
- выбор поста (GET /candidates?selected=N или POST /candidates/select)
помечает его `is_read=1`;
- карточка непрочитанного поста в списке — жирный текст (`fw-bold` на
заголовке/тексте), прочитанного — обычный (как сейчас);
- карточка выбранного поста — светло-голубая заливка всей карточки
(вместо текущего `fw-bold text-primary` на ссылке);
- дефолт `group_by` в GET /candidates и POST /candidates/select — `date`
вместо `source` (хронологический порядок получения: сегодня → вчера →
неделя → раньше).
## Why Not
- Не менять статус при публикации/отклонении: прочитанность — отдельный
флаг просмотра, не связан со статусом.
- Не делать авто-прочтение всех при заходе на страницу: только выбранный
пост становится прочитанным (как в почте).
- Группировка по дате — дефолт, но переключатель (источник/статус) остаётся.
## Impact
- Файлы: `db/schema.sql` (колонка), `web/app.py` (миграция при старте +
дефолт группировки + прочтение при выборе), `web/templates/candidates.html`
(классы карточек).
- Данные: ALTER TABLE (новые посты is_read=0 — непрочитанные; старые
после миграции тоже 0).
- Сервис: `vesti-web` (:8400) — перезапуск.
- Rollback: убрать колонку/правки и перезапустить.