893 Commits

Author SHA1 Message Date
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
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
aep
38724179c8 Merge pull request 'AURORA-1895: формула из localStorage не перезаписывает чужие значения' (#267) from feat/264-aurora-1895-formula-localstorage into test 2026-11-08 09:26:05 +03:00
Andrey Epifancev
455393cc76 Merge origin/test в feat/264-aurora-1895-formula-localstorage
Конфликты (EditCell.jsx, RealtimeTable.jsx, formulaUtils.test.js):
- EditCell: сохранены правки 1891 (editorInitialInput, Esc/Tab/Enter,
  возврат фокуса) и 1892 (warnIfNegativeNotAllowed); поверх них
  повторена логика 1895: формула из localStorage подставляется только
  если совпадает с текущим значением, иначе stale и удаляется.
- Сохранённая формула не подставляется, если редактор открыт набором
  символа (getEditorInitialInput) и не затирает набранный текст при
  изменении value другим пользователем (разрешение один раз при открытии).
- Tab/Enter помечают следующую ячейку (openNextEditableCell) только после
  фактического закрытия редактора: при невычисляемой формуле он остаётся
  открытым и не оставляет висящую цель перехода.
- formulaUtils.js: единственный isSameCellValue из test (с нормализацией
  разделителей); дубль из ветки удалён.
- formulaUtils.test.js: тесты обеих сторон.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 10:24:55 +04:00
Andrey Epifancev
84be3d42f3 Merge remote-tracking branch 'origin/test' into feat/249-aurora-1936-row-delete-confirm 2026-11-08 10:22:06 +04:00
Andrey Epifancev
ade2eb05f5 Merge origin/test + feat/210 в feat/220: свод 2 — виртуализация колонок поверх displayFactor и фиксированной высоты строк
Конфликты Svod2Page.jsx: сохранены виртуализация колонок и CSS-классы PR,
добавлены factor/formatHeaderUnit/meta.money (AURORA-1899/1900) и фиксированная
высота строки 2.75rem (AURORA-1836). Высота строки и overflow перенесены в
SVOD2_TABLE_CONTAINER_SX (статичное CSS-правило вместо sx на ячейку).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 10:11:16 +04:00
Andrey Epifancev
4a42c9d31a Merge origin/test в feat/210: форматтер свода 1 перенесён на displayFactor (AURORA-1899/1900)
Конфликт SummaryTable.jsx: взята структура test (getDisplayFactor, meta.money,
formatHeaderUnit), formatSummaryAmount переведён с делителя на множитель и
подключён в новый scaleColumns; тест summaryFormat обновлён.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 10:10:03 +04:00
aep
0974bdf48d Merge pull request 'AURORA-1938: расчёт переноса в фонд экономии на листах АХР/КВ/Операц формы РФ' (#262) from feat/255-aurora-1938-transfer-econ-calc into test 2026-11-08 09:08:25 +03:00
Andrey Epifancev
a7e98ff0d9 Merge remote-tracking branch 'origin/feat/255-aurora-1938-transfer-econ-calc' into feat/249-aurora-1936-row-delete-confirm 2026-11-08 09:56:42 +04:00
Andrey Epifancev
c2595ca0a9 Merge remote-tracking branch 'origin/test' into feat/255-aurora-1938-transfer-econ-calc 2026-11-08 09:56:33 +04:00
Andrey Epifancev
3fb1a3b162 Merge remote-tracking branch 'origin/test' into feat/249-aurora-1936-row-delete-confirm 2026-11-08 09:56:16 +04:00
Andrey Epifancev
d1922c9354 fix(forms): перенумеровать миграцию 1936 в 0056, пересобрать del_budget_line поверх 0053, починить тесты
Миграция 0050_budget_line_delete_owner_guard -> 0056 (down 0055, стек поверх 0055 AURORA-1938).
Тело v3.del_budget_line = актуальное тело из 0053_form2_ahr_source_sheet (AURORA-1907:
запрет удаления АХР-строк с source_sheet IS NOT NULL, ручные удаляются) + только owner-guard;
раньше копия опиралась на 0040 и откатывала 1907.

Тесты: доступ к форме id=1 даёт отдельная пара исполнителей isp2/isp3 (isp1 больше не
добавляется в org 1 — это ломало тесты «исполнитель из чужой организации»); окно фазы
DFIP в фикстуре продлено (истекло 2026-06-06, add_line возвращал 403); маркер
internal_order не приходит в INPUT-строке add_line — берём единственную INPUT-строку;
добавлен тест 1907 (строка из сателлита не удаляется напрямую). Тест «владелец удаляет свою
строку» помечен xfail(strict): add_budget_line не заполняет budget_line.created_by (O-1).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 09:56:16 +04:00
aep
3e00f91c69 Merge pull request 'AURORA-1905: выгрузка форм 1 и 4 — порядок столбцов и заголовки как на экране' (#260) from feat/253-aurora-1905-form1-form4-export-layout into test 2026-11-08 08:51:39 +03:00
aep
e52e8b6cd9 Merge pull request 'AURORA-1902: Смета РФ — выгрузка Операц/АХР/КВ своей раскладкой' (#259) from feat/252-aurora-1902-form2-export-layout into test 2026-11-08 08:51:25 +03:00
aep
e757430801 Merge pull request 'AURORA-1901: Смета РФ — итоги групп и IV кв. на свои места' (#258) from feat/251-aurora-1901-smeta-rf-column-order into test 2026-11-08 08:51:02 +03:00
Andrey Epifancev
1f885866c4 Merge remote-tracking branch 'origin/test' into feat/255-aurora-1938-transfer-econ-calc 2026-11-08 09:45:37 +04:00
Andrey Epifancev
5ad5cbb3a3 Мерж feat/252 (AURORA-1902) в feat/253: стек выгрузки FORM_2 + FORM_1/4 (AURORA-1905)
Конфликт export_service.py: «Операц» формы 1 берёт FORM1_OPER_DEPTH_COLUMNS (без «Платежи в year+2»),
остальные листы — кортеж (колонки, цвета, extra, нормализатор) из #259.
Тест test_export_form2_mapping сравнивает Операц Ф.1 с FORM1_OPER_DEPTH_COLUMNS.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 09:42:00 +04:00
Andrey Epifancev
a5a4087d9e Мерж origin/test в feat/252: раскладка FORM_2 переносит новые колонки и подписи test (AURORA-1902)
- конфликт export_service.py: кортеж writer_configs расширен до (колонки, цвета, extra, нормализатор);
  FORM_2 использует свой нормализатор и extra {unit}
- АХР формы 2: отдельное дерево FORM2_AHR_DEPTH_COLUMNS с колонками «В пределах лимита, год» и
  «Сверх лимита, год» (AURORA-1907), как на экране
- заголовок группы «Планирование годовых показателей, {unit} (без НДС)» как на экране (AURORA-1900)
- тесты test_export_form2_mapping.py обновлены

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 09:40:56 +04:00
aep
4d0887c42b Merge pull request 'AURORA-1888: исполнитель видит только свои этапы, 404 вместо 500 на чужую форму/проект' (#261) from feat/250-aurora-1888-stages-role-filter into test 2026-11-08 08:39:51 +03:00
Andrey Epifancev
83372f7aef Merge origin/test в feat/250-aurora-1888-stages-role-filter
Конфликт в api/tests/integration/test_form_phases_api_smoke.py: оставлены
оба набора тестов (тесты фильтра по роли и 404 из этого PR и тест
aware-дат из test).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 09:38:56 +04:00
Andrey Epifancev
7b3a4ae6ae Merge remote-tracking branch 'origin/feat/255-aurora-1938-transfer-econ-calc' into feat/249-aurora-1936-row-delete-confirm 2026-11-08 09:37:02 +04:00
Andrey Epifancev
6e8942f66f Merge remote-tracking branch 'origin/test' into feat/249-aurora-1936-row-delete-confirm
# Conflicts:
#	web/src/components/RealtimeTable/RealtimeTable.jsx
2026-11-08 09:37:02 +04:00
Andrey Epifancev
e75ed6d44f fix(form4): перенумеровать миграцию 1938 в 0055 и пересобрать _apply_form_cell поверх 0050 (СПОД, AURORA-1906)
Миграция 0050_form4_transfer_econ_calc -> 0055 (down 0054): номер 0050 занят
на test. Тело v3._apply_form_cell = актуальное тело из 0050_form2_ahr_spod_column
+ только дельта AURORA-1938 (запрет ручной записи FORM_4 q*.transfer_econ);
раньше копия опиралась на 0023 и откатывала СПОД. v_form4_sheet_sections
после 0033 на test не менялась — тело без изменений. Добавлен тест на сохранение
обеих правок в итоговом определении функции.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 09:36:25 +04:00
Andrey Epifancev
79fa992ab4 Мерж origin/test в feat/253: разрешены конфликты export_mappings/export_service и FORM_1 AHR/CAP/OPER (AURORA-1905)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 09:31:32 +04:00
Andrey Epifancev
64318458e9 Мерж origin/test в feat/251: конфликт SMETA.js (AURORA-1901)
Группа «В тыс. рублей» удалена, как и задумано в AURORA-1901; правка заголовка
из AURORA-1900 к удалённой группе не применяется.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 09:22:29 +04:00
Andrey Epifancev
37c2b96d61 Merge remote-tracking branch 'origin/test' into feat/255-aurora-1938-transfer-econ-calc 2026-11-08 09:21:45 +04:00
aep
cc2d2627a1 Merge pull request 'AURORA-1840: состояние модалок листа вынесено из RealtimeTable' (#218) from feat/213-aurora-1840-sheet-modals into test 2026-11-08 07:53:18 +03:00
aep
310f099e7f Merge pull request 'AURORA-1944: таблицы форм — шаг прокрутки колесом мыши ×2' (#247) from feat/246-aurora-1944-wheel-scroll-step into test 2026-11-08 07:52:56 +03:00
aep
8bc2c5fe22 Merge pull request 'AURORA-1877: сессия обрывается через 60 минут — нет обновления access-токена' (#256) from feat/248-aurora-1877-token-refresh into test 2026-11-08 07:52:06 +03:00
f196751cbc Merge pull request 'правки' (#297) from aurora-1998 into test
Reviewed-on: #297
2026-11-06 16:09:46 +03:00
PotapovaA
ad709fb0f7 правки 2026-11-06 16:06:35 +03:00
de94b08719 Merge pull request 'Фикс: задвоенное v_form2_view/v_form2_sheet_jsonb после PR #292' (#295) from feat/294-fix-0052-duplicate-v-form2-view into test
Reviewed-on: #295
Reviewed-by: tsygankoviva <tsygankov.itis@gmail.com>
2026-11-03 18:10:11 +03:00
Andrey Epifancev
049da41b0b fix(migrations): задвоенное v_form2_view/v_form2_sheet_jsonb после PR #292
PR #292 слил два независимо развивавшихся набора миграций 0050-0053
(цепочка Фомичева и ветка AURORA-1850/upd_form_cells_subtree) простой
конкатенацией SQL. Для 0052 это дало ВТОРОЕ, более старое определение
v3.v_form2_view (без СПОД и без правок лимитов AURORA-1897/1906) ниже
первого в том же файле — оно и остаётся финальным телом функции.
Аналогичная проблема в 0054: v3.v_form2_sheet_jsonb там 3-аргументная,
без p_focus_lines, поэтому реальный вызов из v_form2_view (4 аргумента)
резолвился в версию из 0052 без AURORA-1887/1907.

- 0052: убрано второе определение v_form2_view; AHR_LIMIT-ветка и
  fact_q4.spod в AHR_RENT/AHR_UTILITY/AHR_SECURITY перенесены в
  единственное (4-арг.) тело функции; строка «Итого» теперь не
  возвращается при непустом p_focus_lines без совпадений (пустая
  дельта остаётся пустой).
- 0054: v_form2_sheet_jsonb переведена на 4-арг. сигнатуру с DROP
  старой 3-арг. перегрузки.
- 0053: get_form2_ahr_satellite_delta — добавлен SUB_SUB_ITEM в список
  заголовков (без него дельта по статьям глубины 4 пуста).

Closes issue #294.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-11-03 18:10:45 +04:00
f65521d37a Merge pull request 'Слил дублирубщие номера миграций' (#292) from fix-migrations into test
Reviewed-on: #292
2026-11-03 13:13:38 +03:00
155ab65b58 Слил дублирубщие номера миграций 2026-11-03 13:08:30 +03:00
aep
12dc8414d1 Merge pull request 'AURORA-1891: редактирование одним кликом и с клавиатуры, без лишних записей в аудит' (#290) from feat/284-aurora-1891-cell-click-keyboard-edit into test 2026-11-02 21:05:54 +03:00
Andrey Epifancev
7d90592676 Merge remote-tracking branch 'origin/feat/284-aurora-1891-cell-click-keyboard-edit' into feat/284-aurora-1891-cell-click-keyboard-edit 2026-11-02 22:05:11 +04:00
Andrey Epifancev
ba167c0e48 Merge remote-tracking branch 'origin/test' into feat/284-aurora-1891-cell-click-keyboard-edit
# Conflicts:
#	web/src/components/RealtimeTable/Cell/Cell/Cell.jsx
#	web/src/components/RealtimeTable/RealtimeTable.jsx
#	web/src/components/RealtimeTable/SettingPanel/SettingPanel.jsx
#	web/src/components/RealtimeTable/TableHead/TableHead.jsx
#	web/src/components/RealtimeTable/tableColumns.jsx
2026-11-02 22:04:44 +04:00
aep
573edf2e75 Merge pull request 'AURORA-1887: скрыть сателлитные строки на листе АХР, заблокировать добавление для аренды/коммуналки/охраны' (#273) from feat/272-aurora-1887-ahr-hide-satellite-rows into test 2026-11-02 20:51:25 +03:00
Andrey Epifancev
9a151a19eb Merge remote-tracking branch 'origin/test' into feat/272-aurora-1887-ahr-hide-satellite-rows
# Conflicts:
#	web/src/components/RealtimeTable/RealtimeTable.jsx
#	web/src/components/RealtimeTable/utils/rowUtils.test.js
2026-11-02 21:50:17 +04:00