Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions backend/migrations/0003_open_tasks_by_assignee_preset_accounts.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
-- 0003_open_tasks_by_assignee_preset_accounts.sql
-- Core migration 000066 moved a person's or agent's display name off `users`
-- and `agents` onto `accounts`, and replaced project_members.user_id/agent_id
-- with project_members.account_id. The "Open tasks by assignee" preset read
-- the old columns, so every panel created from it would now fail.
--
-- Panels copy the preset's SQL when they are created, so rewrite the ones that
-- still hold the preset text unchanged (compared ignoring whitespace). A panel
-- the user has edited is left alone: it is theirs to adapt, and the plugin
-- shows the query error when it fails.
-- Run with search_path = plugin_data_com_paca_dashboard, public.

UPDATE dashboard_panels
SET query = $new$SELECT COALESCE(ac.name, 'Unassigned') AS assignee, COUNT(DISTINCT t.id) AS open_tasks
FROM tasks t
JOIN task_statuses ts ON ts.id = t.status_id
LEFT JOIN task_assignees ta ON ta.task_id = t.id
LEFT JOIN project_members pm ON pm.id = ta.member_id
LEFT JOIN accounts ac ON ac.id = pm.account_id
WHERE t.project_id = {{project_id}} AND ts.category != 'done' AND t.deleted_at IS NULL
GROUP BY pm.account_id, ac.name
ORDER BY open_tasks DESC$new$,
updated_at = NOW()
WHERE type IN ('chart', 'table')
AND regexp_replace(query, '\s+', ' ', 'g') = $old$SELECT COALESCE(NULLIF(u.full_name, ''), u.username, a.name, 'Unassigned') AS assignee, COUNT(DISTINCT t.id) AS open_tasks FROM tasks t JOIN task_statuses ts ON ts.id = t.status_id LEFT JOIN task_assignees ta ON ta.task_id = t.id LEFT JOIN project_members pm ON pm.id = ta.member_id LEFT JOIN users u ON u.id = pm.user_id LEFT JOIN agents a ON a.id = pm.agent_id WHERE t.project_id = {{project_id}} AND ts.category != 'done' AND t.deleted_at IS NULL GROUP BY pm.id, u.full_name, u.username, a.name ORDER BY open_tasks DESC$old$;
7 changes: 3 additions & 4 deletions frontend/src/presets.ts
Original file line number Diff line number Diff line change
Expand Up @@ -100,15 +100,14 @@ ORDER BY task_count DESC`,
panelType: "chart",
chartType: "bar",
scopes: ["project", "integration"],
query: `SELECT COALESCE(NULLIF(u.full_name, ''), u.username, a.name, 'Unassigned') AS assignee, COUNT(DISTINCT t.id) AS open_tasks
query: `SELECT COALESCE(ac.name, 'Unassigned') AS assignee, COUNT(DISTINCT t.id) AS open_tasks
FROM tasks t
JOIN task_statuses ts ON ts.id = t.status_id
LEFT JOIN task_assignees ta ON ta.task_id = t.id
LEFT JOIN project_members pm ON pm.id = ta.member_id
LEFT JOIN users u ON u.id = pm.user_id
LEFT JOIN agents a ON a.id = pm.agent_id
LEFT JOIN accounts ac ON ac.id = pm.account_id
WHERE t.project_id = {{project_id}} AND ts.category != 'done' AND t.deleted_at IS NULL
GROUP BY pm.id, u.full_name, u.username, a.name
GROUP BY pm.account_id, ac.name
ORDER BY open_tasks DESC`,
},
{
Expand Down
Loading