Repository navigation
feat: раздел Оценивание и редактор критериев программы - #437
Merged
Merged
Conversation
10 tasks done
10 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.
Что изменено
В панели организатора появился раздел «Настройки → Оценивание → Критерии». Организатор редактирует общий набор критериев для всех кейсов через центрированное окно, проверяет форму эксперта в предпросмотре и сохраняет изменения явно. После первой оценки набор становится доступен для чтения.
Зачем
Переносим управление критериями из Django admin в пользовательский UI. Утверждённые макеты: https://www.figma.com/design/tvog0fpEgWgEtr7KUTjbyE?node-id=267-3220
Реализация
Typed port → HTTP adapter → repository → use-case; самостоятельный settings component с dirty/busy guards. Типы V1: целые баллы, «Да/нет», комментарий. Общая форма эксперта используется и в preview: min/max, целочисленность, ноль, «Нет», 50 символов комментария; существующий float не ломает форму.
При смене критериев открытая форма эксперта получает 409, сохраняет введённые ответы и обновляет revision перед повторной отправкой. Для удалённых/сменивших тип критериев исходные ответы остаются в отдельном блоке сравнения. Пустой набор не предлагает отправку пустой оценки.
API
Зависит от PROCOLLAB-github/api#786 — сначала API + миграция 0021, затем этот frontend.
GET/PUT
/programs/{id}/management/criteria/, manager optimistic revision и first-score conflict. Оценки отправляются с criteria_revision из GET/rate-project/{id}. Старый массив сохранён как fallback для старого API.UI
Существующий shell, Mont и foundations; пятый settings tab; редактор и preview по центру. На телефоне настройки 2+2+1, строки переносят действия вниз; overlay 350px при ширине 390px. Loading/error/retry/success/empty/no-access, dirty leave и конфликт первой оценки.
Permissions
Existing management guard сохранён; доступ и неизменяемость критериев проверяет API. Права экспертов, распределение, лимиты и дедлайны не расширены.
Проверки
--end-of-line autoдля Windows checkout; Linux CI использует обычную команду.Acceptance criteria
Не проверено
Авторизованный remote smoke недоступен из-за сбоя инициализации подключённого браузера. Организатор/эксперт проверены локально с реальными API/БД. На удалённом dev: 18 анонимных smoke checks PASS, без page/static errors; новая management-сборка и защищённый endpoint проверены.
Риски / migration
Frontend миграций нет. API PR #786 с миграцией должен быть внедрён первым. Расчёт итогов и назначение экспертов не менялись. Production rollout вне задачи.
DEV rollout
Deploy to dev-stage PASS, fc30d94. Подаются main-B2ODAFEK.js и management bundle chunk-QUOXTRXX.js. API #786 и миграция 0021 внедрены первыми.