From 1aad9844dddfe3ae8243c58d729442259fa5f704 Mon Sep 17 00:00:00 2001 From: king Date: Tue, 15 Sep 2026 09:16:39 +0900 Subject: [PATCH] =?UTF-8?q?feat(project):=20=EC=97=85=EB=AC=B4=20=ED=81=B4?= =?UTF-8?q?=EB=A6=AD=20=EC=8B=9C=20=ED=8E=98=EC=9D=B4=EC=A7=80=20=EC=9D=B4?= =?UTF-8?q?=EB=8F=99=20=EC=97=86=EC=9D=B4=20=EA=B7=B8=20=EC=9E=90=EB=A6=AC?= =?UTF-8?q?=EC=97=90=EC=84=9C=20=ED=8C=9D=EC=97=85=20=ED=8E=B8=EC=A7=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 좌측 트리(프로젝트 상세 페이지): 이미 로드된 업무 데이터로 즉시 팝업 — 더 이상 페이지를 새로고침하며 달력 탭으로 넘어가지 않음 - 홈 화면 카드/내 업무 리스트: 홈에도 업무편집 모달을 추가해 페이지 이동 없이 팝업으로 편집(담당자·단계는 해당 프로젝트를 API 로 조회해 채움, 첨부·댓글 포함) - 교차 프로젝트 업무 편집 시 담당자 select 가 현재 프로젝트 멤버만 보이던 문제 수정 (해당 업무의 프로젝트 멤버를 다시 조회) - 완료 프로젝트 숨기기 토글을 인라인 style.display 로 직접 제어하도록 변경 ([hidden] 속성 + 클래스 규칙 조합이 기대대로 안 먹히는 경우 대비, 원인 불문 확실히 동작) Co-Authored-By: Claude Sonnet 5 --- app/modules/project/router.py | 11 + .../project/templates/project/inbox.html | 4 +- .../project/templates/project/index.html | 74 +++++- .../project/templates/project/project.html | 4 +- app/static/project.css | 1 - app/static/project.js | 229 +++++++++++++++++- docs/PROJECT_MODULE.md | 5 +- 7 files changed, 310 insertions(+), 18 deletions(-) diff --git a/app/modules/project/router.py b/app/modules/project/router.py index bb88aef..a9c7c8f 100644 --- a/app/modules/project/router.py +++ b/app/modules/project/router.py @@ -408,6 +408,16 @@ async def index(request: Request) -> HTMLResponse: my_groups[pid] = g g["tasks"].append(t) my_projects = list(my_groups.values()) + + # 홈 화면 카드/내업무에 노출된 업무 전체(id→업무) — 클릭 시 페이지 이동 없이 + # 팝업으로 편집하기 위해 필요한 원본 데이터를 그대로 클라이언트에 넘긴다. + home_tasks: dict[str, Any] = {} + for p in tree: + for t in p.get("task_preview", []): + home_tasks[str(t["id"])] = t + for t in my_tasks: + home_tasks[str(t["id"])] = t + return render_template( request, "project/index.html", @@ -421,6 +431,7 @@ async def index(request: Request) -> HTMLResponse: "done_projects": done_projects, "my_projects": my_projects, "avatars": avatars, + "home_tasks": home_tasks, "today": today_kst().isoformat(), }, ) diff --git a/app/modules/project/templates/project/inbox.html b/app/modules/project/templates/project/inbox.html index a9cb03e..00bb54f 100644 --- a/app/modules/project/templates/project/inbox.html +++ b/app/modules/project/templates/project/inbox.html @@ -1,7 +1,7 @@ {% extends "erp_base.html" %} {% block head_extra %} - + {% endblock %} @@ -45,5 +45,5 @@ {% endif %} - + {% endblock %} diff --git a/app/modules/project/templates/project/index.html b/app/modules/project/templates/project/index.html index 1c7f947..5e1cbaf 100644 --- a/app/modules/project/templates/project/index.html +++ b/app/modules/project/templates/project/index.html @@ -1,7 +1,7 @@ {% extends "erp_base.html" %} {% block head_extra %} - + {% endblock %} @@ -49,7 +49,7 @@