feat(511-A ③ 토량 · 구조물 셈 열기): 계산 자리 판 quantity · carry · fixed_browser 바꿀 수 있음(기본 both · 판 줄 차례 고정) · quantity = server 면 F7 저장 노선 면적 · C4 소단 사본 = 잠잠 뒤 서버 값만 · E1 유토곡선 = 서버 값으로 다시 그림(그 사이 앞 곡선 · 「서버 셈 중」) · F7 초안 면적 · C4 초안 소단 = 브라우저 값 + 서버 대조(다르면 얹음) · F8 = 브라우저 부름 없음 · 거울 시험(서버 답 = 브라우저 TS 답) — 요구 320-4
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,7 +1,8 @@
|
||||
"""계산 자리 판(PLAN 504-2 · 요구 309-2) — 시스템 관리자 「계산 자리」 창이 읽고 쓰는 판 하나.
|
||||
|
||||
판 = `resources/master_template/calc_sites.json` `{version, sites: {묶음: "both" | "server"}}`.
|
||||
both = 조작 중 브라우저 셈 + [저장] 서버 정본(지금 등록부 자리) · server = 조작 중에도 서버 길.
|
||||
both = 조작 중 브라우저 셈 + [저장] 서버 정본(지금 등록부 자리) · server = 조작 중에도 서버 길
|
||||
(G1 · D3 = 504-2 · ③ 토량 · ④ 이월 · ⑧ 고정 브라우저(시험용 · fixed 는 정본 칸 표시) = 511-A 창구).
|
||||
판이 없거나 깨지면 기본값(전부 both = 등록부 그대로). [저장] · [확정] 서버 정본 길은 판을 안 읽음.
|
||||
묶음 8 줄 = 등록부(`design_calc_registry*.ts`) # 전부 · 같은지 시험 `test_309_2_calc_sites.py`.
|
||||
"""
|
||||
@@ -24,11 +25,11 @@ GROUPS: tuple[dict[str, Any], ...] = (
|
||||
{
|
||||
"key": "quantity",
|
||||
"nos": ["E1", "F7", "F8", "C4"],
|
||||
"switchable": False,
|
||||
"fixed": "both",
|
||||
"why": "later",
|
||||
"switchable": True,
|
||||
"fixed": None,
|
||||
"why": "quantity",
|
||||
},
|
||||
{"key": "carry", "nos": ["R9", "F10"], "switchable": False, "fixed": "both", "why": "later"},
|
||||
{"key": "carry", "nos": ["R9", "F10"], "switchable": True, "fixed": None, "why": "carry"},
|
||||
{
|
||||
"key": "stages",
|
||||
"nos": ["R1", "R3", "R5", "R6", "R7", "G2", "G4", "P1", "P2", "P3", "P4", "P5", "P6"]
|
||||
@@ -54,12 +55,14 @@ GROUPS: tuple[dict[str, Any], ...] = (
|
||||
{
|
||||
"key": "fixed_browser",
|
||||
"nos": ["R2", "R4", "R8", "P7", "C7", "D4"],
|
||||
"switchable": False,
|
||||
"switchable": True,
|
||||
"fixed": "browser",
|
||||
"why": "browser",
|
||||
},
|
||||
)
|
||||
SWITCHABLE = frozenset(g["key"] for g in GROUPS if g["switchable"])
|
||||
# 판 줄 차례 = 묶음 차례(파일 늘 같은 꼴)
|
||||
ORDER = tuple(g["key"] for g in GROUPS if g["switchable"])
|
||||
SWITCHABLE = frozenset(ORDER)
|
||||
LOCKED = frozenset(g["key"] for g in GROUPS if not g["switchable"])
|
||||
|
||||
|
||||
@@ -71,7 +74,7 @@ def read_sites() -> dict[str, Any]:
|
||||
raw = {}
|
||||
stored = raw.get("sites") if isinstance(raw, dict) else None
|
||||
stored = stored if isinstance(stored, dict) else {}
|
||||
sites = {key: stored.get(key) if stored.get(key) in VALUES else "both" for key in SWITCHABLE}
|
||||
sites = {k: stored.get(k) if stored.get(k) in VALUES else "both" for k in ORDER}
|
||||
version = raw.get("version") if isinstance(raw, dict) else None
|
||||
return {"version": version if isinstance(version, int) else 0, "sites": sites}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user