Andrey Epifancev
1e1f5e3824
perf(sql): дельта АХР через _form_affected_rows, с предками SUB_SUB_ITEM (AURORA-1850)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 10:47:27 +04:00
Andrey Epifancev
5060f32341
perf(sql): _form_affected_rows собирает только затронутое поддерево (AURORA-1850)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 10:47:27 +04:00
Andrey Epifancev
6d232064c6
perf(sql): фокус и _sort_rank в построителях FORM_1, новая v_form1_view (AURORA-1850)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 10:47:27 +04:00
Andrey Epifancev
6b17d7c076
perf(sql): фокус сателлитов, AHR_LIMIT и OTCH9F в v_form2_view (AURORA-1850)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 10:47:27 +04:00
Andrey Epifancev
8f45544a17
perf(sql): фокус и _sort_rank в построителях FORM_2 AHR/CAP/OPER (AURORA-1850)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 10:47:27 +04:00
Andrey Epifancev
17f3de602a
test(sheet): усиление красных тестов эквивалентности по ревью Task 2 (AURORA-1850)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 10:47:27 +04:00
Andrey Epifancev
5b6c7e244e
test(sheet): эквивалентность ответа на правку и полной сборки — красные тесты (AURORA-1850)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 10:47:27 +04:00
f2c503c292
Merge pull request 'AURORA-1844: upd_form_cells возвращает строки целиком' ( #231 ) from feat/215-aurora-1844-upd-form-cells-full-rows into test
2026-11-01 09:46:45 +03:00
Andrey Epifancev
8ec37fe7eb
fix(alembic): перенумеровать 0050→0051 во избежание конфликта с #229
...
Три независимых approved PR (#229 , #231 , #232 ) добавляли миграцию
с одним и тем же revision=0050 поверх общего down_revision=0049.
#229 слит первым и занял 0050 (project_technical_number_lock),
поэтому здесь переносим upd_form_cells_full_rows на 0051.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-11-01 10:46:17 +04:00
37bb563f5d
Merge pull request 'AURORA-1831: гонка technical_number при параллельном POST /projects' ( #229 ) from feat/207-aurora-1831-project-tn-race into test
2026-11-01 09:45:32 +03:00
15c6402ad3
Merge pull request 'AURORA-1832: aware-даты этапов форм и проектов (часовой пояс)' ( #228 ) from feat/208-aurora-1832-phase-dates-tz into test
2026-11-01 09:43:46 +03:00
f1b4f6d306
Merge pull request 'AURORA-1848: тяжёлые GET — готовый JSON из Postgres без pydantic-модели на строку (A)' ( #239 ) from feat/233-aurora-1848-sheet-json-no-pydantic into test
2026-11-01 09:42:06 +03:00
dc82239770
Merge pull request 'AURORA-1845: кэш user/формы на время WS-соединения' ( #238 ) from feat/237-aurora-1845-ws-connection-cache into test
2026-11-01 09:41:43 +03:00
8b081a4b42
Merge pull request 'AURORA-1833: явно ставить greenlet в dev-окружении' ( #225 ) from feat/209-aurora-1833-greenlet-dev into test
2026-11-01 09:39:59 +03:00
6ff979ae57
Merge pull request 'AURORA-1830: /users/me не падает на email .local' ( #224 ) from feat/206-aurora-1830-users-me-local-email into test
2026-11-01 09:39:44 +03:00
Andrey Epifancev
b612178b12
fix(tests): тесты тяжёлых GET — непустые данные свода 2, gzip, правки докстрингов
...
Фикстура свода 2 достроена до 6 строк на GO и RF по двум орг. единицам с разными section_code;
все случаи SVOD2_CASES проверяют непустоту. Тест rf-rollup переименован (фиксирует существующий дефект),
добавлен тест gzip, в api_split.py оставлены только GET-места.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 21:43:31 +04:00
Andrey Epifancev
604e277371
perf(api): отчёты и сводные проектов отдают готовый JSON из Postgres
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 21:24:14 +04:00
Andrey Epifancev
ca7160124a
perf(api): GET сводов 1 и 2 отдают готовый JSON из Postgres
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 21:16:36 +04:00
Andrey Epifancev
d8dba2f7be
perf(api): GET листа отдаёт готовый JSON из Postgres без SheetResponse на строку
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 21:12:09 +04:00
Andrey Epifancev
7094fe839f
perf(api): хелпер ответа из готовых JSON-строк и SQL-выражение строки
...
Добавлены list_json_response (обёртка BaseListResponse из готовых строк),
ROW_COLUMNS, row_json_select и fetch_row_texts для тяжёлых GET (AURORA-1848).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 21:07:40 +04:00
Andrey Epifancev
0175759f95
test(api): фикстура db_session и снимок схемы OpenAPI тяжёлых GET
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 21:06:16 +04:00
Andrey Epifancev
4dae72da2b
test(ws): кэш соединения - unit и интеграционный через websocket_connect
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 20:17:56 +04:00
Andrey Epifancev
1a3d25afce
perf(ws): кэш пользователя и доступа к форме на время соединения листа формы
...
AURORA-1845. process() больше не читает user_service.get / bf_service.get на
каждое сообщение: результат кэшируется в ConnectionCache (TTL 30 с, только
положительные результаты).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 20:17:56 +04:00
Andrey Epifancev
f0cac30622
test(sheet): контрактный тест ответа PATCH /cell с полными строками (AURORA-1844)
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-28 18:18:07 +04:00
Andrey Epifancev
6855e9163a
perf(sheet): upd_form_cells возвращает затронутые строки целиком, без снимка до и _jsonb_diff (AURORA-1844)
...
Выборка строк вынесена в v3._form_affected_rows; FORM_4 отбирает ROOT, GROUP и ITEM только изменённых строк; при sections убираются ключи исключённых разделов.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-28 18:18:07 +04:00
Andrey Epifancev
663f45ee04
test(projects): гонка technical_number и переполнение счётчика (AURORA-1831)
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-28 18:14:33 +04:00
Andrey Epifancev
95b74bc5e5
fix(projects): advisory lock и ошибка переполнения счётчика technical_number в add_project (AURORA-1831)
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-28 18:14:33 +04:00
Andrey Epifancev
d73333705c
test(stages): aware-даты этапов форм и проектов
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 18:13:13 +04:00
Andrey Epifancev
bc89789026
fix(stages): нормализовать aware-даты этапов к поясу оргединицы
...
asyncpg не принимает aware-datetime для CAST AS TIMESTAMP WITHOUT TIME ZONE (400).
Даты переводятся в пояс оргединицы и становятся naive, SQL приписывает тот же offset.
timezone_from_offset вынесен в src/core/timezones.py, добавлен to_org_local_naive.
Aware-дата при NULL utc_offset оргединицы даёт 422.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 18:13:13 +04:00
Andrey Epifancev
b0dcc0b0f5
fix(deps): явно ставить greenlet в dev-окружении через sqlalchemy[asyncio]
...
SQLAlchemy не объявляет greenlet без extra asyncio. На arm64 (macOS)
и на Python >= 3.13 greenlet не ставится, и async-движок падает с
"the greenlet library is required". Тест фиксирует наличие greenlet.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 18:11:10 +04:00
Andrey Epifancev
2dc9b4df03
fix(users): выходные схемы пользователя без входных ограничений (/users/me 500 на .local)
...
UserInDB наследует новую UserReadBase (email/username/full_name без
валидации формата). Вход (UserBase/UserCreate/UserUpdate) не менялся.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-28 18:11:06 +04:00
Andrey Epifancev
eae445ca78
fix(alembic): алиас подзапроса в 0012 can_delete_project (PostgreSQL 15)
...
На PostgreSQL 15 подзапрос в FROM без алиаса не принимается, миграция
падала. Добавлен алиас active_reports, смысл не меняется. Правка старой
миграции: 0012 выполняется раньше любой новой, на базах, где 0012 уже
применена, ничего не меняет.
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-28 18:10:13 +04:00
Andrey Epifancev
5e7ac886aa
test(alembic): регрессия на подзапросы в FROM без алиаса (PostgreSQL 15)
...
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-28 18:10:13 +04:00
744c8962cd
Merge pull request 'svod2-filter-fix2: если заполнен только всп не берем в свод 2' ( #197 ) from svod2-filter-fix2 into test
...
Reviewed-on: #197
2026-10-21 17:33:12 +03:00
8d6e7ba51b
svod2-filter-fix2: если заполнен только всп не берем в свод 2
2026-10-21 17:31:34 +03:00
18b834e1f8
Merge pull request 'indent-export: отсупы в экспорте по глубине вложенности' ( #196 ) from indent-export into test
...
Reviewed-on: #196
2026-10-21 15:48:42 +03:00
669e352980
indent-export: отсупы в экспорте по глубине вложенности
2026-10-21 15:46:08 +03:00
f92c0e8d32
svod2-filter-fix: строки совсем без значений не попадают в свод 2
2026-10-21 15:38:48 +03:00
1463b3ad8b
export-hierarchy: иерархия expense-item при выгрузке
2026-10-21 11:44:24 +03:00
07cdcc6ed4
svod2-filter-fix: пофиксил фильтр по наличию записи в contract-detail в своде 2
2026-10-21 11:36:14 +03:00
088c72a03e
export-year-fix: пофиксил год в колонках при экспорте
2026-10-19 15:04:32 +03:00
PotapovaA
f152430805
удаление старых функций в бд (добавление и обновление всп)
2026-10-13 16:07:12 +03:00
f331c6f01f
form3-source: источник строки в своде формы 3
2026-10-01 13:26:42 +03:00
7e3c6df796
columns-svod-2: поправил ключи для колонок свода 2
2026-10-01 11:41:11 +03:00
172b343c69
export-optimize-refresh: очередь загрузки при экспорте
2026-09-30 20:40:21 +03:00
341e8b3936
last-column: Колонка Сумма оплаты структуры формы 4
2026-09-30 14:02:41 +03:00
18faf6a724
svod-fix: свод 2 из формы 2, новый свод 1 для формы 3
2026-09-28 17:01:07 +03:00
1e02b0ca61
fix-columns: добавил комментарий, строки из Лимита не удаляются
2026-09-28 13:19:26 +03:00
d6da54ecf4
form3-expense: добавил новые статьи в форму 3, возможность удаления задач
2026-09-25 14:20:04 +03:00
909c16bf9b
sattelite-fix: добавил формулу для принтеров и мфу
2026-09-25 10:26:33 +03:00