DEV: детализация блока «Требует внимания» — API - #725
Merged
Conversation
TThanos3000
marked this pull request as ready for review
September 5, 2026 20:45
This was referenced Sep 5, 2026
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.
Результат
Backend-only v1 детализации двух существующих показателей «Требует внимания».
Angular сейчас не реализуется. После создания этого Draft PR работа останавливается.
GET /programs/<program_id>/manager-overview/participants-without-team/GET /programs/<program_id>/manager-overview/projects-awaiting-evaluation/Оба endpoint только для чтения: manager указанной программы / staff / superuser,
через существующий
can_manage_program; anonymous 401, нет доступа 403,неизвестная программа 404, изменяющие методы 405.
Аудит и семантика
PartnerProgramUserProfile.user_id. Команда —руководитель либо Collaborator проекта текущей программы; команда другой
программы не исключает.
profile.projectне используется как доказательство.MIN(datetime_created)именно текущей программы.В схеме уже есть unique(user, program): дубли запрещены БД, ограничение сохранено;
группировка защищает единственность строки без изменения схемы.
PartnerProgramProject, не назначение. Несданные иnot_readyне входят. В distributed включены отсутствие назначений, отсутствиезавершённых экспертов и частичное завершение; все назначения завершены — исключение.
В open сохранена первая оценка по критерию программы; прогресс назначений — null.
max_project_ratesне используется как обязательное число оценок._participant_profiles/_without_team_filter,_solution_rows,annotated_assignment_queryset.is_completed.Контракты overview / assignments / scores и SLA задержек не меняются.
Контракт и безопасность
Обёртка
count,next,previous,results; для работ такжеmode.Параметры:
limit=25(1–100),offset=0(>=0),searchпо имени/названию.Некорректная пагинация — 400. Trimmed search применяется в SQL до count и пагинации.
Без поиска count совпадает с соответствующей метрикой overview на неизменных данных.
Сортировка: участники — первая регистрация + user_id; работы — дата сдачи
(неизвестная последней) + ID связи. Имена, аватары и city — только явный allow-list;
email, телефон, auth, анкеты не раскрываются. Неизвестная дата сдачи остаётся null.
Пустое имя — «Участник №ID».
Project.leaderв текущей БД NOT NULL; defensiveконтракт leader=null проверен отдельно на уровне serializer без изменения схемы.
Причины: «Эксперты не назначены», «Нет завершённых оценок», «Частично оценено»,
«Ожидает первой оценки». Отсутствие завершения не названо отсутствием начала.
Полные JSON-примеры, источники, правила, ограничения и параметры:
docs/program-manager-analytics-api.md. Новые функции имеют содержательные docstrings.Проверки
безопасные поля, поиск до пагинации, стабильность, совпадение count и SQL-бюджет.
manage.py check,check --tag models: успешно.makemigrations --check --dry-run: No changes detected.git diff --check: успешно.Ограничение локальной среды: Python 3.12 / flake8 5.0.4 даёт 29 замечаний в
неизменённых файлах; те же замечания воспроизведены из origin/dev через stdin.
GitHub Lint (штатный Python 3.11) прошёл. Локальные Django tests импортируют
существующую внешнюю заглушку WeasyPrint из-за отсутствия Pango — это не проверка
PDF. Стандартный и PostgreSQL CI используют реальные зависимости. Локального
PostgreSQL нет; выполнение проверяется штатным workflow_dispatch на этой ветке.
Границы
Изменены только восемь файлов backend-аналитики, её тестов и документации.
Модели, миграции, зависимости, scoring/submission lifecycle, авторизация,
Angular, React, shared app-modal, workflows, Docker и deployment не менялись.
Нет новых действий записи, сообщений, назначений экспертов, SLA или выгрузок.
Ручной browser smoke и deploy не выполнялись. PR — Draft; merge/deploy запрещены.
База:
079e4225c378526bbff1abcf5188c2b557938b0a.Head:
5b030625499efe94cfd67db9694c713eecf2539f.Ветка:
feature/dev-program-attention-drilldown-api.