feat(candidates): флаг прочитанности (is_read), жирные непрочитанные, голубая заливка выбранного, дефолтная группировка по дате

This commit is contained in:
kpa39l
2026-09-15 16:42:55 +00:00
parent 562d787f1b
commit c09dff08ac
8 changed files with 211 additions and 5 deletions
+5
View File
@@ -9,6 +9,9 @@
body { padding-top: 4.5rem; background: #f5f6fa; }
.card { box-shadow: 0 1px 4px rgba(0,0,0,.08); }
.post-text { white-space: pre-wrap; max-height: 140px; overflow-y: auto; font-size: .9rem; }
/* список кандидатов: выбранный пост — светло-голубая заливка карточки */
.list-group-item.active-row { background-color: #dcecfc; }
.list-group-item.active-row:hover { background-color: #d0e4f8; }
</style>
</head>
<body>
@@ -19,6 +22,8 @@
<a class="nav-link" href="/candidates">Кандидаты</a>
<a class="nav-link" href="/published">Опубликовано</a>
<a class="nav-link" href="/metrics">Метрики</a>
<a class="nav-link" href="/crawlers">Краулеры</a>
<a class="nav-link" href="/sources">Источники</a>
<a class="nav-link text-danger" href="/logout">Выйти</a>
</div>
</div>
+2 -2
View File
@@ -75,8 +75,8 @@
</summary>
<div class="list-group list-group-flush small">
{% for p in g.posts %}
<div class="list-group-item d-flex align-items-start">
<a class="flex-grow-1 text-decoration-none{% if selected and selected.id == p.id %} fw-bold text-primary{% endif %}"
<div class="list-group-item d-flex align-items-start{% if selected and selected.id == p.id %} active-row{% endif %}{% if not p.is_read %} fw-bold{% endif %}">
<a class="flex-grow-1 text-decoration-none"
href="/candidates?selected={{ p.id }}&group_by={{ group_by }}{% if filters_qs %}&{{ filters_qs }}{% endif %}">
<span class="d-block text-truncate">{{ (p.text or '')[:90] }}</span>
<span class="d-block text-muted">