feat(malaysia): 재고조사 랙에 Side B 아래 Ground(G1~G6) 6칸 추가
Side B 다음에 Ground 영역을 추가하고 단일 파렛트 6칸(G1~G6)을 한 줄로 배치. rack_cell_codes 검증 목록과 rack_layout 렌더 구조에 반영. 면 제목을 side.label 로 바꿔 A/B는 'Side A/B', Ground는 'Ground'로 표기. 입력/이동 저장 검증 모두 G1~G6 허용. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -34,17 +34,21 @@ RACK_SIDES: tuple[str, ...] = ("A", "B")
|
|||||||
RACK_ROWS: tuple[int, ...] = (3, 2, 1)
|
RACK_ROWS: tuple[int, ...] = (3, 2, 1)
|
||||||
RACK_COLS: tuple[int, ...] = (1, 2, 3)
|
RACK_COLS: tuple[int, ...] = (1, 2, 3)
|
||||||
RACK_SUBS: tuple[int, ...] = (1, 2)
|
RACK_SUBS: tuple[int, ...] = (1, 2)
|
||||||
|
# Side B 아래 바닥(Ground) 파렛트 6칸. 코드: 'G1' ~ 'G6'.
|
||||||
|
RACK_GROUND: tuple[str, ...] = ("G1", "G2", "G3", "G4", "G5", "G6")
|
||||||
|
|
||||||
|
|
||||||
def rack_cell_codes() -> list[str]:
|
def rack_cell_codes() -> list[str]:
|
||||||
"""모든 랙 칸 코드 목록(검증용). 예: 'A3-1-1' ... 'B1-3-2'."""
|
"""모든 랙 칸 코드 목록(검증용). 예: 'A3-1-1' ... 'B1-3-2', 'G1'~'G6'."""
|
||||||
return [
|
codes = [
|
||||||
f"{side}{row}-{col}-{sub}"
|
f"{side}{row}-{col}-{sub}"
|
||||||
for side in RACK_SIDES
|
for side in RACK_SIDES
|
||||||
for row in RACK_ROWS
|
for row in RACK_ROWS
|
||||||
for col in RACK_COLS
|
for col in RACK_COLS
|
||||||
for sub in RACK_SUBS
|
for sub in RACK_SUBS
|
||||||
]
|
]
|
||||||
|
codes.extend(RACK_GROUND)
|
||||||
|
return codes
|
||||||
|
|
||||||
|
|
||||||
def rack_layout() -> list[dict[str, Any]]:
|
def rack_layout() -> list[dict[str, Any]]:
|
||||||
@@ -61,7 +65,13 @@ def rack_layout() -> list[dict[str, Any]]:
|
|||||||
for col in RACK_COLS
|
for col in RACK_COLS
|
||||||
]
|
]
|
||||||
rows.append({"row": row, "cols": cols})
|
rows.append({"row": row, "cols": cols})
|
||||||
out.append({"side": side, "rows": rows})
|
out.append({"side": side, "label": f"Side {side}", "rows": rows})
|
||||||
|
# Side B 아래 Ground: 6칸(G1~G6)을 한 줄에. 각 칸은 분할 없는 단일 파렛트.
|
||||||
|
out.append({
|
||||||
|
"side": "Ground",
|
||||||
|
"label": "Ground",
|
||||||
|
"rows": [{"row": 0, "cols": [[code] for code in RACK_GROUND]}],
|
||||||
|
})
|
||||||
return out
|
return out
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -153,7 +153,7 @@
|
|||||||
<div class="rv-board" id="rv-board" style="margin-top:10px;">
|
<div class="rv-board" id="rv-board" style="margin-top:10px;">
|
||||||
{% for side in rack_layout %}
|
{% for side in rack_layout %}
|
||||||
<div class="rv-side">
|
<div class="rv-side">
|
||||||
<h3>Side {{ side.side }}</h3>
|
<h3>{{ side.label }}</h3>
|
||||||
{% for row in side.rows %}
|
{% for row in side.rows %}
|
||||||
<div class="rv-row">
|
<div class="rv-row">
|
||||||
{% for col in row.cols %}
|
{% for col in row.cols %}
|
||||||
|
|||||||
@@ -124,7 +124,7 @@
|
|||||||
<div class="rack-board" style="margin-top:10px;">
|
<div class="rack-board" style="margin-top:10px;">
|
||||||
{% for side in rack_layout %}
|
{% for side in rack_layout %}
|
||||||
<div class="rack-side">
|
<div class="rack-side">
|
||||||
<h3>Side {{ side.side }}</h3>
|
<h3>{{ side.label }}</h3>
|
||||||
{% for row in side.rows %}
|
{% for row in side.rows %}
|
||||||
<div class="rack-row">
|
<div class="rack-row">
|
||||||
{% for col in row.cols %}
|
{% for col in row.cols %}
|
||||||
|
|||||||
Reference in New Issue
Block a user