Skip to content

Проверка сроков программы в API и админке - #845

Draft
TThanos3000 wants to merge 2 commits into
devfrom
fix/dev-program-setup-validation
Draft

TThanos3000 wants to merge 2 commits into
devfrom
fix/dev-program-setup-validation

Conversation

@TThanos3000

@TThanos3000 TThanos3000 commented Oct 29, 2026 •

Copy link
Copy Markdown
Collaborator

Что изменено

Редактирование календаря больше не позволяет сохранить окончание программы раньше начала или регистрацию после окончания программы. API, подготовка к публикации и Django-админка используют общую проверку.

Зачем

При проверке dev опубликованная программа принимала несовместимые даты и сохраняла их после перезагрузки.

Реализация

  • Общие проверки порядка дат и повторного открытия завершенных сроков.
  • Частичный календарь черновика остается допустимым; известные даты должны согласовываться.
  • В админке добавлено подтверждение повторного открытия приема или оценивания.
  • Пустой город допустим в API и админке: город можно очистить, а карточка созданной без города программы сохраняется.
  • Правки названия старых программ не блокируются из-за ранее сохраненного календаря.

API

PATCH /programs/{id}/management/settings/dates/ возвращает 400 с ошибками соответствующих полей для несовместимых дат. Параметры запросов и успешные ответы сохранены; 409 для повторного открытия срока и optimistic locking сохранены.

UI

Админка показывает ошибки у полей и русскую галочку подтверждения. Клиентские подсказки и заголовок программы идут отдельным frontend PR.

Permissions

Не менялись: сохранены проверки доступа к конкретной программе; отрицательные сценарии 401/403 проверены.

Проверки

  • PostgreSQL 18: 81 тест в test_program_dates, test_program_launch, test_management_api и test_registration_admin.
  • Black и flake8 для затронутых файлов; git diff --check.
  • Браузер на локальном стенде: отклонение неверных дат, сохранение без города, повторное открытие только после подтверждения, публикация.

Acceptance criteria

  • Некорректные даты не сохраняются в API и админке.
  • Регистрация может продолжаться после старта вплоть до окончания программы.
  • Неполный черновик и прошлые сроки существующей программы допустимы.
  • Прямой запрос не расширяет доступ.
  • Повторное открытие завершенного срока требует одинакового подтверждения.

Не проверено

Повторная проверка исправлений на dev после merge.

Риски / migration

Миграции и пересохранение существующих данных не нужны. Предпочтителен порядок API → Angular; API совместим с текущим клиентом.

Связанный PR: PROCOLLAB-github/procollab#515.

This branch has not been deployed

No deployments
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.

1 participant