From c8cb1f4a209a7203c0fa46a2337ab5f3b69d68d9 Mon Sep 17 00:00:00 2001 From: millenium-codebug <65906280+millenium-codebug@users.noreply.github.com> Date: Mon, 16 Jun 2025 23:16:57 +0200 Subject: [PATCH] feat: Include task assignees in member filter logic (#1214) --- client/src/models/List.js | 15 ++++++++++++++- server/api/hooks/query-methods/models/Card.js | 3 +++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/client/src/models/List.js b/client/src/models/List.js index 131c6146..8f9c6c6e 100755 --- a/client/src/models/List.js +++ b/client/src/models/List.js @@ -280,7 +280,20 @@ export default class extends BaseModel { if (filterUserIds.length > 0) { cardModels = cardModels.filter((cardModel) => { const users = cardModel.users.toRefArray(); - return users.some((user) => filterUserIds.includes(user.id)); + + if (users.some((user) => filterUserIds.includes(user.id))) { + return true; + } + + return cardModel + .getTaskListsQuerySet() + .toModelArray() + .some((taskListModel) => + taskListModel + .getTasksQuerySet() + .toRefArray() + .some((task) => filterUserIds.includes(task.assigneeUserId)), + ); }); } diff --git a/server/api/hooks/query-methods/models/Card.js b/server/api/hooks/query-methods/models/Card.js index 9bf227e9..7e47f8c0 100644 --- a/server/api/hooks/query-methods/models/Card.js +++ b/server/api/hooks/query-methods/models/Card.js @@ -29,6 +29,8 @@ const getIdsByEndlessListId = async ( if (filterUserIds) { query += ' JOIN card_membership ON card.id = card_membership.card_id'; + query += ' JOIN task_list ON card.id = task_list.card_id'; + query += ' JOIN task ON task_list.id = task.task_list_id'; } if (filterLabelIds) { @@ -84,6 +86,7 @@ const getIdsByEndlessListId = async ( }); query += ` AND card_membership.user_id IN (${inValues.join(', ')})`; + query += ` AND task.assignee_user_id IN (${inValues.join(', ')})`; } if (filterLabelIds) {