Skip to content

fix: исключать участника из команды проекта-заявки программы - #810

Merged
TThanos3000 merged 1 commit into
devfrom
fix/dev-remove-application-team-member-20261021
Oct 21, 2026
Merged

TThanos3000 merged 1 commit into
devfrom
fix/dev-remove-application-team-member-20261021

Conversation

@TThanos3000

@TThanos3000 TThanos3000 commented Oct 21, 2026 •

Copy link
Copy Markdown
Collaborator

Что изменено

Удаление участника из программы теперь исключает его из команды проекта-заявки этой программы и отзывает приглашения в заявку. Команда исходного проекта, аккаунт и регистрации в других программах сохраняются. Уже сданная заявка сохраняет оценки и назначения экспертов.

Зачем

При подаче существующего проекта создается отдельная копия-заявка. Удаление одной регистрации оставляло участнику доступ к ее команде и чату и могло блокировать сдачу оставшейся командой.

Реализация

Подписанный preview включает затронутые команды, приглашения и связи программ. Операция использует существующий порядок блокировок Project NO KEY UPDATE → программы → регистрации. Общий legacy Project нескольких программ отклоняется409 без изменений. Сохраняется прежнее предупреждение/отвязка заявки при удалении руководителя.

API

participants/remove-preview/ добавляет confirmation_version:2 и team_changes. participants/remove/ требует confirmation_version:2; старый интерфейс с обещанием сохранить команды получает400 с просьбой обновить страницу. Старые preview отклоняются409. Внедрение API первым, затем Angular PROCOLLAB-github/procollab#473.

UI

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

Permissions

Доступ организатора и object scope сохраняются на сервере. Отзываются и обработанные Invite, дающие READ. Уже открытый project socket проверяет текущее членство перед отправкой/приемом событий; формат клиентских сообщений и личные чаты сохранены.

Проверки

  • Checked by source: requirement audit, call chains, scope, compatibility и lock order.
  • Checked by tests:51 отдельный сценарий PostgreSQL проверен в исправленных локальных запусках; окончательный запуск10 новых сценариев passed; включает реальный duplicate, frozen submitted team, minimum-size, source/foreign preservation, permissions, stale/old confirmation, concurrency, project/direct chats.
  • Black/flake8 changed files, git diff check.
  • Full PostgreSQL1277+39 and compatibility1277/29 expected skips passed.
  • Final published desktop/mobile1440/390/360 QA passed all6 workflows;14 anonymous actual DEV routes passed.

Acceptance criteria

  • AC1–AC7: scoped deletion/source preservation, HTTP/WS revocation, retained scores/submit, leader/shared/stale/permissions/concurrency покрыты тестами.
  • AC8: локальные Angular modal и desktop/mobile QA1440/390/360 прошли; финальная проверка опубликованной версии остается после deployment.

Не проверено

Настоящие пользователи и SMTP намеренно не изменяются; browser business writes выполняются только в изолированном local PostgreSQL/Django с тестовой почтой.

Риски / migration

Миграций нет. API-first rollout требует новый frontend confirmation_version2. Legacy общий Project возвращает409, команды других программ не меняются. Production не затрагивается.

DEV deployments completed: API PR810 →1c424ff7 (run39587159832), frontend PR473 →cc95cda8 (run39587847132). Merge trees match tested sources. Production, real users and SMTP unchanged.

@TThanos3000
TThanos3000 merged commit 1c424ff into dev Oct 21, 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