Repository navigation
feat: real assignments for the expert cabinet - #820
Merged
Merged
Conversation
13 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.
Что изменено
Кабинет эксперта может получить собственные реальные назначения через
GET /evaluation/programs/?include=projects: оставшиеся и завершенные проекты, программу, кейс и доступность оценки.Зачем
Новый кабинет должен показывать существующие назначения и реальные состояния вместо выдуманных черновиков оценок. Дизайн: https://www.figma.com/design/tvog0fpEgWgEtr7KUTjbyE?node-id=959-4431.
Реализация
Read-only projection использует общую SQL-проверку завершенности назначения, включая нулевые баллы, логические и текстовые критерии. Поиск и фильтр программы работают на сервере; страницы по 20, ближайший срок первым, программы без срока последними. Счетчики вкладок не зависят от фильтров. В выдаче только опубликованные проекты с действующей связью программы.
API
Без
include=projectsпрежний ответ не меняется. Расширение добавляетprojectsс count/limit/offset/pending/completed/unavailable/results. Параметры status, q, program_id, limit, offset валидируются. Строка содержит assignment_id/project_id/program_id/name/case_name/is_completed/can_rate/blocked_reason. Нет новых endpoints записи, моделей и миграций.UI
Angular использует этот read contract отдельным PR. Форма оценки не менялась. Локальный браузер проверяет реальные запросы к изолированному Django/PostgreSQL с синтетическими назначениями.
Permissions
Только текущий пользователь, его назначения и текущее членство эксперта в программах. Выдача дополнительно ограничена программами возвращаемой сводки. Глобальная административная роль не дает чужую нагрузку. Draft/unlinked проекты и чужие программы не раскрываются. Cache-Control: no-store сохранен. Правила сдачи, оценки, приглашений и доступа не менялись.
Проверки
manage.py test project_rates.tests partner_programs.tests.test_assignment_analytics_api— 139 passed, локальный PostgreSQL 18.flake8по четырем затронутым Python-файлам — passed.makemigrations --check --dry-run— No changes detected.git diff --check— passed.44df38af746690d2733c86c8d67b29bc39fbfc84; runtime image/source identity verified.Acceptance criteria
Не проверено
Реальная DEV-сессия конкретного эксперта до выкладки. Штатные CI и DEV deployment checks завершены успешно.
Риски / migration
Сначала выложить backend, затем Angular. Read projection добавляет запросы к существующему summary; детализация ограничена текущей страницей. Миграции и перенос данных не требуются. Production вне scope.