From f7a9ea9c03e92be08751e5a1e9fe683b05675e08 Mon Sep 17 00:00:00 2001 From: millenium-codebug <65906280+millenium-codebug@users.noreply.github.com> Date: Fri, 13 Jun 2025 12:13:44 +0200 Subject: [PATCH] feat: Add new methods to retrieve task lists and tasks model arrays; Filter cards by tasks assigned user --- client/src/models/Card.js | 4 ++++ client/src/models/List.js | 7 +++++++ client/src/models/TaskList.js | 4 ++++ 3 files changed, 15 insertions(+) diff --git a/client/src/models/Card.js b/client/src/models/Card.js index 669d6255..1c80d241 100755 --- a/client/src/models/Card.js +++ b/client/src/models/Card.js @@ -470,6 +470,10 @@ export default class extends BaseModel { }); } + getTaskListsModelArray() { + return this.getTaskListsQuerySet().toModelArray(); + } + getShownOnFrontOfCardTaskListsModelArray() { return this.getTaskListsQuerySet() .toModelArray() diff --git a/client/src/models/List.js b/client/src/models/List.js index 131c6146..e198af7c 100755 --- a/client/src/models/List.js +++ b/client/src/models/List.js @@ -280,6 +280,13 @@ export default class extends BaseModel { if (filterUserIds.length > 0) { cardModels = cardModels.filter((cardModel) => { const users = cardModel.users.toRefArray(); + cardModel.getTaskListsModelArray().forEach((taskListModel) => { + taskListModel.getTasksModelArray().forEach((taskModel) => { + if (filterUserIds.includes(taskModel.assigneeUserId)) { + users.push(taskModel.user); + } + }); + }); return users.some((user) => filterUserIds.includes(user.id)); }); } diff --git a/client/src/models/TaskList.js b/client/src/models/TaskList.js index 56e02a8c..a2069b08 100755 --- a/client/src/models/TaskList.js +++ b/client/src/models/TaskList.js @@ -100,6 +100,10 @@ export default class extends BaseModel { return this.tasks.orderBy(['position', 'id.length', 'id']); } + getTasksModelArray() { + return this.getTasksQuerySet().toModelArray(); + } + duplicate(id, data, rootId) { if (rootId === undefined) { rootId = id; // eslint-disable-line no-param-reassign