Repository navigation
feat(programs): ProgramSolution, сдача и управление заявками - #822
Merged
Merged
Conversation
TThanos3000
marked this pull request as ready for review
October 24, 2026 16:02
TThanos3000
marked this pull request as draft
October 24, 2026 16:24
8 tasks done
…ions-be02-20261024
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.
Что изменено
Программы принимают ProgramSolution с материалами, командой и приглашениями внутри заявки. КЧ/хакатон настраивают поля; Project и прежние программы сохраняют действующую модель.
Зачем
Исходное ТЗ и26 AC. Программная заявка больше не требует полей портфолио-проекта.
Реализация
BE01–BE09: отдельная модель и создание, configurable form/answers, accepted/pending team и invitation transitions, сдача со снимком, evaluation/assignments/quota/results, manager analytics/filters/XLSX, ролевые входы, reminders, publication, административные исключения и удержание истории. Подтвержденная регистрационная операция не удаляет материалы и оценки.
API
C00 1.21.0 /156 schemas /59 operations /305 scenarios; shared FE/BE documents совпадают. Angular интеграция завершена в FE#505, HEADca7bcfc8. Последний этап не менял BE runtime fdec3dc или API.
UI
Фронт сохраняет существующие разделы управления; solution-заявки используют8 колонок без презентации, один экран смены кейса и публичные работы в прежнем месте кнопки программы. Команда — вторая вкладка заявки. Итоговая приемка.
Permissions
Все действия проверяют пользователя, роль, программу и объект на backend. Сдача замораживает обычные изменения; административные case/member/archive/registration commands требуют актуальный signed preview и сохраняют цепочку snapshots и оценки. Public allowlist не включает регистрацию, приглашения или scores. Архив исключен из active/expert/public readers.
Проверки
Acceptance criteria
Не проверено
Production deployment, CDN file bytes и отдельный перенос старых программ BE10/AC21.
Риски / migration
Полный совместимый graph включает upstream certificate0031 и пустой merge0039; старые migrations не перенумерованы и не удалены. Перед разрешенным rollout: полный migrate → совместимые backend/workers → frontend → отдельная новая программа → явное включение создания. Отключение creation flag сохраняет существующие заявки; schema-down не используется. Старые Project программы и реальные flags не переключались, автоматическая миграция не запускалась.
После слияния в 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 не выдаются за прошедшие без отдельного результата. Текущее ТЗ и статус приемки.