feat(377-2 B07 전개도): 좌측 「전개도」 카드 · 목록 · 단건 · 확정본 kind — 늘 카드 · 구조물 종류마다 하위 묶음(이름 줄 + 형태 단추) · 목록 맨 뒤 · 전개도 id 면 측점별 설계 실어 그림

- Router_Support _drawing_list 맨 뒤 development_list · _read_drawing 분기 · 확정본 kind development
- Router 단건 = _designs_by_chainage · Schema · Api_Fetch kind development
- UI_Development.ts 새 카드(groupPlanSheets 재사용) · test_311 접힘 대조에 전개도 카드(기본 펼침)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Se7ytqbohmBQnfYpwYFnYf
This commit is contained in:
2026-10-17 14:53:45 +09:00
co-authored by Claude Opus 5.5
parent 9b01cafb52
commit bb5f07eb0c
8 changed files with 86 additions and 5 deletions
@@ -34,6 +34,11 @@ from B07_DesignDetail.B07_DesignDetail_Engine_Cad_CulvertNote import (
from B07_DesignDetail.B07_DesignDetail_Engine_Cad_CulvertNote import (
station_no_label as station_no_label_upper,
)
from B07_DesignDetail.B07_DesignDetail_Engine_Cad_Development import (
DEVELOPMENT_ID,
development_list,
read_development,
)
from B07_DesignDetail.B07_DesignDetail_Engine_Cad_Long import (
build_longitudinal_drawing,
longitudinal_chunks,
@@ -243,6 +248,8 @@ def _drawing_list(project_root: Path, longitudinal_path: Path) -> list[DesignDra
)
)
# 표준도(구조물도)는 2026-09-13 B08 「구조물도」 탭으로 이관 — 사용자 확정 ③, PLAN 3장 ④.
# 전개도(요구 241 · 377) — 맨 뒤 · (구조물 종류 · 형태)마다 장
drawings += development_list(project_root, manifest_drawings)
_store_drawing_numbers(project_root, drawings)
return drawings
@@ -480,6 +487,8 @@ def _read_drawing(
kind = drawing_id # id와 kind가 같은 단장 도면
elif PLAN_KIND_ID.fullmatch(drawing_id):
kind = "plan"
elif DEVELOPMENT_ID.fullmatch(drawing_id):
kind = "development"
else:
kind = "longitudinal" if _LONG_ID.fullmatch(drawing_id) else "cross"
label = str(manifest_entry.get("label") or drawing_id)
@@ -531,6 +540,10 @@ def _read_drawing(
None,
)
if DEVELOPMENT_ID.fullmatch(drawing_id):
# stored_design = 노선 전체 측점별 설계(추가 흙막이 단 수 · 포장 빈 폭)
return read_development(project_root, longitudinal_path, drawing_id, stored_design)
if PLAN_KIND_ID.fullmatch(drawing_id):
# stored_design = plan_kind_source()가 계산 · 저장한 조각 중 그 종류가 고른 것.
if not isinstance(stored_design, dict):