fix: complete admin catalog UX and recovery #38
Reference in New Issue
Block a user
Delete Branch "feature/admin-ux-hardening"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Каталог сохранял номер страницы при смене фильтров и мог показывать пустой результат при существующих совпадениях. Фильтры теперь начинают с первой страницы, устаревший offset корректируется в общем обработчике.
Закрывается issue #37: подписанные и сгруппированные фильтры, компактные 5 колонок, пресеты, native dialog и клавиатура, закреплённое ФИО на мобильных экранах, понятные даты/статусы, отдельные empty/error/loading/stale состояния и повторная загрузка. При сбое БД каталог возвращает 503 с сохранением запроса; polling имеет таймаут и защиту от параллельных запросов.
README приведён к текущему Compose (api/worker/postgres), удалённому MCP и версии 0.8.1. Проверки: 58 pytest tests passed; node --check; Playwright desktop/mobile, фильтры, dialog/focus, пресеты и error/retry прошли. Последний документационный коммит
a989c5cотдельно проверен: блокирующих замечаний нет.Closes #37. PR не сливается автоматически.
Review: есть blocking findings.
[blocking]
app/templates/directory.html:135—aria-labelledbyзадан на вложенном<section>, а не на самом<dialog>. У native dialog accessible name не будет связан сcolumns-dialog-title; перенеситеaria-labelledby="columns-dialog-title"на<dialog>(или задайтеaria-labelсамому dialog).[blocking]
app/static/admin.js:103-115— после первой ошибки polling показывается сообщение, но polling прекращается (return false), и пользователю не даётся retry-действие. Это не соответствует issue #37 (ошибка должна иметь действие восстановления) и оставляет прогресс навсегда устаревшим до перезагрузки страницы. Сохраните polling с ограниченным retry/backoff либо добавьте явную кнопку «Повторить».Non-blocking: не реализованы заявленные presets колонок и отдельное loading/stale-состояние; тесты проверяют строки шаблонов, но не рендеринг Jinja, native dialog/focus flow или поведение polling.
compileallпроходит;pytestв окружении недоступен.git diff --checkтакже сообщает CRLF/trailing whitespace в новых CSS/HTML-фрагментах.Итог: blocking issues остаются, PR пока не готов к merge.
Финальный независимый review PR #38: проверены diff feature/admin-ux-hardening относительно main и ключевые файлы. aria-labelledby находится непосредственно на dialog; polling продолжает работу после ошибок и доступна кнопка «Повторить»; presets колонок подключены; версия 0.8.0 и changelog обновлены. Новых блокирующих регрессий не обнаружено — no blocking findings.
fix: harden admin UX and accessibilityto fix: complete admin catalog UX and recoveryПроверен только последний коммит
a989c5c(docs: align version and test instructions).CHANGELOG.mdсинхронизирован с версией 0.8.1.git diff --checkпроходит.По последнему коммиту блокирующих замечаний нет.