feat: add comments frontend, checklist modal, files delete, select options in document review #49

Merged
aep merged 3 commits from feat/AURORA-144- into test 2026-10-19 13:23:38 +03:00
Owner
No description provided.
maxim added 1 commit 2026-10-19 11:41:51 +03:00
aep added 1 commit 2026-10-19 12:14:19 +03:00
- маршрут /documents/:document_id возвращён: старые ссылки («Открыть подтверждённую форму») снова открывают
  документ; ЮЛ и консолидация для переключателя документов берутся из документа и его файла, а не из адреса;
  в списке переключателя — вторая строка (тип · формат · дата), ББ и ОФР одного PDF различимы
- чек-лист: ОФР — ячейка INCOME (было 'OFR' → всегда «Отсутствует»), сборка строк — buildChecklistRows с тестами,
  rowKey по ЮЛ, типы ответа GET …/checklist
- удаление файла по id файла (fileId строки), а не по id документа (было 404); ошибка — без закрытия окна
- замена: настоящая загрузка нового файла в ту же консолидацию (автозамена ядра, 05-domain-rules §9.5 п. 3),
  причина — комментарием к заменяемому документу; кнопка доступна только в версии в работе
- комментарий: путь без хвостового «/», типы, закрытие только после успеха, лимит 4000
- счётчики над таблицей формы — модуль reviewCounters (по needs_review, как подсветка) с тестами;
  buildStatementGrid возвращён к test (падали 3 теста)
- PageTitle и store возвращены к test (ширина переключателя — внутри DocumentPage; имя ЮЛ — пропсом)
- цвет подписей полей в теме: #667085 (опечатка #665087)
- типы во всех новых компонентах: tsc 0 ошибок, ESLint/biome без ошибок, vitest 331/331, сборка

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
maxim added 1 commit 2026-10-19 12:57:12 +03:00
Owner

Ревью и исправления (коммит 0242486)

После слияния test ломался код самого PR, а не test: tsc — 37 ошибок, 3 теста statementGrid, ошибки eslint/biome. Если у тебя локально сыплются 500 от ядра — test ждёт arm-core с миграцией 0007: alembic upgrade head.

Что исправлено

  1. Маршрут документа снова /documents/:document_id: ЮЛ и консолидация берутся из документа и его файла. Старые ссылки (например, «Открыть подтверждённую форму») работали с белым экраном — теперь открываются.
  2. Переключатель документа: у ББ и ОФР из одного PDF — вторая строка (тип · формат · дата) и статус; переход через navigate.
  3. Чек-лист: ОФР ищется по INCOME (было 'OFR' — всегда «Отсутствует»); строки и колонки собираются типизированно в checklist_utils + тесты.
  4. Удаление файла — DELETE /files/{file_id} по id файла (раньше уходил id документа → 404); onDelete только после успеха, ошибки показываются.
  5. «Заменить» — настоящая загрузка нового файла в ту же консолидацию; старый ядро переводит в SUPERSEDED при совпадении типа, счёта и периода. Причина замены пишется комментарием к старому документу. Кнопка активна только в версии «в работе».
  6. Комментарий — POST /documents/{id}/comments без хвостового /, до 4000 символов, окно закрывается после успеха.
  7. Счётчики над формой вынесены в reviewCounters.ts с тестами; statementGrid, PageTitle, store и App.tsx вне маршрута — как в test.
  8. Цвет подписей полей — #667085.

Решения без обсуждения

  • Адрес документа — /documents/:id, а не query-параметры: одна точка входа, старые ссылки живы.
  • «Требует проверки» считается по needs_review (как подсветка ячеек), а не по is_recognized: иначе в счётчик попадают пустые ячейки, достроенные сервером.
  • Замена = загрузка + причина комментарием: отдельного API замены в ядре нет.
  • current_legal_entity_name из store убрано: имя ЮЛ передаётся в окно замены пропсом.

Проверка

make check (с ff1e45c): biome 0 ошибок / 7 предупреждений, ESLint 0 / 19 (как в test), tsc 0, vitest 39 файлов / 331 тест, сборка ок. Вживую на локальном стенде: чек-лист, переход из панели файлов, переключатель, комментарий (201), удаление (204), замена (201 + 201).

## Ревью и исправления (коммит 0242486) После слияния `test` ломался код самого PR, а не `test`: tsc — 37 ошибок, 3 теста statementGrid, ошибки eslint/biome. Если у тебя локально сыплются 500 от ядра — `test` ждёт arm-core с миграцией 0007: `alembic upgrade head`. ### Что исправлено 1. Маршрут документа снова `/documents/:document_id`: ЮЛ и консолидация берутся из документа и его файла. Старые ссылки (например, «Открыть подтверждённую форму») работали с белым экраном — теперь открываются. 2. Переключатель документа: у ББ и ОФР из одного PDF — вторая строка (тип · формат · дата) и статус; переход через `navigate`. 3. Чек-лист: ОФР ищется по `INCOME` (было `'OFR'` — всегда «Отсутствует»); строки и колонки собираются типизированно в `checklist_utils` + тесты. 4. Удаление файла — `DELETE /files/{file_id}` по id файла (раньше уходил id документа → 404); `onDelete` только после успеха, ошибки показываются. 5. «Заменить» — настоящая загрузка нового файла в ту же консолидацию; старый ядро переводит в SUPERSEDED при совпадении типа, счёта и периода. Причина замены пишется комментарием к старому документу. Кнопка активна только в версии «в работе». 6. Комментарий — `POST /documents/{id}/comments` без хвостового `/`, до 4000 символов, окно закрывается после успеха. 7. Счётчики над формой вынесены в `reviewCounters.ts` с тестами; `statementGrid`, `PageTitle`, store и `App.tsx` вне маршрута — как в `test`. 8. Цвет подписей полей — `#667085`. ### Решения без обсуждения - Адрес документа — `/documents/:id`, а не query-параметры: одна точка входа, старые ссылки живы. - «Требует проверки» считается по `needs_review` (как подсветка ячеек), а не по `is_recognized`: иначе в счётчик попадают пустые ячейки, достроенные сервером. - Замена = загрузка + причина комментарием: отдельного API замены в ядре нет. - `current_legal_entity_name` из store убрано: имя ЮЛ передаётся в окно замены пропсом. ### Проверка `make check` (с ff1e45c): biome 0 ошибок / 7 предупреждений, ESLint 0 / 19 (как в `test`), tsc 0, vitest 39 файлов / 331 тест, сборка ок. Вживую на локальном стенде: чек-лист, переход из панели файлов, переключатель, комментарий (201), удаление (204), замена (201 + 201).
aep merged commit a3c0010501 into test 2026-10-19 13:23:38 +03:00
Sign in to join this conversation.
No Reviewers
No Label
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: RSHB/arm-web#49
No description provided.