feat: focus priority, focus links, task list assignment, lists drag-and-drop, URL display fixes

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-10 22:19:15 +00:00
parent 931abf2abd
commit 2e919d458b
12 changed files with 291 additions and 19 deletions

View File

@@ -53,6 +53,7 @@ async def create_form(
task_id: Optional[str] = None,
meeting_id: Optional[str] = None,
contact_id: Optional[str] = None,
focus_id: Optional[str] = None,
db: AsyncSession = Depends(get_db),
):
sidebar = await get_sidebar_data(db)
@@ -69,6 +70,7 @@ async def create_form(
"prefill_task_id": task_id or "",
"prefill_meeting_id": meeting_id or "",
"prefill_contact_id": contact_id or "",
"prefill_focus_id": focus_id or "",
})
@@ -78,6 +80,7 @@ async def create_link(
domain_id: Optional[str] = Form(None), project_id: Optional[str] = Form(None),
task_id: Optional[str] = Form(None), meeting_id: Optional[str] = Form(None),
contact_id: Optional[str] = Form(None),
focus_id: Optional[str] = Form(None),
description: Optional[str] = Form(None), tags: Optional[str] = Form(None),
db: AsyncSession = Depends(get_db),
):
@@ -111,6 +114,15 @@ async def create_link(
await db.commit()
return RedirectResponse(url=f"/contacts/{contact_id}", status_code=303)
# Attach to focus item if created from focus context
if focus_id and focus_id.strip():
await db.execute(text("""
INSERT INTO focus_links (focus_id, link_id)
VALUES (:fid, :lid) ON CONFLICT DO NOTHING
"""), {"fid": focus_id, "lid": link["id"]})
await db.commit()
return RedirectResponse(url=f"/focus/{focus_id}", status_code=303)
# Redirect back to context if created from task/meeting/project
if task_id and task_id.strip():
return RedirectResponse(url=f"/tasks/{task_id}?tab=links", status_code=303)