PROD: аналитика программы и стандартная обложка проекта - #744
Merged
TThanos3000 merged 4 commits intoSep 18, 2026
Merged
Conversation
…e-analytics-widget DEV: read-only аналитика программы для ролевого Angular-виджета
…ault-cover-reset-api DEV: сброс обложки проекта на стандартную
TThanos3000
marked this pull request as ready for review
September 18, 2026 19:34
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.
Добавляет ролевую аналитику программы для существующего Angular-приложения и безопасный возврат пользовательской обложки проекта к стандартной. Виджет использует общие расчёты основной PROD-аналитики; новый reset-cover сохраняет действующие права Project.
Точные версии и источники
4c49f5918e571708f872c532b1f5154fc2a03428.71d692044b36b010c61c569eac6614efc86a8e80.release/prod-program-analytics-project-cover.8ed5670d2123dd1f1b53668567ad60bde8641bccdd3d48b121a1fd0668857c9b8766bb588be2360bПеренос выполнен последовательно через cherry-pick указанных merge commits. Слияние dev → master целиком не выполнялось; дополнительные DEV commits не включены.
Совместимость и разрешение конфликтов
Конфликт detail программы разрешён с сохранением PROD-поля
current_project_applicationи его прежней leader-only семантики.current_applicationне добавлялся и не менялся. Для эксперта без member-роли добавлен read-onlyis_user_expert.Виджет адаптирован к существующим PROD
project_analytics/project_assignment_analytics: переиспользуются_participant_metrics,participants_without_team_rows,_annotated_solution_rows,annotated_assignment_queryset. Метрики проектов и решений агрегируются по связям текущей программы; большая аналитика не сериализуется.POST /projects/{id}/reset-cover/использует permissions ProjectDetail, возвращает canonicalis_default_coverи защищает системные, чужие и совместно используемые файлы. Глобальный DELETE /files не изменён.Проверки
Локально: Python 3.11, изолированный PostgreSQL 18; рабочие DEV/PROD БД не использовались.
is_user_expert: false; точное сравнение словарей сохранено.python manage.py test --verbosity 1 --keepdb: 1554 теста, OK (skipped=3), exit 0, 1049.197 с. Три пропуска существовали ранее.makemigrations --check --dry-run: No changes detected.git diff --check: GREEN.GitHub Actions для exact release HEAD:
makemigrations --check --dry-run— No changes detected.После исходного port HEAD
431721ccc212f3a84df8a5f120c9b75306eae5eeфинальный коммит меняет только одну строку expected-контракта. Runtime diff тестового исправления — ноль; содержимое закоммиченного файла совпадает по SHA256 с проверенным полным suite.Migrations: none. Dependencies/lockfiles/workflows: unchanged. React и его Application/Team/Submission/Evaluation: untouched. Current_application/current_project_application, Project permissions и правила сдачи/оценивания: untouched.
Выпуск
Штатные checks завершились успешно. PR вручную смержен 2026-09-18 в 19:34:12 UTC до создания snapshot: фактический merge
83f2ac82d6a9ff8353f79e8feddcd796b60a4245. Deploy пока не запускался; до него обязательны COMPLETE snapshots текущего backend и frontend. Backend выпускается первым через неизменённый release-ci.yml с exact merge SHA, затем проверяется runtime. Angular разрешён только после успешной проверки backend. Старый Angular совместим с добавляемыми контрактами.Отдельный production test account/project не предоставлен: authenticated mutating PROD acceptance не выполняется.