mirror of
https://github.com/plankanban/planka.git
synced 2025-12-20 17:25:39 +03:00
fix: Fix filtering by task assignees
This commit is contained in:
@@ -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) {
|
||||||
|
|||||||
Reference in New Issue
Block a user