fix(노선추천): 349 노선 추천 창 옛 글 — 미리 보기 줄 = [적용]하면 바로 저장 · 새 초기값 · 종단 반영 설명 = [적용] 뒤 본 설계 값과 차이 · [적용]하면 이 종단이 첫 계획선(편집 [확인] · 아래 띠 글 지움)
- 다른 옛 글: 노선 편집 상태 줄 「곡선 기준 R — [확인] 때 반영」 → [저장] 때 · 분석 지형 풍선 「편집 창 분석」 → 노선 편집 분석 - 시험: test_349_old_wording 3 · 관련 77 통과(7 건너뜀) · typecheck 통과 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VmC34fsxxbweEG3RUjs3Mn
This commit is contained in:
@@ -64,7 +64,7 @@ export function createRouteEditChrome(
|
||||
<span data-slot="tools"></span>
|
||||
<i class="b05-routeedit__divider" aria-hidden="true"></i>
|
||||
<label class="b05-routeedit__terrain" hidden
|
||||
title="편집 창 분석(등고선 · 지반고 · 기울기 · 횡단 미리보기 · 추천)에 쓸 지형 — 확정 지표면 · 종횡단은 안 바뀝니다">분석 지형
|
||||
title="노선 편집 분석(등고선 · 지반고 · 기울기 · 횡단 미리보기 · 추천)에 쓸 지형 — 확정 지표면 · 종횡단은 안 바뀝니다">분석 지형
|
||||
<select class="ui-select ui-select--sm" data-act="terrain">
|
||||
<option value="las">라이다</option>
|
||||
<option value="sheet">수치지형도</option>
|
||||
|
||||
@@ -5,9 +5,9 @@
|
||||
* 못 지킨 구간 · 오른쪽 위 [적용] · [닫기].
|
||||
* 종단은 갈래가 정한다 — 예상노선 추적만 종단 없음, 나머지는 늘 균형 종단(`withProfileOf`).
|
||||
*
|
||||
* 알약을 누르면 서버가 그 갈래를 셈해 주고(`request`) 지도에 미리 보기로 그린다. 편집 창의 노선은
|
||||
* 건드리지 않는다 — [적용]을 눌러야 `onApply` 로 편집값에 실리고(되돌리기 한 걸음), [닫기]는
|
||||
* 미리 보기를 버린다. 다시 계산(배수유역부터)은 여기서 안 돈다 — 편집 창 [확인]에서만.
|
||||
* 알약을 누르면 서버가 그 갈래를 셈해 주고(`request`) 지도에 미리 보기로 그린다. 노선 편집의 노선은
|
||||
* 건드리지 않는다 — [적용]을 누르면 `onApply` 로 바로 서버 저장(새 초기값 · 346-3), [닫기]는
|
||||
* 미리 보기를 버린다.
|
||||
* 비교값 · 기준값은 서버가 준 것을 보이기만 한다(계산 자리 = 서버 단독).
|
||||
* 서버 부르기 · 캐시 · 「현재 추천」은 `_Initial` 몫이고 여기는 화면만 만든다.
|
||||
* 균형 종단(계획서 63-4) — 후보마다 서버가 세운 종단의 한 줄 · 그림 · 셈한 후보 표는 이 모달
|
||||
@@ -131,7 +131,7 @@ export interface RecommendParams {
|
||||
criteria: RouteInitialCriteria | null,
|
||||
withProfile: boolean,
|
||||
) => Promise<InitialChoice>;
|
||||
/** [적용] — 미리 본 노선을 편집 창에 놓는다. */
|
||||
/** [적용] — 미리 본 노선을 바로 저장한다(새 초기값). */
|
||||
onApply: (choice: InitialChoice) => void;
|
||||
}
|
||||
|
||||
@@ -464,7 +464,7 @@ export function openRecommendModal(params: RecommendParams): void {
|
||||
else seen.delete(label); // 종단 없는 갈래(예상노선 추적)
|
||||
stateEl.textContent = `미리 보기: ${choiceLabel(logic, sentWeights)}${
|
||||
choice.stored ? " (저장된 결과)" : ""
|
||||
} — [적용]을 눌러야 편집 창에 놓입니다.`;
|
||||
} — [적용]하면 바로 저장 · 새 초기값이 됩니다.`;
|
||||
} catch (error) {
|
||||
if (closed || mine !== seq) return;
|
||||
stateEl.textContent = "셈하지 못했습니다.";
|
||||
|
||||
@@ -83,7 +83,7 @@ const LOGIC_HELP: Record<ShownLogic, HelpEntry> = {
|
||||
const CRITERIA_HELP: Array<{ name: string; text: string }> = [
|
||||
{
|
||||
name: "종단 반영",
|
||||
text: "예상노선 추적을 뺀 네 갈래는 늘 반영. 원지반선과 계획선 사이 넓이를 적분한 값이 아니라, 측점(20m)마다 횡단을 세워 절토 · 성토 면적을 보고 그 측점 계획고를 정한 종단 — 그래서 갈래 · 노선에 따라 값의 편차가 큼. 구조물을 뺀 빠른 셈이라 [확인] 뒤 본 설계 값과 차이가 남. [확인]하면 편집 창 아래 띠에 보인 종단이 그대로 첫 계획선이 됨",
|
||||
text: "예상노선 추적을 뺀 네 갈래는 늘 반영. 원지반선과 계획선 사이 넓이를 적분한 값이 아니라, 측점(20m)마다 횡단을 세워 절토 · 성토 면적을 보고 그 측점 계획고를 정한 종단 — 그래서 갈래 · 노선에 따라 값의 편차가 큼. 구조물을 뺀 빠른 셈이라 [적용] 뒤 본 설계 값과 차이가 남. [적용]하면 이 종단이 그대로 첫 계획선이 되고 노선과 함께 바로 저장 · 새 초기값이 됨",
|
||||
},
|
||||
{
|
||||
name: "종단기울기 상한(%)",
|
||||
|
||||
@@ -186,7 +186,7 @@ export function curveSummary(input: CurveSummaryInput): string {
|
||||
.filter(Boolean)
|
||||
.join(" · ");
|
||||
if (input.fresh) {
|
||||
const base = input.minRadiusM ? `곡선 기준 R ${input.minRadiusM}m — [확인] 때 반영` : "";
|
||||
const base = input.minRadiusM ? `곡선 기준 R ${input.minRadiusM}m — [저장] 때 반영` : "";
|
||||
return edits ? `${base}${base ? " · " : ""}${edits}` : base;
|
||||
}
|
||||
return (
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
"""349 — 옛 글 고침: [초기화] 확인 글 · 노선 추천 창 글이 지금 흐름을 말하는가.
|
||||
|
||||
지금 흐름 = 초기값은 파일 올린 뒤 자동설계 또는 마지막으로 [적용]한 추천 노선 · [초기화]는 다시 셈 아님 ·
|
||||
추천 [적용] = 바로 저장 · 새 초기값 · 편집 [확인] · 아래 종단 띠 없음.
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from pathlib import Path
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[2]
|
||||
|
||||
|
||||
def _read(rel: str) -> str:
|
||||
return (ROOT / rel).read_text(encoding="utf-8")
|
||||
|
||||
|
||||
def test_초기화_확인_글():
|
||||
locale = _read("ui_template/ui_template_locale_b2.ts")
|
||||
at = locale.index("B05_Route_Reset_Confirm")
|
||||
text = locale[at : locale.index("B05_Route_Reset_Failed", at)]
|
||||
assert "확정한 노선" not in text and "재계산에 시간" not in text
|
||||
assert "마지막으로 [적용]한 추천 노선" in text and "다시 셈하지 않고" in text
|
||||
assert "recomputation takes" not in text and "without recomputation" in text
|
||||
|
||||
|
||||
def test_노선_추천_창_글():
|
||||
recommend = _read("B05_Profile/B05_Profile_UI_RouteEdit_Recommend.ts")
|
||||
assert "편집 창에 놓입니다" not in recommend
|
||||
assert "[적용]하면 바로 저장 · 새 초기값이 됩니다." in recommend
|
||||
help_ = _read("B05_Profile/B05_Profile_UI_RouteEdit_Recommend_Help.ts")
|
||||
assert "[확인]" not in help_ and "아래 띠" not in help_ and "편집 창" not in help_
|
||||
assert "[적용]하면 이 종단이 그대로 첫 계획선" in help_
|
||||
|
||||
|
||||
def test_노선_편집_다른_옛_글():
|
||||
edits = _read("B05_Profile/logic/B05_Profile_UI_RouteEdit_Edits.ts")
|
||||
assert "[확인] 때 반영" not in edits and "[저장] 때 반영" in edits
|
||||
chrome = _read("B05_Profile/B05_Profile_UI_RouteEdit_Chrome.ts")
|
||||
assert 'title="편집 창 분석' not in chrome
|
||||
Reference in New Issue
Block a user