947 Commits

Author SHA1 Message Date
PotapovaA
32e697193e добавление крестиков у поиска по столбцам 2026-11-11 17:12:59 +03: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
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
Andrey Epifancev
fb87a6f4f6 docs(openspec): aurora-1843 — нумерация решения O-1
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 11:59:11 +04:00
Andrey Epifancev
0ad9ae32d2 Merge remote-tracking branch 'origin/feat/236-aurora-1843-svod2-server-paging' into feat/236-aurora-1843-svod2-server-paging-web 2026-11-08 11:58:52 +04:00
Andrey Epifancev
77bfdf69fd perf(svod2): v_svod2_facets с SET jit TO off (O-1)
JIT добавлял ~1,4 с к вызову с буквальными параметрами (стенд масштаба 1: 1500 мс против 43 мс).
Тест: функции svod2 имеют jit=off. Убран тест формы плана: функция с SET не разворачивается.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 11:58:31 +04:00
Andrey Epifancev
58db6d7900 Merge remote-tracking branch 'origin/feat/236-aurora-1843-svod2-server-paging-web' into feat/236-aurora-1843-svod2-server-paging-perf
# Conflicts:
#	openspec/changes/aurora-1843-svod2-server-paging/design.md
2026-11-08 11:46:06 +04:00
Andrey Epifancev
5f14af7252 Merge remote-tracking branch 'origin/feat/236-aurora-1843-svod2-server-paging' into feat/236-aurora-1843-svod2-server-paging-web
# Conflicts:
#	openspec/changes/aurora-1843-svod2-server-paging/design.md
2026-11-08 11:45:57 +04:00
Andrey Epifancev
5db0bd4cee fix(svod2): серверный поиск совпадает с экраном — пустое поле contract_detail не затирает contract_summary (R-30, решение пользователя 08.11)
В v3.svod2_lines counterparty/reference/deadline/comment берутся как COALESCE(detail, summary).
Оракулы (Python, JS, векторы) отбрасывают null при слиянии, legacy_full() снова читает
ответ без параметров. Тесты: пустое поле detail, отсутствие строки detail, перекрытие непустым detail.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 11:45:37 +04:00
Andrey Epifancev
7d71001b7c Merge remote-tracking branch 'origin/test' into feat/236-aurora-1843-svod2-server-paging 2026-11-08 11:40:26 +04:00
aep
f6b95d7b54 Merge pull request 'AURORA-1842: свод 2 — виртуализация колонок и статичные стили' (#227) from feat/220-aurora-1842-svod2-column-virtual into test 2026-11-08 10:34:12 +03:00
aep
ab9616ae0a Merge pull request 'AURORA-1835: свод 1 и сводные проектов: форматтер чисел создаётся один раз' (#217) from feat/210-aurora-1835-svod1-formatter into test 2026-11-08 10:33:50 +03:00
Andrey Epifancev
d7aba96d6d 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:32:05 +04:00
Andrey Epifancev
57dfaa8d18 Merge remote-tracking branch 'origin/feat/236-aurora-1843-svod2-server-paging' into feat/236-aurora-1843-svod2-server-paging-web 2026-11-08 11:31:58 +04:00
Andrey Epifancev
737ff55b42 test(api): схема OpenAPI свода 2 допускает Svod2PageResponse рядом с BaseListResponse (AURORA-1843)
Контрольный тест тяжёлых GET (AURORA-1848) требовал одну ссылку на BaseListResponse;
режим страниц добавляет второй вариант ответа.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 11:31:51 +04:00
Andrey Epifancev
d959e2ebfc Merge remote-tracking branch 'origin/feat/236-aurora-1843-svod2-server-paging-web' into feat/236-aurora-1843-svod2-server-paging-perf
# Conflicts:
#	openspec/changes/aurora-1843-svod2-server-paging/design.md
2026-11-08 11:08:17 +04:00
Andrey Epifancev
2f5cde8c4a Merge remote-tracking branch 'origin/feat/236-aurora-1843-svod2-server-paging' into feat/236-aurora-1843-svod2-server-paging-web
# Conflicts:
#	openspec/changes/aurora-1843-svod2-server-paging/design.md
2026-11-08 11:08:01 +04:00
Andrey Epifancev
32d81d82e8 docs(openspec): aurora-1843 — маркеры решений переноса R-23..R-29 (R-9..R-22 заняты в PR 2 и 3)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 11:07:36 +04:00
Andrey Epifancev
15957a3ba3 Merge remote-tracking branch 'origin/feat/236-aurora-1843-svod2-server-paging' into feat/236-aurora-1843-svod2-server-paging-web
# Conflicts:
#	openspec/changes/aurora-1843-svod2-server-paging/design.md
2026-11-08 11:06:54 +04:00
Andrey Epifancev
6424cd168f docs(openspec): aurora-1843 — маркеры R-11..R-17 (R-9, R-10 заняты фронтовой веткой)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 11:06:39 +04:00
Andrey Epifancev
655a5043ab docs(openspec): aurora-1843 — решения R-9..R-15 при переносе на test
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 11:06:06 +04:00
Andrey Epifancev
24ad2728d7 fix(perf): svod2_paging_check сверяет склейку view=full с ответом без null-полей (AURORA-1848)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 11:05:58 +04:00
Andrey Epifancev
61541c74a7 Merge origin/feat/236 (фронт) в feat/236 (perf): api_split через measure() с поддержкой ответа-словаря (facets)
Конфликт perf/analysis/api_split.py: взят measure() из test (wire_bytes, AURORA-1848),
в него перенесена обработка нечислового result (facets возвращает объект, строк нет).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 11:04:41 +04:00
Andrey Epifancev
e05e3774f0 Merge origin/feat/236 (сервер) в feat/236 (фронт): страницы свода 2 поверх displayFactor и фиксированной высоты строк
Конфликты Svod2Page.jsx: сохранены окно страниц, заглушки и фасеты PR; добавлены
factor/formatHeaderUnit (AURORA-1899/1900). Измерение высоты строки по offsetHeight
заменено фиксированной высотой 2.75rem (AURORA-1836): px считается из rem без чтения layout,
заглушки получают высоту в rem.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 11:04:11 +04:00
Andrey Epifancev
c69a8e586b Merge remote-tracking branch 'origin/feat/220-aurora-1842-svod2-column-virtual' into feat/236-aurora-1843-svod2-server-paging
# Conflicts:
#	api/tests/integration/conftest.py
2026-11-08 11:02:38 +04:00
Andrey Epifancev
79c841dcaf Merge origin/feat/220 в feat/236 (сервер): свод 2 постранично поверх test (AURORA-1843)
Конфликты summary.py, summary_repository.py, summary_service.py,
test_summary2_related_records_sql.py: сохранены новые методы страниц и фасетов,
режим без параметров идёт по быстрому JSON-пути test (AURORA-1848).
Миграция переименована в 0057 (down_revision 0056); в svod2_lines добавлена
поправка 0050 (СПОД аренды, только ГО). Эталон svod2_legacy_golden перезаписан
под ответ без null-полей; legacy_full оракулов строится прямым вызовом функции.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 11:02:30 +04:00
Andrey Epifancev
6410a6ae05 Merge remote-tracking branch 'origin/feat/210-aurora-1835-svod1-formatter' into feat/220-aurora-1842-svod2-column-virtual 2026-11-08 11:02:12 +04:00
Andrey Epifancev
e5edcab01e Merge remote-tracking branch 'origin/test' into feat/210-aurora-1835-svod1-formatter 2026-11-08 11:01:52 +04:00
aep
616f8cfe0a Merge pull request 'AURORA-1936: запрет удаления чужих строк, подтверждение удаления' (#257) from feat/249-aurora-1936-row-delete-confirm into test 2026-11-08 10:01:19 +03:00
Andrey Epifancev
36d19f1e2f fix(forms): add_budget_line проставляет created_by, NULL-автор удаляется только ADMIN (O-1)
R-4 (решение пользователя 08.11). В миграцию 0056 добавлен v3.add_budget_line:
тело = 0051_form2_ahr_satellite_new_line + только created_by = current_user_id() в
двух INSERT (обычная строка и заготовка записи сателлита). Авто-зеркальные строки
sync (_ensure_form2_ahr_*_sync_line) остаются с NULL. Backfill не делается.
del_budget_line: NULL-автор -> удаляет только ADMIN (комментарий в SQL + тесты).
xfail-тест владельца снят; добавлены тесты NULL-автора (исполнитель 403, ADMIN 200).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 10:59:55 +04:00