Skip to content

Панель экспертов и Оценивание → Мои программы - #445

Merged
TThanos3000 merged 2 commits into
devfrom
feat/dev-experts-workspace
Oct 18, 2026
Merged

TThanos3000 merged 2 commits into
devfrom
feat/dev-experts-workspace

Conversation

@TThanos3000

@TThanos3000 TThanos3000 commented Oct 18, 2026 •

Copy link
Copy Markdown
Contributor

Выложено на DEV: frontend deployment, backend #788 выложен первым. Live API401/404 JSON и прямые SPA маршруты приглашения/reset проверены.

Что изменено

В панели организатора добавлена вкладка «Эксперты»: приглашение по email, список и нагрузка, ручные назначения, предпросмотр/применение автораспределения и изменение числа оценщиков. Эксперт получает путь приглашения и раздел «Оценивание → Мои программы» с личными счётчиками и назначенными проектами.

Зачем

Реализовать согласованные макеты на dev: эксперты, приглашение, кабинет.

Реализация

Новый evaluation port/HTTP adapter/repository/use case, state с защитой от ответов предыдущего аккаунта. Acceptance обновляет профиль и кеш программы; возврат после оценки обновляет счётчики. Новый приглашённый эксперт регистрируется по фиксированному email, с именем/фамилией/паролем и согласиями без birthday. Вход не принимает приглашение автоматически. Recovery сохраняет контекст; предусмотрены wrong account, expired/revoked, accepted и zero assignments.

API

Зависит от API #788. API должен быть выложен первым. Новые endpoints и ошибки описаны в docs/expert-workspace.md обоих repos. Rating получает assigned_only=1, прежний payload сохраняется. N — минимум, поэтому дополнительные назначенные эксперты могут закончить работу после достижения N. Для существующих экспертов организатор сначала назначает проекты через новую вкладку.

UI

Mont, текущая оболочка и DS Modal/CDK, Button, Field, Choice, Avatar, Alert. Все новые модалки по центру, длинные списки прокручиваются внутри; desktop-таблица и mobile-карточки. Поиск не теряет текст/фокус, повторное нажатие снимает выбор, кейс остаётся выбранным. Escape закрывает модалку и возвращает фокус. Добавлены нативные anchors для существующего appButton и опциональные инициалы Avatar без изменения старого fallback.

Меню открывает стабильный список программ, кнопка программы — сразу тот же список назначенных проектов. Основная роль не заменяется ролью эксперта. No-referrer на странице приглашения; пароль и приглашение не попадают в navigation return URL произвольного origin.

Permissions

Видимость меню задаёт server has_evaluation_access; кнопка оценки — is_user_expert конкретной программы. Организатор без membership видит только управление, эксперт — оценку, обе роли — обе кнопки, обычный участник — ни меню, ни оценку. Сервер остаётся источником разрешений. Pending не назначается, защищённые оценки не снимаются; 409 сохраняет выбор.

Проверки

  • DEV CI: 427 файлов,2213 тестов passed, полный format:check/lint/build, публикация rsync. Итоговый merge eaa5796.
  • Angular development build; ESLint изменённых TS; Stylelint новых SCSS; diff --check. Полное форматирование с Linux line endings: 1812 файлов passed (проверка в памяти, без массовой правки CRLF). Существующие Sass deprecation warnings остаются.
  • 20 browser acceptance checks в Chrome с настоящим изолированным Django/PostgreSQL и locmem mail: invite, signup без даты/верификации/onboarding, explicit login/accept, полный reset с новым паролем и возвратом к приглашению, manual/auto/N, сохранение 0/Нет и комментария, обновление счётчиков, входы/роли/zero, focus/search/case, Escape и 1440/390/360.
  • Визуально просмотрены desktop organizer/manual, mobile cabinet/signup/allocation; новая UI не имеет горизонтального переполнения.

Acceptance criteria

  • AC1–AC3 — invitation, короткая регистрация, вход/принятие/recovery/error states.
  • AC4–AC6 — manual/auto/N и полная оценка; серверная защита в API #788.
  • AC7 — личные программы, scoped roles и два входа в одну оценку.
  • AC8 — адаптив, центрированные модалки, состояния/фокус/поиск/фильтры.
  • AC9 frontend — tests/build/browser/source audit; API CI — в связанном PR.

Не проверено

Реальная доставка во внешний inbox и live authenticated flow на dev; прямые anonymous live routes приглашения/reset проверены на390px без JS errors; тестовые приглашения настоящим пользователям не отправлялись. В локальных снимках старые shell avatars с внешними placeholder URL блокируются изоляцией сети; новые initials fallback проверены. Production не проверяется и не выкатывается этой задачей.

Риски / migration

Backend #788 и его migrations/DEV Nginx routing перед Angular. Invited reset использует /expert-password-reset/ вне server /auth/. Новая дата рождения nullable только для приглашённой регистрации; обычные сценарии сохраняют своё правило. Реальные оценки/участники не редактируются для smoke test. Никакого React или production deploy. Подробности rollout — docs/expert-workspace.md.

@TThanos3000
TThanos3000 merged commit eaa5796 into dev Oct 18, 2026
@TThanos3000
TThanos3000 deleted the feat/dev-experts-workspace branch October 18, 2026 01:53
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