From 83032deb9aa57747183d685584fc1141a6963f80 Mon Sep 17 00:00:00 2001 From: jasquat Date: Tue, 29 Nov 2022 16:37:19 -0500 Subject: [PATCH] finished base for metadata reporting w/ burnettk --- .../routes/process_api_blueprint.py | 16 +++++++--------- .../services/process_instance_report_service.py | 4 +--- 2 files changed, 8 insertions(+), 12 deletions(-) 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 753b6c3c..b3bc1a22 100644 --- a/spiffworkflow-backend/src/spiffworkflow_backend/routes/process_api_blueprint.py +++ b/spiffworkflow-backend/src/spiffworkflow_backend/routes/process_api_blueprint.py @@ -940,19 +940,17 @@ def process_instance_list( if column["accessor"] in stock_columns: continue instance_metadata_alias = aliased(ProcessInstanceMetadataModel) - process_instance_query = ( - process_instance_query.outerjoin( - instance_metadata_alias, + process_instance_query = process_instance_query.outerjoin( + instance_metadata_alias, + and_( ProcessInstanceModel.id == instance_metadata_alias.process_instance_id, - ) - .filter(instance_metadata_alias.key == column["accessor"]) - .add_columns( - func.max(instance_metadata_alias.value).label(column["accessor"]) - ) - ) + instance_metadata_alias.key == column["accessor"], + ), + ).add_columns(func.max(instance_metadata_alias.value).label(column["accessor"])) process_instances = ( process_instance_query.group_by(ProcessInstanceModel.id) + .add_columns(ProcessInstanceModel.id) .order_by( ProcessInstanceModel.start_in_seconds.desc(), ProcessInstanceModel.id.desc() # type: ignore ) 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 20563be3..ad9dec0a 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 @@ -5,7 +5,6 @@ from typing import Optional import sqlalchemy from flask_bpmn.models.db import db -from spiffworkflow_backend.models.process_instance import ProcessInstanceModel from spiffworkflow_backend.models.process_instance_report import ( ProcessInstanceReportModel, ) @@ -253,12 +252,11 @@ class ProcessInstanceReportService: metadata_columns: list[dict], ) -> list[dict]: """Add_metadata_columns_to_process_instance.""" - stock_columns = cls.get_column_names_for_model(ProcessInstanceModel) results = [] for process_instance in process_instance_sqlalchemy_rows: process_instance_dict = process_instance["ProcessInstanceModel"].serialized for metadata_column in metadata_columns: - if metadata_column["accessor"] not in stock_columns: + if metadata_column["accessor"] not in process_instance_dict: process_instance_dict[ metadata_column["accessor"] ] = process_instance[metadata_column["accessor"]]