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) {