diff --git a/docs/modules/program-management.md b/docs/modules/program-management.md index 80c05429b..316af89a9 100644 --- a/docs/modules/program-management.md +++ b/docs/modules/program-management.md @@ -27,6 +27,16 @@ Backend проверяет manager именно этой программы ли Native adapters Button/Field/Choice/Table, существующие Modal/Icon/Pagination/Alert и Mont сохраняют PROCOLLAB DS. Foundation подключена локально также на desktop; глобальные компоненты не менялись. +## Исправления после dev-приёмки · 17.10.2026 + +Поиск остаётся в DOM при обновлении списка; завершение навигации предыдущего запроса не заменяет более новый ввод. Кейс и сдача привязаны через Reactive Forms, включая отложенное появление вариантов. Повторный клик по выбранному кружку или строке и клавиша пробела снимают выбор; ссылки сохраняют свои переходы. Подсказка недоступной оценки находится под общим рядом действий. + +Кнопки организатора занимают доступную ширину колонок, текст остаётся в одну строку. На 360px более длинной подписи управления выделено больше места. В составе команды используются существующий AvatarComponent и полная почта из приватного API; старый ответ без этих полей поддерживается. В материалах заголовок/описание и действие разнесены, empty/list состояния имеют отдельные отступы. + +Проверки: **2122 Vitest / 416 файлов PASS**, dev build, ESLint/Stylelint и 18 API tests на PostgreSQL. Chrome + реальный локальный Django/PostgreSQL: медленный посимвольный поиск в обоих списках с сохранением DOM/focus, кейс после reload и совместно со сдачей, toggle мышью/клавиатурой, геометрия действий, почты/загруженные аватары, материалы CRUD и desktop1440/mobile390/360. Снимки: [кнопки](../qa/program-management-v1/feedback-20261017/entry-desktop.png), [панель действий](../qa/program-management-v1/feedback-20261017/selection-desktop.png), [команда](../qa/program-management-v1/feedback-20261017/team-desktop.png), [материалы](../qa/program-management-v1/feedback-20261017/materials-desktop.png). + +Backend dependency: [API #780](https://github.com/PROCOLLAB-github/api/pull/780), additive `members[].email/avatar`; существующие права сохранены, миграций нет. Live авторизованная сессия организатора и реальный Selectel transport не проверялись. + ## Verification · 17.10.2026 52 теста Vitest в семи файлах: management facade, компонент, HTTP contract, утилиты дат/статусов, ProgramRepository, ProgramShellInfoService и существующий FileService. Проверены отмена устаревших запросов и сброс приватных данных при 403, выбор, dirty confirmation, версия записи, загрузка multipart через FileService и кеш после сохранения. diff --git a/docs/qa/program-management-v1/feedback-20261017/entry-360.png b/docs/qa/program-management-v1/feedback-20261017/entry-360.png new file mode 100644 index 000000000..ec74838e6 Binary files /dev/null and b/docs/qa/program-management-v1/feedback-20261017/entry-360.png differ diff --git a/docs/qa/program-management-v1/feedback-20261017/entry-desktop.png b/docs/qa/program-management-v1/feedback-20261017/entry-desktop.png new file mode 100644 index 000000000..ec22e06b6 Binary files /dev/null and b/docs/qa/program-management-v1/feedback-20261017/entry-desktop.png differ diff --git a/docs/qa/program-management-v1/feedback-20261017/materials-desktop.png b/docs/qa/program-management-v1/feedback-20261017/materials-desktop.png new file mode 100644 index 000000000..fb74094a9 Binary files /dev/null and b/docs/qa/program-management-v1/feedback-20261017/materials-desktop.png differ diff --git a/docs/qa/program-management-v1/feedback-20261017/materials-populated-mobile.png b/docs/qa/program-management-v1/feedback-20261017/materials-populated-mobile.png new file mode 100644 index 000000000..ca89fcc7e Binary files /dev/null and b/docs/qa/program-management-v1/feedback-20261017/materials-populated-mobile.png differ diff --git a/docs/qa/program-management-v1/feedback-20261017/selection-desktop.png b/docs/qa/program-management-v1/feedback-20261017/selection-desktop.png new file mode 100644 index 000000000..7ad64947e Binary files /dev/null and b/docs/qa/program-management-v1/feedback-20261017/selection-desktop.png differ diff --git a/docs/qa/program-management-v1/feedback-20261017/team-desktop.png b/docs/qa/program-management-v1/feedback-20261017/team-desktop.png new file mode 100644 index 000000000..e61f0dfeb Binary files /dev/null and b/docs/qa/program-management-v1/feedback-20261017/team-desktop.png differ diff --git a/docs/qa/program-management-v1/feedback-20261017/team-mobile.png b/docs/qa/program-management-v1/feedback-20261017/team-mobile.png new file mode 100644 index 000000000..49b80e411 Binary files /dev/null and b/docs/qa/program-management-v1/feedback-20261017/team-mobile.png differ diff --git a/projects/social_platform/src/app/domain/program/program-management.model.ts b/projects/social_platform/src/app/domain/program/program-management.model.ts index f5ba6e5e7..360f56df0 100644 --- a/projects/social_platform/src/app/domain/program/program-management.model.ts +++ b/projects/social_platform/src/app/domain/program/program-management.model.ts @@ -79,7 +79,13 @@ export interface ManagementTeam { projectId: number; programLinkId: number; name: string; - members: { id: number; name: string; role: string }[]; + members: { + id: number; + name: string; + role: string; + email?: string | null; + avatar?: string | null; + }[]; } export interface ManagementEvaluation { projectId: number; diff --git a/projects/social_platform/src/app/ui/pages/program/management/management.component.html b/projects/social_platform/src/app/ui/pages/program/management/management.component.html index b36349bf3..9224687cc 100644 --- a/projects/social_platform/src/app/ui/pages/program/management/management.component.html +++ b/projects/social_platform/src/app/ui/pages/program/management/management.component.html @@ -30,13 +30,13 @@

Управление программой

{{ requestError() }}

- } @else if (state.pending()) { + } @else if (state.pending() && !state.program()) {
Загружаем данные программы…
} @else if (state.program(); as program) { @if (section() === "participants" || section() === "projects") { -
+

{{ section() === "participants" ? "Участники" : "Проекты" }}

{{ @@ -65,7 +65,10 @@

{{ section() === "participants" ? "Участники" : "Проекты" }} @if (section() === "projects") {