991 Commits

Author SHA1 Message Date
Andrey Epifancev
7a5c89eca6 AURORA-1879: миграция 0059 → 0060 (0059 занята AURORA-1984, PR #306)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-11 19:36:40 +04:00
Andrey Epifancev
525f801187 Merge remote-tracking branch 'origin/test' into feat/312-aurora-1879-form-phase-direction 2026-11-11 19:35:11 +04:00
Andrey Epifancev
f0470313c1 openspec: архив aurora-1839-cell-memo и aurora-1984-pd-standalone-projects
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-11 19:33:14 +04:00
aep
4dc111a0ce Merge pull request 'AURORA-1984: проекты ПД без программы (+1979, 1980, 1989)' (#306) from feat/305-aurora-1984-pd-standalone-projects into test 2026-11-11 18:12:22 +03:00
aep
90e4084e7d Merge pull request 'AURORA-1978: удаление пустой программы и проекта на форме 4' (#304) from feat/303-aurora-1978-pd-delete-program-project into test 2026-11-11 18:12:05 +03:00
aep
d702e9d5aa Merge pull request 'AURORA-1839: мемоизация ячеек таблицы листа' (#240) from feat/234-aurora-1839-cell-memo into test 2026-11-11 18:11:32 +03:00
aep
f4f9c325e2 Merge pull request 'AURORA-1882: явная метка «На удаление» у задач в списке и на странице задачи' (#314) from feat/313-aurora-1882-deletion-mark-chip into test 2026-11-11 18:11:09 +03:00
13ab6fcdbc Merge pull request 'добавление крестиков у поиска по столбцам' (#321) from aourora-2023_2 into test
Reviewed-on: #321
2026-11-11 17:22:39 +03:00
PotapovaA
32e697193e добавление крестиков у поиска по столбцам 2026-11-11 17:12:59 +03:00
Andrey Epifancev
8798f092c4 fix(stages): именованный dollar-тег в DO-блоке 0059, правка интеграционных тестов этапов (AURORA-1879)
- sql_migration._split_statements узнаёт только $tag$, пустой $$ ломал разбиение:
  DO $$ … $$ → DO $do$ … $do$.
- test_form_phases_delete_removes_only_named_phase: ?sheet= без direction
  фильтрует direction IS NULL — читаем весь список и отбираем AHR в тесте.
- test_form_phases_duplicate_without_direction_rejected: после ошибки
  сессия клиента откатывается, число строк не проверяем; защиту БД
  проверяет новый test_form_phase_nodir_unique_index_blocks_duplicate.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-11 16:53:42 +04:00
Andrey Epifancev
92f6049a73 fix(stages): FormPhaseService.create отклоняет дубль этапа на листе и направлении (AURORA-1879)
Интеграционные тесты одноимённых этапов, PATCH/DELETE одного этапа, дубль без направления, direction в аудите.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-11 16:39:24 +04:00
Andrey Epifancev
9e15fad226 fix(stages): direction в первичном ключе ORM FormPhase, детерминированный порядок списка, миграция 0059 (AURORA-1879)
- ORM: direction входит в PK (nullable), одноимённые этапы Support/Development больше не склеиваются
- get_list: ORDER BY sheet, direction (NULL первыми), opens_at, phase_code
- 0059: del_form_phase фильтрует по phase_code, direction в v_phase_id (add/upd/del) и в payload upd,
  чистка дублей без направления и частичный уникальный индекс form_phase_nodir_uidx

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-11 16:39:24 +04:00
Andrey Epifancev
21b4e93008 feat(tasks): чип «На удаление» в списке и на странице задачи, «Пользователь удалён» (AURORA-1882)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-11 16:36:18 +04:00
Andrey Epifancev
f8d14194f9 feat(tasks): formatDeletionHint — текст подсказки пометки на удаление (AURORA-1882)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-11 16:35:17 +04:00
aep
5a91f35ab2 Merge pull request 'AURORA-1902: возврат тестирования — цветные заливки на листах Операц/АХР/КВ выгрузки Сметы РФ' (#310) from feat/309-aurora-1902-export-colors into test 2026-11-11 15:16:32 +03:00
aep
dd40b9f341 Merge pull request 'AURORA-1899: возврат тестирования — разрядность не трогает неденежные и текстовые колонки' (#308) from feat/285-aurora-1899-non-money-fix into test 2026-11-11 15:15:41 +03:00
Andrey Epifancev
3b5f6025aa fix(export): заливки колонок на листах Операц/АХР/КВ Сметы РФ (AURORA-1902)
Возврат тестирования 10.11: в выгрузке формы 2 не было цветных заливок.
XlsxDepthSheetWriter._set_palette искал цвет только по пути ключей дерева
колонок (section_code, god.….q2), а FORM2_COLORS ключуется путём данных
(header.section_code, booking.y2026.q2) — совпадений 0 из 162. Теперь, если
по пути дерева цвета нет, он берётся по плоскому ключу данных колонки.
Форма 1 не меняется (её цвета находятся по пути дерева, как раньше).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-11 15:40:03 +04:00
Andrey Epifancev
44e6afc774 fix(table): разрядность не трогает неденежные и текстовые колонки (AURORA-1899)
Возврат тестирования 11.11:
- tableColumns считал множитель по MRT column, у которого нет accessorKey, —
  getMoneyUnit видел пустой ключ и считал денежной любую колонку (НДС, курс,
  сумма в валюте, площадь масштабировались). getMoneyUnit теперь берёт
  column.columnDef ?? column.
- текстовые колонки (комментарии, обоснования, реквизиты договоров, коды)
  попадали в правило «иначе thousand»: «123» в комментарии делилось, а при
  «млн»/«млрд» редактор обоснования закрывался как денежный. Добавлен
  isTextColumn: такие колонки не масштабируются и не форматируются как числа
  (внутренний заказ 10123 и комментарий «123» показываются как есть).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-11 15:34:08 +04:00
d5eb70e004 Merge pull request 'крестик для очистки строки поиска' (#307) from aurora-2023 into test
Reviewed-on: #307
2026-11-09 14:15:18 +03:00
PotapovaA
a2b132e9dc крестик для очистки строки поиска 2026-11-09 14:13:23 +03:00
Andrey Epifancev
e5660add7a AURORA-1984: правки по итоговому ревью (M-5, M-6, M-7)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 23:16:20 +04:00
Andrey Epifancev
77db9cb02f AURORA-1984: рулинги R-8 и R-9 в design.md
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 23:06:28 +04:00
Andrey Epifancev
f5ce14fd11 AURORA-1984: самостоятельный проект — уровень программы в дереве и в выгрузке
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 23:05:59 +04:00
Andrey Epifancev
b87b12f980 AURORA-1989: номер статьи, сортировка и поиск в окне выбора расхода
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 22:38:04 +04:00
Andrey Epifancev
321943db56 AURORA-1979: подпись программы и проекта в третьем столбце и выгрузке
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 22:35:02 +04:00
Andrey Epifancev
78227b46c0 AURORA-1980: переименование программы и проекта
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 22:32:42 +04:00
Andrey Epifancev
9218d2f7f5 AURORA-1984: рулинг R-7 в design.md
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 22:31:17 +04:00
Andrey Epifancev
374ac4bd9e AURORA-1984: добавление проекта в разделе на фронте
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 22:29:42 +04:00
Andrey Epifancev
69c4a8f9c9 AURORA-1984: событие project_added без программы
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 22:27:16 +04:00
Andrey Epifancev
209d36e832 AURORA-1984: создание, переименование и удаление проекта без программы в SQL
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-08 22:23:28 +04:00
Andrey Epifancev
836e812bad AURORA-1984: самостоятельный проект в модели и листе формы 4
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 22:18:22 +04:00
Andrey Epifancev
551066bb05 AURORA-1984: перепроверка дизайна и план реализации
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 22:14:29 +04:00
Andrey Epifancev
e500c85e81 AURORA-1984: OpenSpec change — проекты ПД без программы (+1979, 1980, 1989)
Refs #305

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 21:28:34 +04:00
Andrey Epifancev
1aec5d2c2d AURORA-1978: удаление пустой программы и проекта на форме 4
«Удалить строку» на строке программы (GROUP) или проекта (ITEM) ничего не
делала: у этих строк нет line_id, окно подтверждения не открывалось, а
события program_deleted / project_deleted, которые сервер уже поддерживает,
фронт не отправлял.

- getDeleteTarget: по выделенной строке выбирает программу, проект или
  строку бюджета; для непустых программы/проекта сразу показывает причину.
- RealtimeContext: deleteProgram / deleteProject и обработка ответов.
- useRealtimeData: строка убирается из дерева, пересчёт ROOT/GROUP из
  ответа сопоставляется по section_code / program_id / project_id
  (alignNodeRows), а не по sort_order — сервер нумерует строки заново, и у
  листа без строк бюджета нет ROOT (найдено при проверке на стенде).
- Окно подтверждения называет удаляемую программу/проект.
- getWsErrorMessage срезает префикс "<class 'asyncpg...'>: " — иначе отказ
  сервера (программа с проектами у устаревшего клиента) показывался с ним.

Refs #303

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 20:02:41 +04:00
aep
244c03ac14 Merge pull request 'AURORA-1892: доработка по сверке с исходным перечнем 02.11.2026' (#293) from feat/276-aurora-1892-negative-amounts into test 2026-11-08 17:12:34 +03:00
Andrey Epifancev
f61647d16c Merge remote-tracking branch 'origin/test' into feat/276-aurora-1892-negative-amounts 2026-11-08 18:11:36 +04:00
aep
bc9bd1b5e5 Merge pull request 'AURORA-1893: доработка по возврату тестирования — агрегаты в счётчике, переход и прокрутка к ячейке, {year}/{unit}' (#300) from feat/282-aurora-1893-error-alert-rework into test 2026-11-08 17:11:23 +03:00
aep
bf449c5754 Merge pull request 'fix(form2): дельта АХР пуста для статей глубины 4 после правки лимита (AURORA-1850, часть #296)' (#301) from feat/296-ahr-delta-depth4 into test 2026-11-08 17:11:12 +03:00
aep
1965f2a939 Merge pull request 'fix(tests): test_form2_ahr_limit падает KeyError после null-strip (AURORA-1897, часть #296)' (#299) from feat/296-ahr-limit-tests-null-strip into test 2026-11-08 17:10:01 +03:00
Andrey Epifancev
d341d21ec6 fix(form2): дельта АХР после правки лимита пуста для статей глубины 4 (AURORA-1850, #296)
0053 пересоздала v3.get_form2_ahr_satellite_delta по телу из 0031 с
сопоставлением лимитного шаблона «ei.depth = 3 AND (item_id OR
num_group_id)» и откатила правку 0037. Лимиты с кодом num_group_id статьи
глубины 4 (принтеры / МФУ / копиры) не попадали в target_lines, дельта
была пустой, и открытый АХР не обновлял сумму до перезагрузки.

Миграция 0058 пересоздаёт функцию с матчером 0037
((depth = 3 AND item_id = code) OR num_group_id = code); остальное тело —
как в 0053.

Тест-защита 0037 ждал в дельте INPUT-строку, которую AURORA-1887 скрыл на
листе AHR, — теперь проверяет заголовок SUB_SUB_ITEM статьи глубины 4.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 17:24:28 +04:00
Andrey Epifancev
20f1bed336 fix(table): минус красный и в нередактируемых ячейках строки ввода (AURORA-1892)
Возврат тестирования 06.11, критерий «любое отрицательное число выделено
цветом»: NOT_EDITABLE_INPUT_STYLES (AURORA-1890) разворачивался после цвета
текста и перекрашивал минус в серый #5F6B7A — в расчётных колонках вне
перечня отрицательные значения оставались серыми. Цвет текста теперь
решает resolveCellTextColor (utils/cellTextColor.js, с тестами): минус —
красный всегда, серый — только для неотрицательных значений.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 17:09:29 +04:00
Andrey Epifancev
5690b756e9 Merge origin/test в feat/276-aurora-1892-negative-amounts (перед доработкой по возврату 06.11)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 16:43:41 +04:00
Andrey Epifancev
a61c09be18 fix(table): контроль ошибок — агрегатные строки, переход и прокрутка к ячейке, подстановка {year}/{unit} (AURORA-1893)
Доработка по возврату тестирования 06.11:
- у агрегатных строк (ROOT/GROUP/ITEM/SUB_ITEM) нет data.id, ключ ошибки был
  «правило:колонка:null» — все агрегаты одной колонки схлопывались в одну
  запись. Ключ строки теперь getValidationRowKey: line id или sort:<sort_order>;
- переход к ошибке ищет строку по тому же ключу (раньше для агрегата
  прерывался, выделение оставалось на предыдущей ячейке);
- прокрутка: вместо scrollToIndex(rowIndex + 5, 'auto') — центрирование и
  scrollIntoView самой ячейки после отрисовки (у последних строк запас +5
  обрезался, шапка внутри контейнера не учитывалась — ячейка оставалась ниже
  видимой области);
- названия колонок в плашке и в тосте EditCell — с подставленными годом и
  единицами (formatHeaderPaths, как в TableHead);
- рамка активной ячейки дублируется псевдоэлементом ::after: inset-тень td
  перекрывалась красной рамкой ошибочной ячейки.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 16:38:49 +04:00
Andrey Epifancev
8ba26427dd fix(tests): test_form2_ahr_limit — чтение plan.qN без KeyError после null-strip (AURORA-1897, #296)
После AURORA-1848 GET листа вырезает null-поля, поэтому у заголовка статьи
без плана в квартале ключа plan.qN нет вовсе, и чтение «до» падало
KeyError до проверки самой логики. Заменено на plan.get("qN") or 0.
Продуктовый код не меняется: с правкой все 7 тестов зелёные на test
(после PR #295).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 16:04:33 +04:00
Andrey Epifancev
f9fbd7399f openspec: архив aurora-1843-svod2-server-paging (PR #241/#243/#245)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 14:40:36 +04:00
aep
40a84acdb0 Merge pull request 'AURORA-1843: свод 2 — сценарии и скрипты замера страниц (3/3, стенд)' (#245) from feat/236-aurora-1843-svod2-server-paging-perf into test 2026-11-08 12:57:48 +03:00
aep
83c43dccca Merge pull request 'AURORA-1843: свод 2 — догрузка строк страницами, поиск и фильтры через сервер (2/3, фронт)' (#243) from feat/236-aurora-1843-svod2-server-paging-web into test 2026-11-08 12:57:25 +03:00
aep
2685f9b0a0 Merge pull request 'AURORA-1843: свод 2 — серверные страницы, поиск, фильтры и варианты (1/3, сервер)' (#241) from feat/236-aurora-1843-svod2-server-paging into test 2026-11-08 11:07:51 +03:00
Andrey Epifancev
667cfd8353 docs(openspec): aurora-1843 — нумерация решения O-1
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 11:59:23 +04:00
Andrey Epifancev
4e1803568f Merge remote-tracking branch 'origin/feat/236-aurora-1843-svod2-server-paging-web' into feat/236-aurora-1843-svod2-server-paging-perf 2026-11-08 11:59:18 +04:00