Merge remote-tracking branch 'origin/main' into feature/bpmn_user_permissions

This commit is contained in:
jasquat 2022-12-20 17:00:58 -05:00
commit 6b886663f1
2 changed files with 15 additions and 14 deletions

View File

@ -601,7 +601,7 @@ paths:
description: Specifies the identifier of a report to use, if any
schema:
type: integer
- name: group_identifier
- name: user_group_identifier
in: query
required: false
description: The identifier of the group to get the process instances for
@ -714,7 +714,7 @@ paths:
description: Specifies the identifier of a report to use, if any
schema:
type: integer
- name: group_identifier
- name: user_group_identifier
in: query
required: false
description: The identifier of the group to get the process instances for
@ -1328,7 +1328,7 @@ paths:
/tasks/for-my-groups:
parameters:
- name: group_identifier
- name: user_group_identifier
in: query
required: false
description: The identifier of the group to get the tasks for

View File

@ -380,7 +380,11 @@ class ProcessInstanceReportService:
ProcessInstanceModel.status.in_(ProcessInstanceModel.terminal_statuses()) # type: ignore
)
if report_filter.with_relation_to_me is True:
if (
not report_filter.with_tasks_completed_by_me
and not report_filter.with_tasks_assigned_to_my_group
and report_filter.with_relation_to_me is True
):
process_instance_query = process_instance_query.outerjoin(
HumanTaskModel
).outerjoin(
@ -410,17 +414,14 @@ class ProcessInstanceReportService:
)
if report_filter.with_tasks_assigned_to_my_group is True:
group_model_join_conditions = [GroupModel.id == HumanTaskModel.lane_assignment_id]
if report_filter.user_group_identifier:
process_instance_query = process_instance_query.join(
GroupModel,
GroupModel.identifier == report_filter.user_group_identifier,
)
else:
process_instance_query = process_instance_query.join(HumanTaskModel)
process_instance_query = process_instance_query.join(
GroupModel,
GroupModel.id == HumanTaskModel.lane_assignment_id,
)
group_model_join_conditions.append(GroupModel.identifier == report_filter.user_group_identifier)
process_instance_query = process_instance_query.join(HumanTaskModel)
process_instance_query = process_instance_query.join(
GroupModel,
and_(*group_model_join_conditions)
)
process_instance_query = process_instance_query.join(
UserGroupAssignmentModel,
UserGroupAssignmentModel.group_id == GroupModel.id,