Skip to content

feat(programs): solution contracts and routing foundation (FE01) - #501

Merged
TThanos3000 merged 5 commits into
devfrom
feat/dev-program-solutions-fe01-20261024
Oct 24, 2026
Merged

TThanos3000 merged 5 commits into
devfrom
feat/dev-program-solutions-fe01-20261024

Conversation

@TThanos3000

@TThanos3000 TThanos3000 commented Oct 24, 2026 •

Copy link
Copy Markdown
Contributor

Что изменено

Создание заявки программы выбирает решение или прежний проект по явному solution-context. Повторный вход открывает текущую заявку. Новые маршруты создания, просмотра и редактирования имеют program/solution ID; оболочка чтения содержит вкладки «Решение» и «Команда».

Зачем

ТЗ и согласованный D00 v3. Scope — FE01: типы, API, маршруты и выбор режима; полный редактор, приглашение с поиском и сдача относятся к FE03–FE06.

Реализация

Из C00 генерируются 47 типов и 43 независимых сценария. Port → HTTP adapter/repository → use cases. Ошибки преобразуются отдельно от успешных ответов, включая issues/meta. Смена программы отменяет предыдущий запрос; ошибка контекста не создает legacy Project. Typed ApplicationRef сохраняет projectId/programLinkId для старых маршрутов.

API

C00 1.0.0, snake_case через действующий CamelcaseInterceptor. Новое создание не требует Project/Team ID. Backend BE01 должен быть развернут первым. В PR нет изменения environment.ts, package.json/lock или включения режима.

UI

Read-only основа утвержденного D00 v3: существующие Mont, цвета и Button foundation, строки команды, две вкладки. Loading/error/not_found/retry, mobile 390 px без горизонтального скролла. Скриншоты и полный audit: docs/product/program-solutions-fe01.md. Изменяющие кнопки еще не реализованных команд не показываются.

Permissions

Сервер BE01 проверяет доступ; фронт не дает дополнительных прав. Страница может читать уже созданное решение при отключении нового создания. Существующий legacy editor сохраняется.

Проверки

  • 40 focused tests: interceptor, use cases, точные IDs, legacy/new entry, double click, stale program, route loading/error/retry, вкладка без повторного запроса.
  • Полный frontend suite: npm run test:ci -- --maxWorkers=2 — 2471 tests / 452 files PASS.
  • Angular npm run build:pr на текущем head и штатной environment.ts; полный ESLint (0 errors), scoped Stylelint и Prettier.
  • Отдельный commit исправляет 14 прежних расхождений форматирования dev. Все 1885 изначально отмеченных Windows/CRLF файлов проверены с каноническими LF: 0 failures; неизмененные файлы не переписывались.
  • C00 JSON копии backend/frontend совпадают; генератор/fixtures доступны для параллельных этапов.
  • Browser с реальными локальными Django/PostgreSQL/JWT: create, repeat, program entry, team tab, not_found/retry; старое создание открывает Project editor с exact programLinkId.
  • Desktop 1280×720, mobile 390×844; Mont и scrollWidth=390 подтверждены.

Acceptance criteria

  • AC01 — новый create/read путь без Project/Team ID.
  • AC02 — currentApplication redirect без второго POST; конкурентность проверена в BE01.
  • AC20 — program-scoped IDs, отмена старого запроса и негативные проверки бэка.
  • AC22 в scope FE01 — legacy editor и query params сохранены.

Не проверено

Screen reader и все четыре роли в браузере не проверялись. Полный редактор, загрузки, приглашения, сдача и оценивание — следующие задачи, этот PR их не объявляет готовыми.

Риски / migration

Внедрять после BE01 с миграцией и default legacy_project. Для реальных участников режим не включать до REL01. Проверки выполнены на head 9337546 поверх dev 2c4e91a. Совместимость с текущим dev проверена по diff и отсутствию конфликтов; независимые изменения кабинета эксперта в этот PR не входят. Merge и deployment выполняет пользователь.

Парный backend PR: PROCOLLAB-github/api#819 .

@TThanos3000
TThanos3000 marked this pull request as ready for review October 24, 2026 14:14
@TThanos3000
TThanos3000 merged commit 3ca4c5e into dev Oct 24, 2026
@TThanos3000
TThanos3000 deleted the feat/dev-program-solutions-fe01-20261024 branch October 24, 2026 14:45
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