"""2026-10-20: manual v0.2.15 -> v0.2.16 (도면에서 읽기 now includes the table values; 검토 요약: bulk check buttons + flags), planning v0.1.12, OPEN #34/#36 notes.""" import shutil from pathlib import Path R = Path(__file__).resolve().parents[4] DOC = R / "DOC" / "04_실행" SRC = DOC / "실행_T형교각모델링앱사용설명서_2026-10-20_v0.2.15.md" DST = DOC / "실행_T형교각모델링앱사용설명서_2026-10-20_v0.2.16.md" s = SRC.read_text(encoding="utf-8") def rep(a, b): global s assert s.count(a) == 1, a[:70] s = s.replace(a, b) i = s.index("| v0.2.15 | 2026-10-20 |") j = s.index("\n", i) s = s[:j + 1] + "| v0.2.16 | 2026-10-20 | 심영표 | 「도면에서 읽기」가 받침 표·솔플레이트 표·재료표 값까지 한 화면에서 반영(템플릿 원본 값을 한 번에 도면 값으로), 「검토 요약 확정」에 모두 체크·해제 버튼과 주의 표시: 4 화면 구성, 5.3, 5.4 | 사용자 \"템플릿 원본 그대로도 모두 도면에서 읽기로 바꾸고, 미확정도 일괄 확정\" |\n" + s[j + 1:] rep("- 도면 틀이 다르면(공통 문자 비율 70 % 미만, 예: 새재1교·옥성교) 읽지 않고 이유를 알려 줍니다.", "- **표 값도 같은 화면에서 반영합니다(2026-10-20).** 읽은 값 아래 \"표 값(받침·솔플레이트·재료표)\" 구역에 받침 표(EL·h1·h2·A·B), 솔플레이트 표, 철근재료표에서 읽은 값 중 현재 값과 다른 줄이 함께 나옵니다. 이 화면 한 번으로 템플릿 원본 값이 도면 값으로 바뀌므로 [표 후보값]을 따로 돌릴 필요가 없습니다(같은 값을 [표 후보값]에서 골라 반영할 수도 있음). 받침마다 값이 다른 솔플레이트 길이(앞열 700, 뒤열 800 등)는 expected에 `{번호: 값}`으로 자동 기록합니다.\n" "- 도면 틀이 다르면(공통 문자 비율 70 % 미만, 예: 새재1교·옥성교) 읽지 않고 이유를 알려 줍니다.") rep("5. 목록을 **끝까지 내리면** 확정자 이름과 공통 의견(선택)을 넣을 수 있고, [선택한 묶음 확정]을 누르면 체크한 묶음이 한 번에 확정됩니다.", "5. **[주의·근거 없음·결정 기록 모두 도면과 대조함으로 체크]** 버튼으로 한 번에 모두 체크할 수 있고([모두 해제]로 되돌림), 템플릿 원본 그대로이거나 설계자 확인 전 임시 등록이 들어 있는 묶음에는 **주의 표시**가 붙습니다. 주의 표시가 붙은 묶음이 있으면 모두 체크할 때 \"○개가 포함됩니다. 모두 도면과 대조했습니까?\" 확인창이 나옵니다. 주의 표시는 확정 기록의 사유(\"주의 표시: …\")에도 남습니다.\n" "6. 목록을 **끝까지 내리면** 확정자 이름과 공통 의견(선택)을 넣을 수 있고, [선택한 묶음 확정]을 누르면 체크한 묶음이 한 번에 확정됩니다.") DST.write_text(s, encoding="utf-8") shutil.copy2(SRC, DOC / "backup" / SRC.name) SRC.unlink() PO = R / "DOC" / "01_기획" / "기획_입력묶음확인확정개편_2026-10-20_v0.1.11.md" PN = R / "DOC" / "01_기획" / "기획_입력묶음확인확정개편_2026-10-20_v0.1.12.md" shutil.copy2(PO, R / "DOC" / "01_기획" / "backup" / PO.name) t = PO.read_text(encoding="utf-8") row = "| v0.1.11 | 2026-10-20 |" i = t.index(row) j = t.index("\n", i) t = t[:j + 1] + "| v0.1.12 | 2026-10-20 | 심영표 | 6.9절에 후속 변경 추가(도면에서 읽기에 표 값 통합, 검토 요약 모두 체크·주의 표시) | 사용자 \"템플릿 원본 그대로도 모두 도면에서 읽기로 바꾸고, 미확정도 일괄 확정\" |\n" + t[j + 1:] add = """**후속 변경 (같은 날)**: ① 「도면에서 읽기」가 표 값(받침·솔플레이트·재료표 후보)을 같은 화면에 \"표 값\" 구역으로 포함(`geomread.table_changes`), 반영은 `reader.apply_proposals` 와 같은 규칙, 받침마다 다른 솔플레이트 길이는 `{번호: 값}` 으로 정규화 — 새 교각에서 템플릿 원본 값이 한 화면으로 모두 도면 값이 됨(시험: 초기 P4 백업 + 읽기 + 표 행 = 검증된 P4 의 표 관련 필드, 알려진 예외는 앵커 값·`tie_offset` 상수·낡은 직경 기록). ② 「검토 요약 확정」에 [모두 체크]·[모두 해제] 버튼, 주의 표시(템플릿 원본 그대로·설계자 확인 전 임시 등록 포함)를 칩과 확정 사유에 기록, 주의 표시가 있으면 모두 체크 시 확인창. 불일치 묶음은 여전히 확정 불가, 이름·끝까지 읽기·체크 없이는 확정되지 않음. 앞서 제안한 '낮은 위험/높은 위험 두 단계' 대신 사용자 요청에 따라 일괄 체크 + 주의 표시로 구현(위험도별 분류는 미구현). """ k = t.index("**한계**: 체크는 사용자의 선언이라") t = t[:k] + add + t[k:] PN.write_text(t, encoding="utf-8") PO.unlink() print("ok")