16 Commits

Author SHA1 Message Date
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
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
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
b95029f70a fix(forms): запретить удаление чужих строк, добавить подтверждение
Удаление строки в формах 1/2/4 не проверяло владельца: любой исполнитель
мог удалить чужую строку мгновенно, без подтверждения.

- v3.del_budget_line (миграция 0050): не-admin может удалить только
  budget_line, где created_by совпадает с current_user_id() (проверка
  и для обычных листов, и для AHR_RENT/UTILITY/SECURITY — через
  created_by связанной budget_line). Нарушение -> role_not_allowed:
  (403), по существующей конвенции PG_403_ERRORS.
- RealtimeTable: кнопка «Удалить строку» теперь открывает
  ConfirmDeleteRowModal, реальное удаление — только после подтверждения.
- Интеграционные тесты: новый исполнитель isp2 (fixture.sql) в том же
  org_unit, что и budget_form id=1 — проверяют 403 при чужой строке,
  200 при своей и при удалении администратором.

Issue: #249 (AURORA-1936, эпик AURORA-1876, Высокий приоритет)

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-10-30 18:06:52 +04:00
Andrey Epifancev
e81df1d71e fix(api): свод 2 — варианты фильтров без коррелированного подзапроса поиска, откат засева в teardown
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 21:50:04 +04:00
Andrey Epifancev
b134cfd118 test(api): свод 2 — засев, эталон прежнего ответа и тесты-оракулы нового режима (красные)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-28 21:19:22 +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
b7557f7b3d admin-back: ручки для админки 2026-05-26 17:07:46 +03:00
Raykov-MS
4a7ac50ca7 fix tests 2026-05-20 11:18:05 +03:00
Raykov-MS
816f0e06bb solve merge conflicts 2026-05-20 10:44:45 +03:00
Raykov-MS
bea8eb6240 Add audit read api and remove python audit writes 2026-05-19 14:37:43 +03:00
8299b35d07 stages-back: круды для этапов 2026-05-15 15:17:05 +03:00
0e639ac433 form_124_write: запись в формы 1 2 4 и тесты 2026-05-14 15:04:25 +03:00
Raykov-MS
52c0d1806a F3 Read/Write endpoints 2026-05-13 12:28:00 +03:00
Raykov-MS
1a92df79ac Add based code 2026-05-05 18:07:16 +03:00