Repository navigation
Проверка сроков программы в API и админке - #845
Merged
Merged
Conversation
11 tasks done
TThanos3000
marked this pull request as ready for review
October 30, 2026 13:24
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.
Что изменено
API настройки сроков, подготовка к публикации и Django admin используют общую проверку календаря. Окончание программы должно быть позже начала, регистрация может идти после старта и завершаться в момент окончания программы. Неверные изменения не сохраняются.
Зачем
При проверке dev опубликованная программа принимала несовместимые даты. Исправление сохраняет возможность неполного календаря черновика и редактирования существующих программ с прошлыми сроками.
Реализация
Общие
program_date_errorsиreopens_program_deadline; подтверждение повторного открытия регистрации, сдачи с прежним fallback и оценивания. В обоих редакторах допустим пустой город. Изменение названия через admin не блокируется ранее сохраненным несовместимым календарем.API
PATCH /programs/{id}/management/settings/dates/возвращает 400 с ошибками полей для несовместимых дат. Payload, успешный ответ, object scope, optimistic locking и 409reopen_confirmation_requiredсохранены. Старый Angular совместим.UI
В Django admin ошибки показаны у полей; добавлена галочка подтверждения повторного открытия. Клиентские подсказки и заголовок программы находятся в Angular №515.
Permissions
Не менялись. Прямые запросы постороннего пользователя и без авторизации проверены: 403/401.
Проверки
Проверенная feature revision:
499ec8f54af226c6ef25410ccbedf4c698ed516b. Merge в dev:4dfc0b2b249894c1f8ba1a1aa1807776d9735566.test_program_dates,test_program_launch,test_management_api,test_registration_adminна отдельной локальной PostgreSQL test database; PASS.--select=E,F,W,C90), Django check,makemigrations --check --dry-runиgit diff --check— PASS; незакрытых замечаний review нет.Acceptance criteria
Приемка dev
PR слит в dev. CI 41064782885 — Lint и Tests success. Deploy Dev 41064782882 — success. Лог сервера подтверждает HEAD
4dfc0b2b249894c1f8ba1a1aa1807776d9735566и pinned web/worker image. Штатный routing smoke и независимая HTTP-проверка dev прошли: SPA/admin 200, закрытые API 401, некорректные запросы авторизации 400.Не проверено
Авторизованное редактирование сроков на dev после merge: в облачной сессии нет входа в dev; соответствующая связка Angular/API/PostgreSQL проверена на локальных вымышленных данных. Внешние интеграции и production не проверялись. Angular build и полный frontend suite относятся к связанному PR №515.
Риски / migration
Миграции и пересохранение существующих данных не нужны. Порядок внедрения: API №845 → успешный dev deploy → Angular №515 → dev acceptance. API №845 уже слит и развернут в dev. Прод не затрагивался.