feat(design): 공용 틀 글 손 입력 항목 · 기타 선택 컨테이너 상세 내용 · 기타 이름 = 집계 건 이름(52-14)

- 명세 항목 꼴 「글」(kind text · 길이 상한 TEXT_MAX 100 · 비우기 · 이름 표 · M02 이름 나무 꼴 「글」)
- 다 빈 선택 인스턴스도 첫 칸을 빈 글로 남겨 자리 지킴 — 잇기 · 집계 줄 · 다시 열기
- 기타 = 선택 컨테이너 「상세 내용」(비고 글 · etc_detail_{n}_note · 잇기 getcdetail{n}) · 종류 단위 잇기 줄 가림 규칙 그대로
- 집계 모음: 기타 건 이름(그룹) = 상세 종류 이름 · 비면 「기타」 · 컨테이너 건 = 이름 + n · 서버 컨테이너 표에 기타 짝
- 시험: test_52_14_etc_text · 헬퍼 etc · ui_checks 52-10 에 기타 컨테이너 단계 · 52-1 스크립트는 보이는 명세 폼을 잡음

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BVPp2o6Mh2FZJr72yW3ofZ
This commit is contained in:
2026-10-06 00:08:44 +09:00
co-authored by Claude Opus 5.5
parent a84c90d590
commit 3e5c64839a
12 changed files with 235 additions and 18 deletions
+5 -1
View File
@@ -90,8 +90,11 @@ def collect_items(
한 건 = `{type_id, placement, chainage_m, start_m, end_m, options, 관연장, summary_item,
복사본}` ·
`복사본` = 그 구조물 집계 항목 복사본 폴더의 구조물 id(관 지점은 `pipe@측점` · 26-2b).
`복사본` = 그 구조물 집계 항목 복사본 폴더의 구조물 id(관 지점은 `pipe@측점` · 26-2b) ·
기타는 `그룹` = 사용자가 적은 상세 종류 이름(52-14).
"""
from M02_MasterTemplete.M02_Table_Fill_Spec import etc_label
types = types or structure_type_map()
lengths = pipe_lengths or {}
items: list[dict[str, Any]] = []
@@ -111,6 +114,7 @@ def collect_items(
"summary_item": item.summary_item,
"복사본": item.structure_id or f"#{index}",
"group_items": item.group_items,
**etc_label(item.type_id, item.options),
}
)
for point in read_pipe_points_file(pipe_points_path_in(Path(project_root))):