feat(B05,B06): 워크플로우 재정의 — 자동 계산 노란 상태·버튼 개편·초기화
자동 체인 상태 전이 분리: - confirm_latest_route/confirm_sections에 mark_stage_complete 플래그 추가 - 자동 체인(신규·재확정)은 데이터만 확정하고 stage 2·3을 IN_PROGRESS로 남김 (스텝바 기존 노란 테두리 = 계산됨·확정 전 상태로 재사용) - B06 [확정]이 stage 2+3 동시 완료 + 경로 상태 CONFIRMED 보강 후 B07 수량 이동 B05 좌측 패널 개편: - 포인트 팔레트 + 임도 기준·옵션을 경로 계산 설정 한 컨테이너로 병합, [최적 경로 계산] 버튼을 컨테이너 내부로 이동 (가끔 쓰는 무거운 재계산) - 하단 액션 행 [초기화][임시저장][횡단 이동]으로 교체, 경로 단독 확정 폐지 - [임시저장] = 관로 + 계획선 델타 + 비정규 측점·상단측 저장(mark_stage_complete=false) - [횡단 이동]/B06 [종단 이동] = 저장 없이 페이지 이동만 (B05·B06 캐시 공유 구조 유지) - [초기화] = POST /route/reset 신설: 기존 경로 삭제 후 계획노선 CSV 기본값으로 자동 체인 재실행(파일입력 직후 상태 복원), 분석용 타임아웃 적용 B06 액션 행: [종단 이동][임시저장][확정] 3버튼 구성, locale 키 정비 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -118,8 +118,9 @@ async def run_auto_design_chain(project_id: UUID, surface_model_id: int | None =
|
||||
float(solve_result.total_length_m or 0.0),
|
||||
)
|
||||
|
||||
# 4) B05 경로 확정 — stage 2 완료 전이 포함.
|
||||
confirm_result = await confirm_latest_route(project_id, None)
|
||||
# 4) B05 경로 확정 — 데이터만 CONFIRMED, stage 2는 IN_PROGRESS(사용자 검토 대기)로
|
||||
# 남긴다. 완료 전이는 B06 [확정]이 stage 2·3을 함께 처리한다(2026-08-08 재정의).
|
||||
confirm_result = await confirm_latest_route(project_id, None, mark_stage_complete=False)
|
||||
if isinstance(confirm_result, JSONResponse):
|
||||
logger.error(
|
||||
"자동 설계 체인 중단(B05 경로 확정 실패): project_id=%s status=%s",
|
||||
@@ -128,8 +129,11 @@ async def run_auto_design_chain(project_id: UUID, surface_model_id: int | None =
|
||||
)
|
||||
return
|
||||
|
||||
# 5) B06 횡단 설계 확정 — 미지정 측점을 기본값으로 채워 저장, stage 3 완료 전이 포함.
|
||||
sections_result = await confirm_sections(project_id, route_id, None)
|
||||
# 5) B06 횡단 설계 확정 — 미지정 측점을 기본값으로 채워 저장. stage 3은
|
||||
# IN_PROGRESS(스텝바 노란 표시)로 남겨 사용자 검토·확정을 기다린다.
|
||||
sections_result = await confirm_sections(
|
||||
project_id, route_id, None, mark_stage_complete=False
|
||||
)
|
||||
if isinstance(sections_result, JSONResponse):
|
||||
logger.error(
|
||||
"자동 설계 체인 중단(B06 횡단 확정 실패): project_id=%s route_id=%s status=%s",
|
||||
@@ -292,7 +296,8 @@ async def run_redesign_chain(
|
||||
logger.info("재확정 체인 설계 이월: project_id=%s %d건", project_id, carried)
|
||||
|
||||
# 4) B05 확정 → B06 확정(옛 표준단면 설정 이월, 미지정 측점 기본값 채움).
|
||||
confirm_result = await confirm_latest_route(project_id, None)
|
||||
# 재확정 후에도 stage 2·3은 IN_PROGRESS로 남겨 사용자 재검토를 받는다.
|
||||
confirm_result = await confirm_latest_route(project_id, None, mark_stage_complete=False)
|
||||
if isinstance(confirm_result, JSONResponse):
|
||||
logger.error(
|
||||
"재확정 체인 중단(B05 확정 실패): project_id=%s status=%s",
|
||||
@@ -306,7 +311,9 @@ async def run_redesign_chain(
|
||||
if old_options.get("standard_cross_section")
|
||||
else None
|
||||
)
|
||||
sections_result = await confirm_sections(project_id, new_route_id, section_request)
|
||||
sections_result = await confirm_sections(
|
||||
project_id, new_route_id, section_request, mark_stage_complete=False
|
||||
)
|
||||
if isinstance(sections_result, JSONResponse):
|
||||
logger.error(
|
||||
"재확정 체인 중단(B06 확정 실패): project_id=%s status=%s",
|
||||
|
||||
Reference in New Issue
Block a user