fix(web): статус группы при группировке по дате + published-страница

- _fetch_candidates: статус группы = доминирующий (new>rejected>published),
  а не первого поста → при group_by=date группа «Ранее на этой неделе»
  больше не выглядит опубликованной (openchange fix-date-group-status)
- base.html: padding-top 1.5rem→4.5rem — заголовок не перекрывается fixed-top меню
- published.html: ID поста на карточках (#N · направление)
- AGENT.MD: бэкапы автоматические по крону, вручную не запускать
This commit is contained in:
kpa39l
2026-09-14 04:39:08 +00:00
parent c66eded7bf
commit f890ad71f1
14 changed files with 245 additions and 7 deletions
+12 -1
View File
@@ -216,13 +216,24 @@ def _fetch_candidates(conn, direction: str, status: str, own: str, q: str, group
keyf = {"source": _key_source, "date": _key_date, "status": _key_status}[group_by]
def _group_status(items):
"""Статус группы: приоритет new > rejected > published, иначе — первый.
При группировке по дате первый пост группы — свежайший и может быть
published/rejected, хотя вся группа — новые кандидаты; статус группы
должен отражать состав, а не первый пост."""
st = [p["status"] for p in items]
for s in ("new", "rejected", "published"):
if s in st:
return s
return items[0]["status"]
grouped = []
for k, it in itertools.groupby(sorted(flat, key=keyf), key=keyf):
items = list(it)
grouped.append({
"key": k,
"label": _group_label(group_by, k),
"status": items[0]["status"],
"status": _group_status(items),
"posts": items,
})
# порядок групп: new → rejected → published (для status), иначе по ключу