Skip to content

Уточнить статусы проекта и показать связанную программу - #400

Merged
TThanos3000 merged 1 commit into
devfrom
fix/dev-project-program-identity
Oct 4, 2026
Merged

TThanos3000 merged 1 commit into
devfrom
fix/dev-project-program-identity

Conversation

@TThanos3000

Copy link
Copy Markdown
Contributor

Что изменено

В «Моих проектах» привязка отображается как нейтральная плашка «Привязан к программе» с иконкой программы, сдача — как зелёная «Сдан в программу» с замком. Карточка показывает название программы; в детали проекта оно доступно полностью и ведёт на страницу программы.

Зачем

Прежние подписи/цвета смешивали простую привязку и завершённую сдачу, а программа не была обозначена. Реализован утверждённый пользователем вариант. Spec: docs/feature-specs/project-program-identity.md.

Реализация

Используются существующие InfoCard, metadata field в ProjectsLeftSide, иконки, Mont и цветовые tokens. Размер карточки 156×180 и CTA сохранены. Длинное имя в списке сокращается многоточием с полным title/accessible name; в детали переносится. Программа открывается по programId.

API

Optional name в DTO/model; имя списка уже возвращается API. API PR #770 добавляет имя в detail. Старый сервер совместим: статус/доступ сохраняются, без имени строка карточки скрыта, в детали «Название не указано». Новых запросов нет.

UI

«Черновик» и «Опубликован» сохранены. Один tab stop на карточку, без вложенных ссылок. На 320/750/1440 проверены реальные production components в local browser fixture: 7 карточек, Mont, геометрия, ellipsis, focus и переход к программе через Tab/Enter.

Permissions

Не менялись. Сохранены lifecycle precedence и независимость роли/доступа; сдача не даёт права редактирования, неизвестный isSubmitted не приравнивается к false.

Проверки

  • npm run test:ci -- projects/social_platform/src/app/ui/widgets/info-card/info-card.component.spec.ts projects/social_platform/src/app/ui/widgets/info-card/info-card-list-contract.spec.ts projects/social_platform/src/app/ui/pages/projects/detail/info/components/projects-left-side/projects-left-side.component.spec.ts — 53 passed.
  • ng build social_platform --configuration development — passed на финальном коде.
  • ESLint изменённых TS, Stylelint изменённых SCSS, Prettier изменённых поддерживаемых файлов и git diff --check — passed.
  • Browser fixture на 320/750/1440, keyboard navigation, desktop/mobile screenshots — passed, no JS errors.
  • Requirement audit / code review — actionable findings в scope не обнаружены.

Acceptance criteria

  • AC1 — согласованные плашки/иконки, прежние lifecycle/access; component/HTTP tests + browser.
  • AC2 — имя из списка и одна ссылка карточки; HTTP integration/component tests + browser.
  • AC3 — полное имя и корректный program route; component tests + browser keyboard navigation, API tests в связанном PR.
  • AC4 — no relation / legacy missing name; component/API tests.
  • AC5 — имя и статус одной выбранной связи, rename/query count; 40 API tests в связанном PR.
  • AC6 — длинные названия и компактная responsive geometry; browser checks.

Не проверено

Live authenticated dev/production E2E, deployment и проверки приложения screen reader/200% zoom. Browser evidence использует реальные компоненты с fixture services/data.

Риски / migration

Миграции не нужны. Сначала выпустить API PR #770, затем этот Angular PR. React не затронут. Merge/deploy выполняются пользователем.

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