mirror of
https://github.com/plankanban/planka.git
synced 2025-07-18 12:49:43 +02:00
fix: Fix filtering by task assignees
This commit is contained in:
parent
c8cb1f4a20
commit
6988864808
3 changed files with 20 additions and 8 deletions
|
@ -361,7 +361,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) => task.assigneeUserId && filterUserIds.includes(task.assigneeUserId)),
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -292,7 +292,7 @@ export default class extends BaseModel {
|
|||
taskListModel
|
||||
.getTasksQuerySet()
|
||||
.toRefArray()
|
||||
.some((task) => filterUserIds.includes(task.assigneeUserId)),
|
||||
.some((task) => task.assigneeUserId && filterUserIds.includes(task.assigneeUserId)),
|
||||
);
|
||||
});
|
||||
}
|
||||
|
|
|
@ -28,13 +28,13 @@ const getIdsByEndlessListId = async (
|
|||
let query = 'SELECT DISTINCT card.id FROM card';
|
||||
|
||||
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';
|
||||
query += ' LEFT JOIN card_membership ON card.id = card_membership.card_id';
|
||||
query += ' LEFT JOIN task_list ON card.id = task_list.card_id';
|
||||
query += ' LEFT JOIN task ON task_list.id = task.task_list_id';
|
||||
}
|
||||
|
||||
if (filterLabelIds) {
|
||||
query += ' JOIN card_label ON card.id = card_label.card_id';
|
||||
query += ' LEFT JOIN card_label ON card.id = card_label.card_id';
|
||||
}
|
||||
|
||||
queryValues.push(listId);
|
||||
|
@ -85,8 +85,7 @@ const getIdsByEndlessListId = async (
|
|||
return `$${queryValues.length}`;
|
||||
});
|
||||
|
||||
query += ` AND card_membership.user_id IN (${inValues.join(', ')})`;
|
||||
query += ` AND task.assignee_user_id IN (${inValues.join(', ')})`;
|
||||
query += ` AND (card_membership.user_id IN (${inValues.join(', ')}) OR task.assignee_user_id IN (${inValues.join(', ')}))`;
|
||||
}
|
||||
|
||||
if (filterLabelIds) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue