Skip to content

feat: раздел Оценивание и редактор критериев программы - #437

Merged
TThanos3000 merged 1 commit into
devfrom
feat/dev-program-evaluation-criteria
Oct 17, 2026
Merged

TThanos3000 merged 1 commit into
devfrom
feat/dev-program-evaluation-criteria

Conversation

@TThanos3000

@TThanos3000 TThanos3000 commented Oct 17, 2026 •

Copy link
Copy Markdown
Contributor

Что изменено

В панели организатора появился раздел «Настройки → Оценивание → Критерии». Организатор редактирует общий набор критериев для всех кейсов через центрированное окно, проверяет форму эксперта в предпросмотре и сохраняет изменения явно. После первой оценки набор становится доступен для чтения.

Зачем

Переносим управление критериями из 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. Права экспертов, распределение, лимиты и дедлайны не расширены.

Проверки

  • Source review по AC1–8, API chain и родительским guards.
  • GitHub final head: полный Vitest — 425 файлов, 2174 теста PASS. Локально также 65 targeted tests после финальных правок.
  • Development build, полный ESLint (0 errors, 6 existing warnings), changed SCSS stylelint.
  • Полный Prettier check с --end-of-line auto для Windows checkout; Linux CI использует обычную команду.
  • 12 сценариев в Chrome с реальными локальными Django/PostgreSQL: explicit save, диапазоны, ноль/Нет, preview без оценки, dirty leave, первая оценка и конфликт. Desktop 1440, mobile 390 и narrow 360, без page errors.

Acceptance criteria

  • AC1–2: navigation, список с названием, типом, шкалой и описанием.
  • AC3–4: центрированный редактор, три типа, общая форма preview/expert, отличие нуля от пустого ввода.
  • AC5–6: зафиксированный набор читается, preview доступен; конфликт сохраняет черновик без ложного успеха.
  • AC7–8: адаптив и состояния, подтверждение выхода, обработка ошибок.

Не проверено

Авторизованный 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 внедрены первыми.

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