Skip to content

PROD: аналитика программы и стандартная обложка проекта - #744

Merged
TThanos3000 merged 4 commits into
masterfrom
release/prod-program-analytics-project-cover
Sep 18, 2026
Merged

TThanos3000 merged 4 commits into
masterfrom
release/prod-program-analytics-project-cover

Conversation

@TThanos3000

@TThanos3000 TThanos3000 commented Sep 18, 2026

Copy link
Copy Markdown
Collaborator

Добавляет ролевую аналитику программы для существующего Angular-приложения и безопасный возврат пользовательской обложки проекта к стандартной. Виджет использует общие расчёты основной PROD-аналитики; новый reset-cover сохраняет действующие права Project.

Точные версии и источники

  • PROD base master: 4c49f5918e571708f872c532b1f5154fc2a03428.
  • Release HEAD: 71d692044b36b010c61c569eac6614efc86a8e80.
  • Ветка: release/prod-program-analytics-project-cover.
DEV PR Выборочно перенесённый merge commit
#742 — ролевой виджет 8ed5670d2123dd1f1b53668567ad60bde8641bcc
#743 — стандартная обложка dd3d48b121a1fd0668857c9b8766bb588be2360b

Перенос выполнен последовательно через cherry-pick указанных merge commits. Слияние dev → master целиком не выполнялось; дополнительные DEV commits не включены.

Совместимость и разрешение конфликтов

Конфликт detail программы разрешён с сохранением PROD-поля current_project_application и его прежней leader-only семантики. current_application не добавлялся и не менялся. Для эксперта без member-роли добавлен read-only is_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, возвращает canonical is_default_cover и защищает системные, чужие и совместно используемые файлы. Глобальный DELETE /files не изменён.

Проверки

Локально: Python 3.11, изолированный PostgreSQL 18; рабочие DEV/PROD БД не использовались.

  • Строгий detail contract: все три ранее падавших subtests GREEN. Единственное отличие expected — намеренное поле is_user_expert: false; точное сравнение словарей сохранено.
  • Targeted widget / reset-cover / permissions / legacy analytics / program detail / оценивание: 221 тест, OK, exit 0.
  • python manage.py test --verbosity 1 --keepdb: 1554 теста, OK (skipped=3), exit 0, 1049.197 с. Три пропуска существовали ранее.
  • Django check и check --tag models: 0 issues.
  • makemigrations --check --dry-run: No changes detected.
  • Black, flake8, git diff --check: GREEN.

GitHub Actions для exact release HEAD:

  • Backend PostgreSQL CI, run 35383919892: SUCCESS, полный suite 1554 теста, OK (skipped=3), 568.806 с; locking/constraints 86 тестов GREEN; quarantine 16 тестов, skipped=2; makemigrations --check --dry-run — No changes detected.
  • CI, run 35383821551: SUCCESS, Tests — 1554 теста, OK (skipped=8), 1296.248 с; Lint — SUCCESS. Число пропусков отличается от PostgreSQL job из-за штатных настроек этого workflow.

После исходного 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 не выполняется.

@TThanos3000
TThanos3000 marked this pull request as ready for review September 18, 2026 19:34
@TThanos3000
TThanos3000 merged commit 83f2ac8 into master Sep 18, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants