diff --git a/spiffworkflow-backend/src/spiffworkflow_backend/config/permissions/local_development.yml b/spiffworkflow-backend/src/spiffworkflow_backend/config/permissions/local_development.yml index 049c991e..eb9ce4b7 100644 --- a/spiffworkflow-backend/src/spiffworkflow_backend/config/permissions/local_development.yml +++ b/spiffworkflow-backend/src/spiffworkflow_backend/config/permissions/local_development.yml @@ -3,10 +3,14 @@ default_group: everybody groups: admin: users: [admin@spiffworkflow.org] + group1: + users: [jason@sartography.com, kb@sartography.com] + group2: + users: [dan@sartography.com] permissions: admin: - groups: [admin] + groups: [admin, group1, group2] users: [] allowed_permissions: [create, read, update, delete] uri: /* diff --git a/spiffworkflow-backend/src/spiffworkflow_backend/services/process_instance_report_service.py b/spiffworkflow-backend/src/spiffworkflow_backend/services/process_instance_report_service.py index 85424c21..04f8b4b5 100644 --- a/spiffworkflow-backend/src/spiffworkflow_backend/services/process_instance_report_service.py +++ b/spiffworkflow-backend/src/spiffworkflow_backend/services/process_instance_report_service.py @@ -168,6 +168,17 @@ class ProcessInstanceReportService: ], "order_by": ["-start_in_seconds", "-id"], }, + "system_report_in_progress_instances_with_tasks_for_my_group": { + "columns": cls.builtin_column_options(), + "filter_by": [ + { + "field_name": "with_tasks_assigned_to_my_group", + "field_value": "true", + }, + {"field_name": "has_terminal_status", "field_value": "false"}, + ], + "order_by": ["-start_in_seconds", "-id"], + }, } if metadata_key not in temp_system_metadata_map: @@ -350,6 +361,8 @@ class ProcessInstanceReportService: for process_instance_row in process_instance_sqlalchemy_rows: process_instance_mapping = process_instance_row._mapping process_instance_dict = process_instance_row[0].serialized + if 'task_guid' in process_instance_mapping: + process_instance_dict['task_guid'] = process_instance_mapping['task_guid'] for metadata_column in metadata_columns: if metadata_column["accessor"] not in process_instance_dict: process_instance_dict[metadata_column["accessor"]] = process_instance_mapping[ @@ -493,7 +506,10 @@ class ProcessInstanceReportService: ) process_instance_query = process_instance_query.join( HumanTaskModel, - HumanTaskModel.process_instance_id == ProcessInstanceModel.id, + and_( + HumanTaskModel.process_instance_id == ProcessInstanceModel.id, + HumanTaskModel.lane_assignment_id.is_(None), # type: ignore + ) ).join( HumanTaskUserModel, and_( diff --git a/spiffworkflow-frontend/src/routes/InProgressInstances.tsx b/spiffworkflow-frontend/src/routes/InProgressInstances.tsx index e80160cc..a6681597 100644 --- a/spiffworkflow-frontend/src/routes/InProgressInstances.tsx +++ b/spiffworkflow-frontend/src/routes/InProgressInstances.tsx @@ -30,7 +30,7 @@ export default function InProgressInstances() { paginationQueryParamPrefix="group_completed_instances" paginationClassName="with-large-bottom-margin" perPageOptions={[2, 5, 25]} - reportIdentifier="system_report_completed_instances_with_tasks_completed_by_my_groups" + reportIdentifier="system_report_in_progress_instances_with_tasks_for_my_group" showReports={false} textToShowIfEmpty="This group has no completed instances at this time." additionalParams={`user_group_identifier=${userGroup}`} @@ -71,9 +71,7 @@ export default function InProgressInstances() { paginationClassName="with-large-bottom-margin" autoReload={false} /> - {/** {groupTableComponents()} - * */} ); }