Repository navigation
feat(programs): решения и команды внутри заявок программ - #505
Merged
Merged
Conversation
8 tasks done
…ions-fe04-20261024 # Conflicts: # projects/social_platform/src/app/ui/routes/program/detail.routes.ts
TThanos3000
marked this pull request as ready for review
October 26, 2026 00:17
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Что изменено
Программы могут принимать отдельное решение с настраиваемой формой и командой внутри заявки. У КЧ и хакатона разные шаблоны; обычные проекты и существующие Project-программы сохраняют прежние маршруты и данные.
Зачем
ТЗ и исходные26 AC. Поля портфолио-проекта не подходят для сдачи программной работы. Первый выпуск сохраняет действующие приглашения, сроки и правила оценивания.
Реализация
Participant editor, вкладки «Решение»/«Команда», поиск приглашенного с ролью, форма/ответы/сдача, кабинет эксперта и оценка, управление заявками, распределение, результаты, аналитика, напоминания и Excel подключены к solution API. Solution IDs не отправляются в Project endpoints.
API
C00 1.21.0 /156 schemas /59 operations /305 scenarios. Контракт не менялся последней интеграцией. Зависимость: BE#822. Legacy и solution ветки разделены по storage mode.
UI
Семь вкладок управления и их порядок сохранены. Для solution mode «Проекты» → «Заявки», таблица без колонки презентации; сохраненный файл открывается из точек. Смена кейса — один экран с существенными последствиями. Публичные «Решения» занимают прежнее место «проекты-участники» внутри программы. Mont и существующие primitives/styles;320/390/768/1440 проверены.
Permissions
Серверные права, object scope, deadline и eligibility сохранены. Обычная сданная заявка заморожена; согласованные административные исключения проходят signed preview/apply и сохраняют историю/оценки. Публичные DTO не раскрывают регистрацию, pending invitations и оценки.
Проверки
Acceptance criteria
Не проверено
Production deployment и CDN file bytes. Три baseline-excluded Vitest файла перечислены в отчете; они не входят в493.
Риски / migration
Backend полного совместимого graph до0039 и workers C001.21 → frontend → явное включение отдельной новой программы. Старые программы автоматически не переносятся. AC21/BE10 — самостоятельная поставка по утвержденному списку. Merge/deploy выполнены по разрешению пользователя; дальнейший перенос старых программ требует отдельной поставки.
После слияния в dev · 26.10.2026
Оба PR слиты: BE#822 →
e05e16d0cea49773986db4c916dded81ddfa80a6, FE#505 →72f7aa9837e18367239f1db3781c436dbf57d618. Первый API deploy, Angular CI/deploy и General backend CI на actual merge success. Angular: 3036 tests /493 files, format/lint/build PASS. Полный migration graph применен, API и worker используют один pinned image.Приемка на настоящем dev PASS. 74 API запроса в работающем dev web-контейнере: три формата, team/invite/accept, permissions, save0/False, competitive submit/snapshot, expert assignments/score/results, analytics/XLSX, public allowlist и creation stop; транзакция с временными записями полностью откатилась. 43 модели прежних записей сохранены. Environment protection сохранена; проверка запущена разрешенным workflow с dev после операционных PR#832–834.
Реальный Angular→dev API, пользователь28: КЧ49/решение7 и хакатон50/8 сохранены, перечитаны и сданы; неконкурсная51/9 сохранена без отдельной сдачи. Команда второй вкладкой удерживает ввод, поиск приглашенного/роль проверены без отправки реальным людям, 0/False сохраняются. «Заявки» сохраняют семь разделов и не имеют колонки презентации; модалка смены кейса показывает последствия на одном экране, apply отменен.
Finalize40322960531 подтвердил snapshot и публикацию трех owned QA-работ; новое создание выключено только в программах49/50/51. Анонимные HTTP list/detail всех трех форматов:200 JSON, count1, public DTO содержит только разрешенные материалы и принятый состав. Публичный UI и «Команда» открываются из согласованного места кнопки программы. Новых Project0. Три явно помеченные QA-программы и решения оставлены для просмотра.
Обнаруженная на настоящем dev ошибка проксирования приглашений и шаблонов исправлена #835. Real Nginx CI40323667925 и финальный dev deploy625517e6 success: оба API root дают401 JSON без авторизации; свежая авторизованная проверка уведомлений и навигации завершилась без новых console errors. Последующие изменения ограничены операционным QA-кодом и DEV routing/tests; бизнес-код/миграции/Angular после основных merge не менялись.
**Legacy сохранен:**46 HTTP проверок всех11 прежних публичных программ совпали с premerge снимком до авторизованного просмотра; в живом UI программы6 сохранены семь вкладок, проекты165/42/232, просмотр команды и результаты. Прежние программы, их storage modes и creation flags не переключались; автоматической миграции нет.
Границы: production, отдельный перенос BE10/AC21 и CDN file bytes не проверялись. Более поздние общие CI на QA/config refs не выдаются за прошедшие без отдельного результата. Текущее ТЗ и статус приемки.