mirror of
https://github.com/plankanban/planka.git
synced 2025-07-18 20:59:44 +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) {
|
if (filterUserIds.length > 0) {
|
||||||
cardModels = cardModels.filter((cardModel) => {
|
cardModels = cardModels.filter((cardModel) => {
|
||||||
const users = cardModel.users.toRefArray();
|
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
|
taskListModel
|
||||||
.getTasksQuerySet()
|
.getTasksQuerySet()
|
||||||
.toRefArray()
|
.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';
|
let query = 'SELECT DISTINCT card.id FROM card';
|
||||||
|
|
||||||
if (filterUserIds) {
|
if (filterUserIds) {
|
||||||
query += ' JOIN card_membership ON card.id = card_membership.card_id';
|
query += ' LEFT JOIN card_membership ON card.id = card_membership.card_id';
|
||||||
query += ' JOIN task_list ON card.id = task_list.card_id';
|
query += ' LEFT JOIN task_list ON card.id = task_list.card_id';
|
||||||
query += ' JOIN task ON task_list.id = task.task_list_id';
|
query += ' LEFT JOIN task ON task_list.id = task.task_list_id';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (filterLabelIds) {
|
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);
|
queryValues.push(listId);
|
||||||
|
@ -85,8 +85,7 @@ const getIdsByEndlessListId = async (
|
||||||
return `$${queryValues.length}`;
|
return `$${queryValues.length}`;
|
||||||
});
|
});
|
||||||
|
|
||||||
query += ` AND card_membership.user_id IN (${inValues.join(', ')})`;
|
query += ` AND (card_membership.user_id IN (${inValues.join(', ')}) OR task.assignee_user_id IN (${inValues.join(', ')}))`;
|
||||||
query += ` AND task.assignee_user_id IN (${inValues.join(', ')})`;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (filterLabelIds) {
|
if (filterLabelIds) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue