feat: unlink and delete buttons for links on project detail page

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-06 14:02:22 +00:00
parent e6049336e9
commit b73bd4fc06
2 changed files with 30 additions and 0 deletions

View File

@@ -417,3 +417,27 @@ async def remove_contact(
"DELETE FROM contact_projects WHERE contact_id = :cid AND project_id = :pid"
), {"cid": contact_id, "pid": project_id})
return RedirectResponse(url=f"/projects/{project_id}?tab=contacts", status_code=303)
# ---- Link unlinking ----
@router.post("/{project_id}/links/{link_id}/unlink")
async def unlink_link(
project_id: str, link_id: str,
db: AsyncSession = Depends(get_db),
):
await db.execute(text(
"UPDATE links SET project_id = NULL, updated_at = now() WHERE id = :lid AND project_id = :pid"
), {"lid": link_id, "pid": project_id})
await db.commit()
return RedirectResponse(url=f"/projects/{project_id}?tab=links", status_code=303)
@router.post("/{project_id}/links/{link_id}/delete")
async def delete_project_link(
project_id: str, link_id: str,
db: AsyncSession = Depends(get_db),
):
repo = BaseRepository("links", db)
await repo.soft_delete(link_id)
return RedirectResponse(url=f"/projects/{project_id}?tab=links", status_code=303)