feat(project): 프로젝트 화면 좌측메뉴 강제접힘 + 우측 내업무 패널 + 보드 가로스크롤 격리
- 프로젝트 관리(index/project/inbox) 진입 시 메인 좌측 사이드바를 전역 설정과 무관하게 항상 접어서 렌더(force_sidebar_collapsed) — 서버에서 바로 data-collapsed=true 로 그려 깜빡임도 없다. - 프로젝트 상세 화면(보드/리스트/달력/타임라인) 오른쪽에 홈 화면과 동일한 "내 업무" 패널 추가(프로젝트별 그룹, 클릭 시 팝업 편집). - 보드에 세션이 늘어나면 .pj-board 안에서만 가로 스크롤돼야 하는데 .pj-main 에 min-width:0 이 없어 grid 트랙 자체가 넓어져 페이지 전체가 가로 스크롤되던 문제 수정. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -457,6 +457,7 @@ async def index(request: Request) -> HTMLResponse:
|
||||
"nav_items": build_erp_nav(user, active="project"),
|
||||
"page_title": "프로젝트 관리",
|
||||
"page_subtitle": "달력·타임라인·보드로 프로젝트를 관리하세요.",
|
||||
"force_sidebar_collapsed": True,
|
||||
"active_projects": active_projects,
|
||||
"done_projects": done_projects,
|
||||
"my_projects": my_projects,
|
||||
@@ -552,6 +553,26 @@ async def project_page(request: Request, project_id: int) -> HTMLResponse:
|
||||
if u.get("picture")
|
||||
}
|
||||
|
||||
# 우측 "내 업무" 패널 — 홈 화면과 동일한 쿼리/그룹핑(프로젝트별)을 재사용.
|
||||
my_tasks = st.list_tasks(assignee_email=user["email"], limit=500)
|
||||
for t in my_tasks:
|
||||
t["start_label"] = _fmt_date_kr(t.get("start_date"))
|
||||
t["due_label"] = _fmt_date_kr(t.get("due_date"))
|
||||
my_groups: dict[int, dict[str, Any]] = {}
|
||||
for t in my_tasks:
|
||||
pid = t.get("project_id")
|
||||
g = my_groups.get(pid)
|
||||
if g is None:
|
||||
g = {
|
||||
"id": pid,
|
||||
"name": t.get("project_name") or "프로젝트",
|
||||
"color": t.get("project_color") or "#4573d2",
|
||||
"tasks": [],
|
||||
}
|
||||
my_groups[pid] = g
|
||||
g["tasks"].append(t)
|
||||
my_projects = list(my_groups.values())
|
||||
|
||||
# 달력(휴가식 월간 그리드) — ?y=&m= 로 월 이동, 기본 이번 달
|
||||
today = today_kst()
|
||||
try:
|
||||
@@ -575,8 +596,11 @@ async def project_page(request: Request, project_id: int) -> HTMLResponse:
|
||||
"nav_items": build_erp_nav(user, active="project"),
|
||||
"page_title": project["name"],
|
||||
"page_subtitle": project.get("description") or "프로젝트 보드",
|
||||
"force_sidebar_collapsed": True,
|
||||
"project": project,
|
||||
"current_project_id": project_id,
|
||||
"my_projects": my_projects,
|
||||
"my_tasks": my_tasks,
|
||||
"nav_projects": nav_projects,
|
||||
"stages": stages,
|
||||
"tasks": all_tasks,
|
||||
@@ -1331,6 +1355,7 @@ async def inbox_page(request: Request) -> HTMLResponse:
|
||||
"nav_items": build_erp_nav(user, active="project"),
|
||||
"page_title": "알림센터",
|
||||
"page_subtitle": "내게 온 프로젝트 알림",
|
||||
"force_sidebar_collapsed": True,
|
||||
"notifications": items,
|
||||
},
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user