Prod: expose program link submission metadata - #734
Merged
Merged
Conversation
TThanos3000
marked this pull request as ready for review
September 9, 2026 15:22
This was referenced Sep 9, 2026
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.
Основа
cd427c6fa280804ca841dfeee73e3b42224cb910(merge production Prod: formalize program case field contract #733).6df9f6b61cda4940bab8bb125e715253081a99a8.3b0724668185f5d81d44ba327b045f5fec5ad6ab; DEV merge:77c8d41e2139c5902f2c7958d499fe26b9c4ef79.GET contract
Существующий
GET /programs/partner-program-projects/<programLinkId>/fields/расширен только четырьмя top-level полями:is_competitivelink.partner_program.is_competitivesubmission_openlink.partner_program.is_project_submission_open()submission_deadlinelink.partner_program.get_project_submission_deadline(): ISO datetime или null в JSONcan_submitis_competitive and not link.submitted and submission_openВсё вычисляется строго по запрошенной связи
PartnerProgramProjectи её программе. Не используются singular Project serializer, первая связь или metadata другой программы общего проекта.Deadline вычисляет существующий helper: explicit
datetime_project_submission_ends, затем прежний fallback наdatetime_registration_ends; nullable результат сохраняется. Модели и helpers не изменены.submission_openне равноcan_submit: сданная или неконкурсная связь может иметь открытое окно, ноcan_submit=false. Это snapshot стадии, не новая authorization policy и не проверка выбранного case. Submit endpoint остаётся authoritative.Совместимость и scope
program_link_fields().{"detail": "Значения успешно обновлены"}unchanged; metadata в PUT не добавлена.docs/program-case-field.md.manager-overviewunchanged.Regression coverage
can_submitдля readers без WRITE.partner_program_idсохраняет обе связи и полные snapshots профилей участников. Production Project code не изменён.SQL budget
Измерен force-authenticated HTTP GET на exact base до изменения и на final head после изменения:
Metadata использует уже существующий
select_related("project", "partner_program"): 0 дополнительных SQL, N+1 отсутствует.Проверки exact final head
partner_programs + projects: 791 tests, OK.procollab.settings_ci.manage.py check,check --tag models: PASS.makemigrations --check --dry-run: No changes detected.git diff --checkи scope audit: PASS.--keepdbи отдельную тестовую БД. После завершения процесса подтверждено 0 соединений, БД удалена.Draft only. Не merge, не deploy.