修复项目配置草稿原子保存逻辑
This commit is contained in:
@@ -242,6 +242,7 @@ def _build_default_setup_config_from_study(study, sites: list) -> StudySetupConf
|
||||
if total_target is None:
|
||||
total_target = 0
|
||||
return StudySetupConfigData(
|
||||
projectInfo=_build_project_publish_snapshot(study),
|
||||
projectMilestones=[],
|
||||
enrollmentPlan={
|
||||
"totalTarget": total_target,
|
||||
@@ -263,13 +264,6 @@ def _to_date_text(value: date | None) -> str:
|
||||
return value.isoformat()
|
||||
|
||||
|
||||
def _project_snapshot_has_draft_values(snapshot: ProjectPublishSnapshot | None) -> bool:
|
||||
if not snapshot:
|
||||
return False
|
||||
data = snapshot.model_dump(mode="json")
|
||||
return any(value not in ("", None, []) for value in data.values())
|
||||
|
||||
|
||||
def _build_project_publish_snapshot(study) -> ProjectPublishSnapshot:
|
||||
return ProjectPublishSnapshot(
|
||||
code=getattr(study, "code", None) or "",
|
||||
@@ -296,9 +290,7 @@ def _build_project_publish_snapshot(study) -> ProjectPublishSnapshot:
|
||||
|
||||
|
||||
def _resolve_setup_project_snapshot(setup_data: StudySetupConfigData, study) -> ProjectPublishSnapshot:
|
||||
if _project_snapshot_has_draft_values(setup_data.projectInfo):
|
||||
return setup_data.projectInfo
|
||||
return _build_project_publish_snapshot(study)
|
||||
return setup_data.projectInfo
|
||||
|
||||
|
||||
def _parse_optional_snapshot_date(value: str) -> date | None:
|
||||
|
||||
Reference in New Issue
Block a user