15 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
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
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
b134cfd118 test(api): свод 2 — засев, эталон прежнего ответа и тесты-оракулы нового режима (красные)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-28 21:19:22 +04:00
9095cad992 project-back-fix: экпорт проектов, нельзя ставить отрицательные числа в полях проектов, создание года только на следующий год 2026-08-20 21:27:08 +03:00
d4c11243b9 projects-handlers: ручки со списком проектов со сметами и их обновление 2026-08-13 13:45:56 +03:00
57f919ac0c phase-directions: направления в фазах, год в зависимости от года формы или проекта, фикс с колонками для редактирования 2026-08-03 18:46:16 +03:00
13e7791866 fix-logs: пофиксил неверную запись entity id, убрал экспорт удаленных всп, нельзя выбрать удаленный ссп при создании проекта, добавил FK для таблиц, поправил работу фильтра для журнала аудита по дате, админ может получить удаленный всп 2026-07-28 12:17:24 +03:00
c976ae8c92 form-3-phases-timezones: редактирвоание этапов для 3 формы, таймзоны для этапов 3 формы, поправил entity_type для этапов 2026-07-21 15:00:36 +03:00
bad774f162 close-date-vsp-fix: дата окончания договора не может быть менее даты открытия 2026-07-16 16:40:48 +03:00
b664a39469 timezones: таймзоны для этапов, правки в бд для формы 3 2026-07-14 09:06:25 +03:00
88a9713fb3 form3-permissions: фазы для 3 фрмы, правки фикстуры 2026-07-02 10:07:27 +03:00
66846c6afa smeta-fix: поправил ддл функии сметы первой формы, поправил фикстуры для теста 2026-06-30 15:04:15 +03:00
ab21b0e496 vsp-dropdown-form: добавил фильтрацию по form_id в dropdown всп 2026-06-24 13:22:17 +03:00
2581589756 migrations: alembic миграции, пофиксил ошибки получения списков при пустых таблицах, добавил флаг --init_db для возможности заведения отдельной базы для тестов 2026-06-23 17:52:20 +03:00