Files

1.2 KiB

candidates-read-flag

  • Создан OpenSpec change (proposal/design) — skip_specs: true
  • openspec validate candidates-read-flag — чисто
  • db/schema.sql: колонка posts.is_read INTEGER DEFAULT 0
  • web/app.py: миграция is_read при старте (_migrate, идемпотентно)
  • web/app.py: GET /candidates и POST select/bulk: group_by по умолчанию 'date'
  • web/app.py: при selected → UPDATE posts SET is_read=1
  • candidates.html: непрочитанные — fw-bold, выбранный — active-row (светло-голубая заливка)
  • base.html: CSS .list-group-item.active-row (#dcecfc)
  • Тест (TestClient): миграция, прочтение при selected, дефолт date, классы карточек
  • Перезапуск sudo systemctl restart vesti-web
  • Ручная проверка в браузере: дата по умолчанию, жирные непрочитанные, голубая заливка выбранного
  • Обновить STATUS.md / TODO.md
  • Бэкап (крон 2:45 делает сам, вручную НЕ запускать)