adding the username to the report tables

This commit is contained in:
Dan 2022-11-25 17:16:26 -05:00
parent 36423c378d
commit 4583dcdaac
4 changed files with 11 additions and 0 deletions

View File

@ -112,6 +112,7 @@ class ProcessInstanceModel(SpiffworkflowBaseDBModel):
"bpmn_version_control_identifier": self.bpmn_version_control_identifier, "bpmn_version_control_identifier": self.bpmn_version_control_identifier,
"bpmn_version_control_type": self.bpmn_version_control_type, "bpmn_version_control_type": self.bpmn_version_control_type,
"spiff_step": self.spiff_step, "spiff_step": self.spiff_step,
"username": self.process_initiator.username
} }
@property @property

View File

@ -31,6 +31,7 @@ from sqlalchemy import and_
from sqlalchemy import asc from sqlalchemy import asc
from sqlalchemy import desc from sqlalchemy import desc
from sqlalchemy import select from sqlalchemy import select
from sqlalchemy.orm import joinedload
from spiffworkflow_backend.exceptions.process_entity_not_found_error import ( from spiffworkflow_backend.exceptions.process_entity_not_found_error import (
ProcessEntityNotFoundError, ProcessEntityNotFoundError,
@ -812,6 +813,9 @@ def process_instance_list(
# process_model_identifier = un_modify_modified_process_model_id(modified_process_model_identifier) # process_model_identifier = un_modify_modified_process_model_id(modified_process_model_identifier)
process_instance_query = ProcessInstanceModel.query process_instance_query = ProcessInstanceModel.query
# Always join that hot user table for good performance at serialization time.
process_instance_query = process_instance_query.options(joinedload(ProcessInstanceModel.process_initiator))
if report_filter.process_model_identifier is not None: if report_filter.process_model_identifier is not None:
process_model = get_process_model( process_model = get_process_model(
f"{report_filter.process_model_identifier}", f"{report_filter.process_model_identifier}",
@ -871,6 +875,7 @@ def process_instance_list(
# process_instance_query = process_instance_query.join(UserModel, UserModel.id == ProcessInstanceModel.process_initiator_id) # process_instance_query = process_instance_query.join(UserModel, UserModel.id == ProcessInstanceModel.process_initiator_id)
# process_instance_query = process_instance_query.add_columns(UserModel.username) # process_instance_query = process_instance_query.add_columns(UserModel.username)
# search for process_instance.UserModel.username in this file for more details about why adding columns is annoying. # search for process_instance.UserModel.username in this file for more details about why adding columns is annoying.
process_instance_query = process_instance_query.filter( process_instance_query = process_instance_query.filter(
ProcessInstanceModel.process_initiator_id != g.user.id ProcessInstanceModel.process_initiator_id != g.user.id
) )

View File

@ -81,6 +81,7 @@ class ProcessInstanceReportService:
}, },
{"Header": "start_in_seconds", "accessor": "start_in_seconds"}, {"Header": "start_in_seconds", "accessor": "start_in_seconds"},
{"Header": "end_in_seconds", "accessor": "end_in_seconds"}, {"Header": "end_in_seconds", "accessor": "end_in_seconds"},
{"Header": "username", "accessor": "username"},
{"Header": "status", "accessor": "status"}, {"Header": "status", "accessor": "status"},
], ],
}, },
@ -106,6 +107,7 @@ class ProcessInstanceReportService:
}, },
{"Header": "start_in_seconds", "accessor": "start_in_seconds"}, {"Header": "start_in_seconds", "accessor": "start_in_seconds"},
{"Header": "end_in_seconds", "accessor": "end_in_seconds"}, {"Header": "end_in_seconds", "accessor": "end_in_seconds"},
{"Header": "username", "accessor": "username"},
{"Header": "status", "accessor": "status"}, {"Header": "status", "accessor": "status"},
], ],
"filter_by": [ "filter_by": [
@ -121,7 +123,9 @@ class ProcessInstanceReportService:
}, },
{"Header": "start_in_seconds", "accessor": "start_in_seconds"}, {"Header": "start_in_seconds", "accessor": "start_in_seconds"},
{"Header": "end_in_seconds", "accessor": "end_in_seconds"}, {"Header": "end_in_seconds", "accessor": "end_in_seconds"},
{"Header": "username", "accessor": "username"},
{"Header": "status", "accessor": "status"}, {"Header": "status", "accessor": "status"},
], ],
"filter_by": [ "filter_by": [
{ {

View File

@ -629,6 +629,7 @@ export default function ProcessInstanceListTable({
start_in_seconds: 'Start Time', start_in_seconds: 'Start Time',
end_in_seconds: 'End Time', end_in_seconds: 'End Time',
status: 'Status', status: 'Status',
username: 'Started By',
spiff_step: 'SpiffWorkflow Step', spiff_step: 'SpiffWorkflow Step',
}; };
const getHeaderLabel = (header: string) => { const getHeaderLabel = (header: string) => {