Repository navigation
feat(programs): creation preview and publication flow - #513
Merged
Merged
Conversation
10 tasks done
TThanos3000
marked this pull request as ready for review
October 26, 2026 22:46
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.
Что изменено
Создание программы встроено в текущую страницу программ: собственный список с черновиками, короткая форма трех форматов, подготовка, readonly preview и первая публикация. Главные действия используют существующий primary CTA; старые страницы и редакторы сохранены.
Зачем
Дать организатору самостоятельный путь от названия до регистрации участников. Спецификация и AC audit.
Реализация
Existing ports/adapters/use-cases и route providers. Три даты программы типизированы nullable для draft; существующие карточки и deadline notices корректно обрабатывают незаполненные сроки. Сохраненные настройки, readiness/revision, idempotent create intent и recovery после ошибки публикации. Утраченный POST подтверждается через GET: устаревшая ошибка убирается, scoped detail cache сбрасывается; regression проверяет фактический ProgramRepository, browser проверяет свежую страницу. Существующая participant page используется в preview без enrollment/view/welcome/news side effects.
API
Зависит от API PR #837: creation permission, draft boundaries, nullable draft dates и atomic publication. Wire contract. Angular uses existing camel/snake interceptor. Уточненный серверный dates blocker запрещает дедлайн регистрации позже окончания программы; после старта и в момент окончания регистрация допустима. Существующий checklist отображает server detail, дополнительного frontend validator нет. Последнее изменение в этом PR — только синхронизация spec/contract, runtime source не менялся. Сначала API deploy с migration0040, затем этот PR.
UI
Figma:11 desktop +3 mobile. Mont, foundation/compact controls, действующий sidebar/detail/settings/registration. Порядок7 management sections сохранен. Preview анкеты вынесен в один компонент для обоих входов. Desktop primary справа; mobile DOM/focus order сохранен. До настройки формы решения участник видит объяснение и disabled creation.
Permissions
CTA зависит от server capability; прямые create/preview/publish проверяет API. Browser no-access проверен. UI не выдает полномочия по роли организатора существующей программы.
Проверки
Acceptance criteria
Не проверено
Авторизованный live dev acceptance после deployment. Внешние remote images/API заблокированы в изолированной QA-сессии, fallback avatar может быть недоступен на скриншотах. Figma uses Inter technical preview; runtime Mont проверен в браузере. Полный accessibility audit не заявляется.
Риски / migration
Включены актуальные dev changes до43f70c10; существующий public project reader и solution dialog fixes сохранены. DB migration находится только в API companion. Не выкладывать Angular раньше API. После deployment нужна авторизованная dev acceptance. Production release не входит в scope.