Repository navigation
feat: управление кейсами и общими полями проекта - #785
Merged
Merged
Conversation
4 tasks done
11 of 12 tasks
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 по согласованным макетам.
Реализация / API
Новый manager-only GET/PUT
/programs/{id}/management/project-form/: кейсы с количеством проектов, поля с количеством ответов, единое атомарное сохранение, timestamp + revision против устаревших изменений. Контракт описан вdocs/program-management-project-form.md.Использованные кейсы/варианты, типы и удаление полей с ответами защищены. Существующие имена и специальные checkbox/radio сохраняются. Новые обязательные поля действуют перед сдачей ещё не сданных проектов; уже сданные сохраняют статус и ответы. Пустое значение при draft PUT очищает ответ, пропуск ключа сохраняет partial-update семантику. Missing required fields при submit дополнительно возвращают стабильный code для обновления клиентом формы без потери ввода.
UI
В frontend#436: Настройки → Кейсы и поля, редактор по центру и локальный предпросмотр. API выпускается первым.
Permissions
Управление только менеджеру конкретной программы или staff/superuser. Ответы команды по-прежнему редактирует только лидер; дедлайны, team policy и freeze после сдачи сохранены.
Проверки / acceptance
Не проверено / migration
Live organizer на dev до деплоя не проверен. Файл хранится как URL в value_text: исправлено повторное открытие проекта со старым сериализатором, добавлен GET-regression test. Миграция схемы не требуется. Production не входит в scope.
Dev deployment
Deploy Dev passed, runtime eeb8445; admin/Celery smoke and new GET/PUT authentication guards checked.