Repository navigation
prod(analytics): case drilldown API и scoped XLSX - #761
Merged
Merged
Conversation
Merged
10 tasks done
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Что изменено
Выборочный production-перенос принятого на DEV PR #760: manager case drilldown list и XLSX в существующих
/programs/{id}/projects/и/export-projects/.Зачем
Подготовить backend для утверждённого Angular drilldown без переноса остальных изменений
dev. DEV acceptance подтверждён пользователем.Реализация
Ветка создана от актуального
origin/master:7b2918ed3d4914e50a5a5fc684706044ba7f5c06. Сопоставлены production-вариант608bf09и финальный DEV2603312; merge/cherry-pick merge commit из dev не выполнялся.Сохранены production-модули
project_case_analytics,project_analytics_attention,ProjectAnalyticsAttentionPaginationи/project-analytics/. Перенесено усиленное независимое assertion заголовков XLSX из финального DEV.Файлы:
partner_programs/serializers/project_case_drilldown.pypartner_programs/services/project_case_drilldown.pypartner_programs/services/project_case_analytics.pypartner_programs/services/exports.pypartner_programs/views.pypartner_programs/tests/test_project_case_drilldown.pydocs/analytics-case-drilldown-api.mdAPI
Opt-in
view=case_analytics, обязательныйcase_scope=all|selected|without_case; selected требует точный текущийcase_name. List: поиск по названию, limit 1–100, offset ≥0. Export: полный bucket; search/pagination/неизвестные и неоднозначные параметры дают 400, без fallback на all.Единый classifier для overview/list/export, данные связи выбранной программы,
Project.presentation_address, bounded SQL. XLSX содержит колонку «Кейс», даты и полную ссылку; пользовательские строки сохраняются literal cells. Legacy list/filter/all/submitted/rates exports сохраняются. Новых endpoints/models/migrations нет.UI
Не менялся. Связанный Angular production PR #391 мержится после backend deploy/API smoke. Удаление общей кнопки Cases не удаляет API
case_scope=all.Permissions
Сохранены server-side
IsAdminOrManagerOfProgramи дополнительная проверка export. Manager выбранной программы/staff/superuser имеют прежний API-доступ; остальные роли отклоняются. Staff UI gate не расширяется.Проверки
git diff --check.NEXTGEN_SURFACE_ENABLED=True, как в штатном full CI. Первый запуск с False дал 6 NoReverseMatch в isolation-тестах nextgen; код не менялся, окружение исправлено.manage.py check,makemigrations --check --dry-run,flake8 .— PASS; новых migrations не обнаружено.8e1c438d5f572d9058fd87a23aa274d20d368a5e.Локальный полный PostgreSQL 18 suite: 1630 tests,
OK (skipped=3), 748.931 s.После успешных assertions локальная команда без
--keepdbполучила exit 1 на DROP test database:21 оставшееся соединение. Это не выдаётся за clean command run. Runtime/tests ради cleanup не менялись;
штатный PostgreSQL CI использует
--keepdbи явный cleanup. Изолированный локальный PostgreSQL остановлен.Review по
procollab-review: BLOCKER/MAJOR/MINOR в итоговом diff не выявлены. Производственные имена модулей и pagination сохранены; исправлено форматирование документации. Продуктовые решения не менялись.Acceptance criteria
Не проверено
Живые production API/admin/Celery и smoke после выкладки: выполняются пользователем после release. Локальные проверки используют отдельную test PostgreSQL, рабочие БД не затронуты.
Риски / migration
Schema/data migration не требуется. Backend совместим со старым Angular. Сначала merge этого PR и backend Release Prod, затем API smoke, затем Angular merge (push в master автоматически запускает frontend deploy).
Rollback: вернуть предыдущий backend release; схема не менялась. Если Angular уже выпущен, откатить Angular первым либо принять временную недоступность case drilldown. Merge/release/deploy Codex не выполнял.