feat(z01): 기초단가 표 줄 세우기 — sort·desc 를 서버가 전체 줄로(자재 140 쪽이라 화면이 받은 50 줄만 세우면 가짜 차례) · 표 수준 sortable 로 눌릴 열을 알림(계산 열도 세움) · 덮개 얹은 값으로 · 거른 뒤에 세움 · 빈 칸은 어느 쪽이든 끝 · 모르는 열은 400(조용히 원본 차례로 안 돌아감)

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BW6Jdsh18WPtYUR6THZJqn
This commit is contained in:
2026-09-16 11:18:55 +09:00
co-authored by Claude Opus 5
parent 3a61d4c158
commit 58c40b7c50
3 changed files with 98 additions and 4 deletions
+11 -3
View File
@@ -2,7 +2,7 @@
GET /api/master-data/tree 갈래 → 파일 → 표
GET /api/master-data/rows?file=&table=&page=&size=&q= 표 줄(쪽 나누기 · 검색)
GET /api/master-data/base-prices/{kind}?page=&size=&q= 기초단가 한 표(labor|machine|material|oil|rate)
GET /api/master-data/base-prices/{kind}?page=&size=&q=&sort=&desc= 기초단가 한 표(labor|machine|material|oil|rate)
PUT /api/master-data/base-prices/{kind}/{row_id} {values:{열:값}} → 덮개에만 씀 · null = 되돌리기
GET /api/master-data/overrides 고친 것·원본 바뀐 것·주인 없는 것(서버 정렬)
⚠ 권한은 등록하는 쪽(`main.py` · 랩탑 서브)이 `dependencies=[verify_session, require_system_admin]` 로 붙임.
@@ -50,9 +50,17 @@ def _kind(kind: str) -> str:
@router.get("/base-prices/{kind}")
def get_base_prices(
kind: str, page: int = 1, size: int = tables.DEFAULT_PAGE_SIZE, q: str = ""
kind: str,
page: int = 1,
size: int = tables.DEFAULT_PAGE_SIZE,
q: str = "",
sort: str = "",
desc: int = 0,
) -> dict:
return base_prices.table(_kind(kind), page=page, size=size, q=q)
try:
return base_prices.table(_kind(kind), page=page, size=size, q=q, sort=sort, desc=bool(desc))
except base_prices.SortError as error:
raise HTTPException(status_code=400, detail=str(error)) from error
@router.put("/base-prices/{kind}/{row_id:path}")