feat(B01,B07): 표지 연도·기번·사업량을 사람이 넣는 자리 신설
표제란에 남아 있던 빈칸 중 연도·기번과 사업량은 프로그램이 지어낼 수 없는 값이라
입력 자리를 만든다. 값의 출처를 정하지 않고 받을 칸만 세운다.
DB (`012_title_block_inputs.sql`, ADD COLUMN·NULL 허용)
- `projects.project_number` — 표지 연도·기번(실무문서 폴더명 관행:
`2024년 간선임도(기번3-울진.대흥)`)
- `projects.work_amount` — 표지 사업량. 단위·표기가 사업 종류마다 달라 자유 문자열.
B01 프로젝트 수정
- 수정 모달에 시행청·연도기번·사업량 3칸 추가. 011 로 만든 시행청도 여기서 처음 입력
가능해짐(그전에는 스크립트로만 넣었음).
- 목록·단건 조회 4곳과 UPDATE 에 세 칸을 함께 실음. USER 권한은 다른 칸과 같이 잠금.
B07
- `_title_block_fields` 가 연도기번·사업량도 실어 보냄. 비어 있으면 종전대로 빈칸.
검증: `pytest tmp/tests/ -q` 139 passed / 0 failed(표지 값 1건 신규), 루트 `tsc --noEmit`
통과. 실사용자 경로 실측(5174) — 대시보드 wdw 행 [수정] 클릭 → 모달 라벨 9개에 새 3칸
확인 → 연도기번·사업량 입력 → [확인] 저장 → 표지 도면 Text 7개 **빈칸 0 · `{{` 잔존 0**,
화면에도 연도기번·`wdw 설계도`·위치·사업량·시행청이 모두 그려짐.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -122,7 +122,7 @@ async def _title_block_fields(project_id: UUID) -> dict[str, str]:
|
||||
배정이 없으면 프로젝트 소유자로 떨어진다 — 혼자 쓰는 계정에서도 칸이 차게.
|
||||
|
||||
아직 못 채우는 자리와 이유:
|
||||
- 축척(A1/A3)·사업량·연도기번 — 값을 지어내지 않는다(임의 수치 금지).
|
||||
- 사업량·연도기번은 사람이 넣는 값이다(B01 프로젝트 수정 화면). 비어 있으면 빈칸.
|
||||
- 설계일자 — "확정일"인데 도각은 **확정 전**에 그려져 저장본에 굳는다.
|
||||
채울 시점 정의가 미결이라 비워 둔다.
|
||||
- 도면번호 — 단건 조회가 목록 순서를 모른다(목록을 다시 만들면 도면을 열 때마다
|
||||
@@ -132,7 +132,8 @@ async def _title_block_fields(project_id: UUID) -> dict[str, str]:
|
||||
async with pool.acquire() as connection, connection.cursor() as cursor:
|
||||
await cursor.execute(
|
||||
"""
|
||||
SELECT p.name, p.region, p.client_org, c.name, c.logo_path,
|
||||
SELECT p.name, p.region, p.client_org, p.project_number, p.work_amount,
|
||||
c.name, c.logo_path,
|
||||
COALESCE(designer.name, owner.name),
|
||||
COALESCE(designer.signature_path, owner.signature_path),
|
||||
pm.name, lead.name
|
||||
@@ -149,11 +150,25 @@ async def _title_block_fields(project_id: UUID) -> dict[str, str]:
|
||||
row = await cursor.fetchone()
|
||||
if not row:
|
||||
return {}
|
||||
name, region, client_org, company, logo_path, designer, signature_path, pm, lead = row
|
||||
(
|
||||
name,
|
||||
region,
|
||||
client_org,
|
||||
project_number,
|
||||
work_amount,
|
||||
company,
|
||||
logo_path,
|
||||
designer,
|
||||
signature_path,
|
||||
pm,
|
||||
lead,
|
||||
) = row
|
||||
fields = {
|
||||
"공사명": name,
|
||||
"위치": region,
|
||||
"시행청": client_org,
|
||||
"연도기번": project_number,
|
||||
"사업량": work_amount,
|
||||
"용역회사": company,
|
||||
"설계자": designer,
|
||||
"과업책임자": pm,
|
||||
|
||||
Reference in New Issue
Block a user