diff --git a/spiffworkflow-backend/src/spiffworkflow_backend/routes/process_api_blueprint.py b/spiffworkflow-backend/src/spiffworkflow_backend/routes/process_api_blueprint.py index 6f09df97..3fb0b66d 100644 --- a/spiffworkflow-backend/src/spiffworkflow_backend/routes/process_api_blueprint.py +++ b/spiffworkflow-backend/src/spiffworkflow_backend/routes/process_api_blueprint.py @@ -899,7 +899,6 @@ def process_instance_list( SpiffStepDetailsModel.completed_by_user_id == g.user.id ) - # TODO: not sure if this is exactly what is wanted if report_filter.with_tasks_completed_by_my_group is True: process_instance_query = process_instance_query.filter( ProcessInstanceModel.status.in_(["complete", "error", "terminated"]) # type: ignore @@ -918,22 +917,18 @@ def process_instance_list( process_instance_query = process_instance_query.filter( SpiffLoggingModel.spiff_step == SpiffStepDetailsModel.spiff_step ) - - my_groups = ( - select(UserGroupAssignmentModel) # type: ignore - .where(UserGroupAssignmentModel.user_id == g.user.id) - .with_only_columns(UserGroupAssignmentModel.group_id) + process_instance_query = process_instance_query.join( + GroupModel, + GroupModel.id == SpiffStepDetailsModel.lane_assignment_id, ) - users_in_my_groups = ( - select(UserGroupAssignmentModel) # type: ignore - .where(UserGroupAssignmentModel.group_id.in_(my_groups)) - .with_only_columns(UserGroupAssignmentModel.user_id) + process_instance_query = process_instance_query.join( + UserGroupAssignmentModel, + UserGroupAssignmentModel.group_id == GroupModel.id, ) - process_instance_query = process_instance_query.filter( - SpiffStepDetailsModel.completed_by_user_id.in_(users_in_my_groups) # type: ignore + UserGroupAssignmentModel.user_id == g.user.id ) - + process_instances = ( process_instance_query.group_by(ProcessInstanceModel.id) .order_by(