Skip to content

Commit 89cf8a6

Browse files
authored
Merge pull request #1143 from AOT-Technologies/feature/FWF-6254-task-assignment-issue
FWF-6254-task-listing-for-direct-assignees
2 parents 79b345a + 6072cf2 commit 89cf8a6

File tree

4 files changed

+58
-22
lines changed

4 files changed

+58
-22
lines changed

forms-flow-review/src/components/TaskFilterModal/TaskFilterModalBody.tsx

Lines changed: 26 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -162,9 +162,15 @@ const TaskFilterModalBody = ({
162162

163163
const getCriteria = () => {
164164
const criteria: FilterCriteria = {
165-
includeAssignedTasks: true,
166-
candidateGroupsExpression: "${currentUserGroups()}",
167-
// If sorting is based on submission id or form name, that should be passed as process variable in sorting
165+
orQueries: [
166+
{
167+
candidateGroupsExpression: "${currentUserGroups()}",
168+
includeAssignedTasks: true,
169+
},
170+
{
171+
assigneeExpression: "${currentUser()}",
172+
},
173+
],
168174
sorting: sortValue === "applicationId" || sortValue === "formName" ?
169175
([{
170176
sortBy: "processVariable", sortOrder: sortOrder,
@@ -173,8 +179,6 @@ const TaskFilterModalBody = ({
173179
[{ sortBy: sortValue, sortOrder: sortOrder }],
174180
};
175181

176-
177-
178182
if (selectedForm?.formId) {
179183
criteria.processVariables = [];
180184
criteria.processVariables.push({
@@ -185,20 +189,24 @@ const TaskFilterModalBody = ({
185189
}
186190

187191
if (accessOption === SPECIFIC_ROLE) {
188-
const trimmedAccessValue = trimFirstSlash(accessValue);
189-
criteria.candidateGroup = addTenantPrefixIfNeeded(
190-
trimmedAccessValue,
191-
tenantKey,
192-
MULTITENANCY_ENABLED
193-
);
194-
delete criteria.assignee;
195-
} else if(accessOption === SPECIFIC_ASSIGNEE){
192+
const trimmedAccessValue = trimFirstSlash(accessValue);
193+
const candidateGroup = addTenantPrefixIfNeeded(
194+
trimmedAccessValue,
195+
tenantKey,
196+
MULTITENANCY_ENABLED
197+
);
198+
criteria.orQueries = [
199+
{
200+
candidateGroup: candidateGroup,
201+
includeAssignedTasks: true,
202+
},
203+
{
204+
assigneeExpression: "${currentUser()}",
205+
},
206+
];
207+
} else if (accessOption === SPECIFIC_ASSIGNEE) {
208+
delete criteria.orQueries;
196209
criteria.assignee = accessValue;
197-
delete criteria.candidateGroup;
198-
}
199-
else{
200-
delete criteria.assignee;
201-
delete criteria.candidateGroup;
202210
}
203211

204212
return criteria;

forms-flow-review/src/constants/allTasksPayload.ts

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,15 @@ const useAllTasksPayload = () => {
99
return {
1010
name: "All Tasks",
1111
criteria: {
12-
includeAssignedTasks: true,
13-
candidateGroupsExpression: "${currentUserGroups()}",
12+
orQueries: [
13+
{
14+
candidateGroupsExpression: "${currentUserGroups()}",
15+
includeAssignedTasks: true,
16+
},
17+
{
18+
assigneeExpression: "${currentUser()}",
19+
},
20+
],
1421
sorting: [
1522
{
1623
sortBy: "created",

forms-flow-review/src/helper/taskHelper.ts

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,10 +82,29 @@ export const createReqPayload = (
8282
};
8383

8484
const date = buildDateRangePayload(dateRange);
85+
86+
const criteria = clonedFilter?.criteria || {};
87+
88+
// Transform old-format filters (without orQueries) to use orQueries
89+
// so that tasks directly assigned to the user are also returned.
90+
if (!criteria.orQueries && criteria.candidateGroupsExpression) {
91+
criteria.orQueries = [
92+
{
93+
candidateGroupsExpression: criteria.candidateGroupsExpression,
94+
includeAssignedTasks: true,
95+
},
96+
{
97+
assigneeExpression: "${ currentUser() }",
98+
},
99+
];
100+
delete criteria.candidateGroupsExpression;
101+
delete criteria.includeAssignedTasks;
102+
}
103+
85104
const updatedFilter = {
86105
...clonedFilter,
87106
criteria: {
88-
...clonedFilter?.criteria,
107+
...criteria,
89108
...(processVariables.processVariables?.length && processVariables),
90109
...(assignee.assignee && assignee),
91110
...date,

forms-flow-review/src/types/taskFilter.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,14 @@ export interface FilterCriteria {
44
includeAssignedTasks?: boolean;
55
candidateGroup?: string;
66
assignee?: string;
7+
assigneeExpression?: string;
78
processVariables?: Array<{
89
name: string;
910
operator: string;
1011
value: string;
1112
}>;
12-
candidateGroupsExpression: string;
13+
candidateGroupsExpression?: string;
14+
orQueries?: Array<Record<string, any>>;
1315
sorting: Array<{
1416
}>;
1517
createdAfter?: string;

0 commit comments

Comments
 (0)