Skip to content

feat(programs): private creation and first publication - #837

Merged
TThanos3000 merged 8 commits into
devfrom
feat/dev-program-creation-publication
Oct 27, 2026
Merged

TThanos3000 merged 8 commits into
devfrom
feat/dev-program-creation-publication

Conversation

@TThanos3000

@TThanos3000 TThanos3000 commented Oct 26, 2026 •

Copy link
Copy Markdown
Collaborator

Что изменено

Организатор с отдельно выданным правом может создать приватный черновик трех форматов и открыть регистрацию после подготовки страницы, сроков и анкеты. Программа и анкета публикуются одной транзакцией; форма решения, критерии и эксперты могут быть настроены позже.

Зачем

Убрать обязательное ручное создание/включение программы и сохранить существующие редакторы. Спецификация и AC audit.

Реализация

Новые авторы видят полные данные страницы без participant enrollment. Draft creation/list/readiness/preview/publish, permission and privacy boundary, idempotency and optimistic revision. Migration0040 допускает незаполненные даты у draft и сохраняет обязательные даты опубликованных программ. Legacy formats/flags не переклассифицируются.

API

Wire contract. Новые /programs/capabilities/, /drafts/, /managed/, /{id}/management/{launch,preview,publish}/. Существующие basic/dates/registration editors сохраняются; draft registration подготавливается без отдельного открытия приема. Сохранены budgets запросов существующей аналитики. При первой публикации дедлайн регистрации должен быть в будущем и не позже окончания программы включительно; регистрация после старта разрешена. При нарушении возвращаются dates blocker и HTTP400 без публикации программы/анкеты.

UI

Angular companion PR #513 добавляет entry/list/checklist/readonly preview/publication, использует существующий renderer анкеты. Figma. Сам API не меняет визуальные компоненты.

Permissions

Creation: partner_programs.add_partnerprogram через существующий Django admin. Existing staff/manager без этого права не создают программы. Management/publish: существующий can_manage_program. Чужие draft endpoints и личные program lists скрывают черновик даже при вручную созданном membership; private/no-store; preview не создает участника/просмотра и не запускает participant writes.

Проверки

  • 1045 program tests +135 project tests на изолированном PostgreSQL18/ICU.

  • После включения свежего dev:30 launch/public-project regression tests.

  • Django check, makemigrations --check, Black, flake8; migration на пустой базе.

  • Real Angular + Django/PostgreSQL browser: create/settings/questionnaire/preview/publish, participant enrollment, noncompetitive launch, mobile360/390, errors/permissions.

  • Базовая ревизия b7050c0: обычный Linux CI — Lint и Tests success; полный PostgreSQL CI — success. Native PDF tests проверены Linux CI.

  • На 7ba2a97:29 launch tests на PostgreSQL и SQLite (на SQLite 2 row-lock tests корректно пропущены по DB feature); Black/flake8 и обновленный Figma screenshot прошли. Browser lost-response/manager-page scenario проверен до уточнения дат; Angular runtime source не менялся. Локальные4 native PDF tests исключены только внешним Windows harness из-за Pango access violation; repository tests не пропущены.

  • Полные Linux CI и PostgreSQL CI для 7ba2a97 успешно завершились после уточнения сроков.

Acceptance criteria

  • AC01–AC17: подробный audit и уровень evidence в спецификации.
  • Privacy, stale/duplicate requests, concurrent create/publish и atomic rollback.
  • Early publication до настройки конкурсного решения, canonical eligibility и operator rollback.

Не проверено

Live authenticated dev acceptance и внешний административный integration handshake. Local real-API QA не выдается за deployment. Linux native PDF rendering проверяет CI.

Риски / migration

Включены свежие dev changes до7b6a0c4. Сначала merge/deploy API и migration0040, затем Angular companion. Dev compose уже задает EXPERT_WORKSPACE_FRONTEND_URL=https://dev.procollab.ru для web и Celery; ссылки нового flow используют эту существующую настройку. Право создания выдать выбранным пользователям отдельно.

Rollback: убрать entry/creation permission, сохранить schema и draft privacy. Не обращать nullable migration при существующих неполных черновиках и не откатывать на старый публично читаемый draft API. Production release в scope не входит.

@TThanos3000
TThanos3000 marked this pull request as ready for review October 27, 2026 00:39
@TThanos3000
TThanos3000 marked this pull request as draft October 27, 2026 09:35
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