From 7cfb3586ae250ca1e9525215fe6b715895413400 Mon Sep 17 00:00:00 2001 From: Abhimanyu Saharan Date: Mon, 2 Feb 2026 00:08:25 +0530 Subject: [PATCH] Prevent duplicate project members; improve comments display --- .../api/__pycache__/projects.cpython-312.pyc | Bin 6101 -> 6534 bytes backend/app/api/projects.py | 3 +++ frontend/src/app/projects/[id]/page.tsx | 7 ++++++- 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/backend/app/api/__pycache__/projects.cpython-312.pyc b/backend/app/api/__pycache__/projects.cpython-312.pyc index 812ab690ecdd3563b3ce42e7509116d1d190b5b7..10d14eccf9585057b3546001945507df7655fb49 100644 GIT binary patch delta 698 zcmcbr-)78rnwOW00SKJu)@Lpi*vNN`he?TP@?Li7$+FzRJS8k3IS|O=n#?F9EX|k& zRt*t@k=Ysy46B(Y^RZ}g)H2sF7x9+xPd>*lAyC2!Q&GcE1JnsJL6tE}049o{*RZT+ zhVW`xYM8QwCkG0N@U3Qq2r)7Mg+wRM=a6R<2T4pmDa0)-3DaD|l){k0TEmhhHJMRZ zgbipD3(zK@GNvqn$saj{g<0k>uVG)!hGv$m8cQ&PCWl|GK-2!ir6Om@hNGr zLL}5dveF<~j?{|G;*!j~^jmDXU~7s&;i53Pmrt(V3&=7D;^JRGqJiN7zgT}wXU!b9 zCAODk46nRUmB;d7yfU$pYfH!EP(^1xbKhQWQA(x40~0+-6A$c18g{MxoEl S3`{PJADDp54@#2_B*OrEpHq|o diff --git a/backend/app/api/projects.py b/backend/app/api/projects.py index 928e9720..22ecba5f 100644 --- a/backend/app/api/projects.py +++ b/backend/app/api/projects.py @@ -54,6 +54,9 @@ def list_project_members(project_id: int, session: Session = Depends(get_session @router.post("/{project_id}/members", response_model=ProjectMember) def add_project_member(project_id: int, payload: ProjectMember, session: Session = Depends(get_session)): + existing = session.exec(select(ProjectMember).where(ProjectMember.project_id == project_id, ProjectMember.employee_id == payload.employee_id)).first() + if existing: + raise HTTPException(status_code=409, detail="Member already added") member = ProjectMember(project_id=project_id, employee_id=payload.employee_id, role=payload.role) session.add(member) session.commit() diff --git a/frontend/src/app/projects/[id]/page.tsx b/frontend/src/app/projects/[id]/page.tsx index 30acfe99..6845cfe2 100644 --- a/frontend/src/app/projects/[id]/page.tsx +++ b/frontend/src/app/projects/[id]/page.tsx @@ -166,6 +166,9 @@ export default function ProjectDetailPage() { ))} + {addMember.error ? ( +
{(addMember.error as Error).message}
+ ) : null}
    {projectMembers.map((m) => (
  • @@ -273,7 +276,9 @@ export default function ProjectDetailPage() {
      {(comments.data ?? []).map((c) => (
    • - {c.body} +
      {employeeName(c.author_employee_id)}
      +
      {new Date(c.created_at).toLocaleString()}
      +
      {c.body}
    • ))} {(comments.data ?? []).length === 0 ? (