Skip to content

feat: встроенная регистрация участников в программу - #800

Merged
TThanos3000 merged 2 commits into
devfrom
feat/dev-native-registration-20261020
Oct 19, 2026
Merged

TThanos3000 merged 2 commits into
devfrom
feat/dev-native-registration-20261020

Conversation

@TThanos3000

@TThanos3000 TThanos3000 commented Oct 19, 2026 •

Copy link
Copy Markdown
Collaborator

Что изменено

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

Реализация и API

Добавлены program-scoped management endpoints для настройки, публикации, предварительного импорта XLSX/CSV и запроса подключения внешней формы. Публичные endpoints проверяют опубликованную версию, дедлайн, владение аккаунтом и ответы; подтверждение почты одноразовое, JWT возвращается в теле POST. Ссылка письма использует fragment. Импорт не меняет сохранённый список до подтверждения. Внешнюю интеграцию подключает администратор; запрос организатора не создаёт webhook.

Существующие программы остаются в legacy-режиме, пока организатор явно не опубликует новую конфигурацию. Старые Tilda endpoints для таких программ сохранены. После включения native-режима они не позволяют обходить новую анкету. Обычная регистрация и приглашения экспертов не меняются. Ответы доступны в карточке участника и на листе «Анкеты» отфильтрованной Excel-выгрузки.

Permissions

Настройки — только действующий организатор программы/администратор по существующему can_manage_program; участие — только текущий подтверждённый пользователь либо новый аккаунт после доказательства почты. Существующая почта не позволяет менять профиль, пароль или записывать другого пользователя. Черновики недоступны публично. Запись и публикация сериализуются блокировкой программы и проверкой revision.

Проверки

  • PostgreSQL: 1204 теста полного набора прошли; 27 тестов нового контура прошли повторно после итогового изменения транспорта email-ссылки. Покрыты конкурентная регистрация/публикация, права, дедлайн, одноразовость и срок токена, повторная отправка, архив, XLSX/CSV, регионы и восстановление пароля.
  • Django check, makemigrations --check, flake8 — успешно.
  • Angular: отдельный frontend PR. 22 интеграционные browser-проверки на 1440/390/360px прошли с изолированным Django и тестовой почтой; реальные пользователи и SMTP не использовались. Точный API HEAD прошёл PostgreSQL CI: 1204 теста.

Migration / rollout

partner_programs.0024 добавляет конфигурацию формы, ожидающую регистрацию и snapshot/регион ответа в участии. Существующие данные не переписываются. Сначала DEV backend + migration/runtime-права/Celery, затем Angular. Откат приложения не требует удаления ответов или таблиц. Production исключён.

Дизайн: https://www.figma.com/design/tvog0fpEgWgEtr7KUTjbyE/PROCOLLAB-Design-System-v1?node-id=652-3220

DEV — результат выкладки

Оба PR выложены на DEV. Миграция 0024, runtime-права, HTTP smoke и Celery прошли. На опубликованных файлах интерфейса повторены 22 browser-сценария на 1440/390/360px с изолированным API и тестовой почтой; ещё 6 реальных анонимных GET-проверок прошли. При загрузке DEV из тестового Chromium встречались сетевые таймауты (итоговый прогон прошёл с 3 повторами навигации); ошибок приложения и 5xx не обнаружено. Реальная SMTP-доставка и ручное подключение внешнего webhook не тестировались.

@TThanos3000
TThanos3000 marked this pull request as ready for review October 19, 2026 23:55
@TThanos3000
TThanos3000 merged commit 719815f into dev Oct 19, 2026
3 checks passed
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