Skip to content

Add expert evaluation backend flow - #670

Merged
TThanos3000 merged 2 commits into
masterfrom
feature/dev-050-expert-evaluation-api
Jul 27, 2026
Merged

Add expert evaluation backend flow#670
TThanos3000 merged 2 commits into
masterfrom
feature/dev-050-expert-evaluation-api

Conversation

@TThanos3000

@TThanos3000 TThanos3000 commented Jul 27, 2026

Copy link
Copy Markdown
Collaborator

Что изменено

  • Добавлен PII-safe Expert Submission API для назначенных решений.
  • Добавлен domain service и mutation API для draft/autosave/final submit Evaluation.
  • Добавлен read-only manager API оценок программы.
  • Существующий Assignment response обратно совместимо расширен nullable summary Evaluation.
  • Добавлены scoped throttling, Swagger/OpenAPI schemas, документация и 52 новых теста.

Roadmap

Roadmap-IDs: DEV-050, DEV-051, DEV-052
Roadmap-Complete: DEV-050, DEV-051, DEV-052
Roadmap-Partial:

API

  • GET /expert/submissions/
  • GET /expert/submissions/<submission_id>/
  • GET /submissions/<submission_id>/evaluations/my/
  • POST /submissions/<submission_id>/evaluations/
  • GET/PATCH /evaluations/<evaluation_id>/
  • POST /evaluations/<evaluation_id>/submit/
  • GET /programs/<program_id>/evaluations/
  • GET /programs/<program_id>/evaluations/<evaluation_id>/
  • Расширен GET /programs/<program_id>/submission-assignments/.

Права доступа

Expert endpoints требуют текущий program membership и assignment assigned/completed; mutation draft требует assigned. Чужие и неназначенные объекты скрываются через 404. Manager endpoints ограничены своей Program, staff сохраняет административный read-only доступ. Expert serializer не возвращает Application/participant/Team/form_data/email/phone и Evaluation других экспертов.

Проверка

  • manage.py check --tag models — passed.
  • manage.py makemigrations --check --dry-run --skip-checks — No changes detected.
  • flake8 всех измененных Python-файлов — passed.
  • Black для новых и затронутых модулей — passed; исторически неформатированный procollab/settings.py не переформатирован, чтобы избежать unrelated churn.
  • git diff --check — passed.
  • Root URL reverse/resolve и OpenAPI paths всех новых endpoints — passed.
  • 99 targeted tests обнаружены локально; запуск заблокирован остановленным PostgreSQL на localhost:5432, настройки БД не менялись.
  • GitHub CI — passed: lint и 912 tests, 1 PostgreSQL-only row-lock test корректно skipped на SQLite.

Риски и ограничения

  • total_score остается null: формула Program не реализуется в этом контуре.
  • Submission.form_data целиком исключен из expert detail, поскольку надежного solution-only allowlist пока нет.
  • Concurrency submit test выполняется только на БД с select_for_update; SQLite CI не проверяет row-level locking.
  • Reopen, revision history, Result/ranking, export, notifications и синхронизация с legacy ProjectScore не входят в PR.
  • Deploy, Docker, nginx, GitHub Actions, frontend и legacy Angular flow не менялись.

@TThanos3000
TThanos3000 merged commit 6368cc5 into master Jul 27, 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.

1 participant