Skip to content

feat: раздел «Кейсы и поля» в панели организатора - #436

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

TThanos3000 merged 1 commit into
devfrom
feat/dev-program-cases-fields

Conversation

@TThanos3000

@TThanos3000 TThanos3000 commented Oct 17, 2026 •

Copy link
Copy Markdown
Contributor

Что изменено

В панели организатора появился раздел Настройки → Кейсы и поля по согласованным макетам. Кейсы добавляются по названию, дополнительные поля настраиваются в окне по центру. Изменения применяются общей кнопкой сохранения.

Зачем / реализация

Перенос настройки формы программы из Django admin в UI. Четыре новых типа: короткий/развёрнутый текст, список и файл; обязательность перед сдачей, подсказки и варианты. Использованные кейсы и поля защищены. Общий компонент полей используется командой и локальным предпросмотром. Есть подтверждение ухода, сохранение ввода после ошибок, защита от устаревших правок и мобильная раскладка.

API

Зависит от api#785, backend выпускается первым. Типизированный GET/PUT project-form; существующие leader-only endpoints ответов и сдачи сохранены. Пустые дополнительные поля и кейс можно сохранить в черновике; при сдаче показываются ошибки, новые серверные определения загружаются без потери ввода. Файл загружается существующим FileService.

UI / Permissions

Сохранены shell, Mont и PROCOLLAB field/button/choice/modal foundation. Native Field adapter расширен на select. 1440/390/360, keyboard/focus, loading/empty/error/success/disabled/409/dirty leave. Предпросмотр не сохраняет ответы и не загружает файлы в хранилище. Права определяет backend; организатор не меняет ответы команд. Новые обязательные поля нужны только ещё не сданным проектам.

Проверки / acceptance

  • Vitest: 422 файла / 2165 тестов, vitest run --maxWorkers=2 --minWorkers=1 (3 исключённых файла по существующей конфигурации не входят).
  • 16 browser checks с реальным локальным PostgreSQL/API: сохранение и reload, пустой draft с очисткой case/text, файл и повторное открытие проекта, submit errors, 409, dirty leave, preview, 1440/390/360. Только внешний storage transport заменён тестовым ответом.
  • ESLint изменённых TS; stylelint затронутых SCSS; diff check.
  • Dev build; полный Prettier check с --end-of-line auto (Windows checkout CRLF), source остаётся совместим с LF checkout в CI.

Не проверено / risks

Авторизованный live organizer на dev и реальный Selectel upload до выкладки не проверены. Сначала выпустить API. Схема БД не меняется. Production не входит в scope.

Dev deployment

Deploy to dev-stage passed, release8111cf6. Live new main/editor bundle, protected deep links and desktop/mobile login checked; no page/static errors.

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