From e9913d83a199c4dae3e9e1b7c92d5a07ac40fc92 Mon Sep 17 00:00:00 2001 From: burnettk Date: Thu, 2 Feb 2023 15:40:01 -0500 Subject: [PATCH] simplify spiff integration post serializer update, w/ elizabeth and jon --- poetry.lock | 5 +- .../scripts/markdown_file_download_link.py | 6 ++- .../services/process_instance_processor.py | 51 +++---------------- 3 files changed, 15 insertions(+), 47 deletions(-) diff --git a/poetry.lock b/poetry.lock index 733c84ac..570faf85 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1825,7 +1825,7 @@ lxml = "*" type = "git" url = "https://github.com/sartography/SpiffWorkflow" reference = "main" -resolved_reference = "64737498caa36c25b12f5216bdc9c30338b2a1fa" +resolved_reference = "0e61be85c47474a33037e6f398e64c96e02f13ad" [[package]] name = "SQLAlchemy" @@ -2546,6 +2546,7 @@ greenlet = [ {file = "greenlet-2.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d5b0ff9878333823226d270417f24f4d06f235cb3e54d1103b71ea537a6a86ce"}, {file = "greenlet-2.0.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:be9e0fb2ada7e5124f5282d6381903183ecc73ea019568d6d63d33f25b2a9000"}, {file = "greenlet-2.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b493db84d124805865adc587532ebad30efa68f79ad68f11b336e0a51ec86c2"}, + {file = "greenlet-2.0.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:0459d94f73265744fee4c2d5ec44c6f34aa8a31017e6e9de770f7bcf29710be9"}, {file = "greenlet-2.0.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:a20d33124935d27b80e6fdacbd34205732660e0a1d35d8b10b3328179a2b51a1"}, {file = "greenlet-2.0.1-cp37-cp37m-win32.whl", hash = "sha256:ea688d11707d30e212e0110a1aac7f7f3f542a259235d396f88be68b649e47d1"}, {file = "greenlet-2.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:afe07421c969e259e9403c3bb658968702bc3b78ec0b6fde3ae1e73440529c23"}, @@ -2554,6 +2555,7 @@ greenlet = [ {file = "greenlet-2.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:659f167f419a4609bc0516fb18ea69ed39dbb25594934bd2dd4d0401660e8a1e"}, {file = "greenlet-2.0.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:356e4519d4dfa766d50ecc498544b44c0249b6de66426041d7f8b751de4d6b48"}, {file = "greenlet-2.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:811e1d37d60b47cb8126e0a929b58c046251f28117cb16fcd371eed61f66b764"}, + {file = "greenlet-2.0.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:d38ffd0e81ba8ef347d2be0772e899c289b59ff150ebbbbe05dc61b1246eb4e0"}, {file = "greenlet-2.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:0109af1138afbfb8ae647e31a2b1ab030f58b21dd8528c27beaeb0093b7938a9"}, {file = "greenlet-2.0.1-cp38-cp38-win32.whl", hash = "sha256:88c8d517e78acdf7df8a2134a3c4b964415b575d2840a2746ddb1cc6175f8608"}, {file = "greenlet-2.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:d6ee1aa7ab36475035eb48c01efae87d37936a8173fc4d7b10bb02c2d75dd8f6"}, @@ -2562,6 +2564,7 @@ greenlet = [ {file = "greenlet-2.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:505138d4fa69462447a562a7c2ef723c6025ba12ac04478bc1ce2fcc279a2db5"}, {file = "greenlet-2.0.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cce1e90dd302f45716a7715517c6aa0468af0bf38e814ad4eab58e88fc09f7f7"}, {file = "greenlet-2.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9e9744c657d896c7b580455e739899e492a4a452e2dd4d2b3e459f6b244a638d"}, + {file = "greenlet-2.0.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:662e8f7cad915ba75d8017b3e601afc01ef20deeeabf281bd00369de196d7726"}, {file = "greenlet-2.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:41b825d65f31e394b523c84db84f9383a2f7eefc13d987f308f4663794d2687e"}, {file = "greenlet-2.0.1-cp39-cp39-win32.whl", hash = "sha256:db38f80540083ea33bdab614a9d28bcec4b54daa5aff1668d7827a9fc769ae0a"}, {file = "greenlet-2.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:b23d2a46d53210b498e5b701a1913697671988f4bf8e10f935433f6e7c332fb6"}, diff --git a/src/spiffworkflow_backend/scripts/markdown_file_download_link.py b/src/spiffworkflow_backend/scripts/markdown_file_download_link.py index d1b3af7f..25f81cc7 100644 --- a/src/spiffworkflow_backend/scripts/markdown_file_download_link.py +++ b/src/spiffworkflow_backend/scripts/markdown_file_download_link.py @@ -44,8 +44,10 @@ class GetMarkdownFileDownloadLink(Script): ) process_instance_id = script_attributes_context.process_instance_id url = current_app.config["SPIFFWORKFLOW_BACKEND_URL"] - url += f"/v1.0/process-data-file-download/{modified_process_model_identifier}/" + \ - f"{process_instance_id}/{process_data_identifier}?index={file_index}" + url += ( + f"/v1.0/process-data-file-download/{modified_process_model_identifier}/" + + f"{process_instance_id}/{process_data_identifier}?index={file_index}" + ) link = f"[{label}]({url})" return link diff --git a/src/spiffworkflow_backend/services/process_instance_processor.py b/src/spiffworkflow_backend/services/process_instance_processor.py index 40458838..b45add69 100644 --- a/src/spiffworkflow_backend/services/process_instance_processor.py +++ b/src/spiffworkflow_backend/services/process_instance_processor.py @@ -38,36 +38,14 @@ from SpiffWorkflow.bpmn.specs.events.StartEvent import StartEvent # type: ignor from SpiffWorkflow.bpmn.specs.SubWorkflowTask import SubWorkflowTask # type: ignore from SpiffWorkflow.bpmn.workflow import BpmnWorkflow # type: ignore from SpiffWorkflow.dmn.parser.BpmnDmnParser import BpmnDmnParser # type: ignore -from SpiffWorkflow.dmn.serializer.task_spec_converters import BusinessRuleTaskConverter # type: ignore +from SpiffWorkflow.dmn.serializer.task_spec import BusinessRuleTaskConverter # type: ignore from SpiffWorkflow.exceptions import WorkflowException # type: ignore from SpiffWorkflow.exceptions import WorkflowTaskException from SpiffWorkflow.serializer.exceptions import MissingSpecError # type: ignore -from SpiffWorkflow.spiff.serializer.task_spec_converters import BoundaryEventConverter # type: ignore -from SpiffWorkflow.spiff.serializer.task_spec_converters import ( - CallActivityTaskConverter, -) -from SpiffWorkflow.spiff.serializer.task_spec_converters import EndEventConverter -from SpiffWorkflow.spiff.serializer.task_spec_converters import ( +from SpiffWorkflow.spiff.serializer.config import SPIFF_SPEC_CONFIG # type: ignore +from SpiffWorkflow.spiff.serializer.task_spec_converters import ( # type: ignore EventBasedGatewayConverter, ) -from SpiffWorkflow.spiff.serializer.task_spec_converters import ( - IntermediateCatchEventConverter, -) -from SpiffWorkflow.spiff.serializer.task_spec_converters import ( - IntermediateThrowEventConverter, -) -from SpiffWorkflow.spiff.serializer.task_spec_converters import ManualTaskConverter -from SpiffWorkflow.spiff.serializer.task_spec_converters import NoneTaskConverter -from SpiffWorkflow.spiff.serializer.task_spec_converters import ReceiveTaskConverter -from SpiffWorkflow.spiff.serializer.task_spec_converters import ScriptTaskConverter -from SpiffWorkflow.spiff.serializer.task_spec_converters import SendTaskConverter -from SpiffWorkflow.spiff.serializer.task_spec_converters import ServiceTaskConverter -from SpiffWorkflow.spiff.serializer.task_spec_converters import StartEventConverter -from SpiffWorkflow.spiff.serializer.task_spec_converters import SubWorkflowTaskConverter -from SpiffWorkflow.spiff.serializer.task_spec_converters import ( - TransactionSubprocessConverter, -) -from SpiffWorkflow.spiff.serializer.task_spec_converters import UserTaskConverter from SpiffWorkflow.task import Task as SpiffTask # type: ignore from SpiffWorkflow.task import TaskState from SpiffWorkflow.util.deep_merge import DeepMerge # type: ignore @@ -110,6 +88,8 @@ from spiffworkflow_backend.services.service_task_service import ServiceTaskDeleg from spiffworkflow_backend.services.spec_file_service import SpecFileService from spiffworkflow_backend.services.user_service import UserService +SPIFF_SPEC_CONFIG["task_specs"].append(BusinessRuleTaskConverter) + # Sorry about all this crap. I wanted to move this thing to another file, but # importing a bunch of types causes circular imports. @@ -408,26 +388,9 @@ class ProcessInstanceProcessor: _script_engine = CustomBpmnScriptEngine() SERIALIZER_VERSION = "1.0-spiffworkflow-backend" + wf_spec_converter = BpmnWorkflowSerializer.configure_workflow_spec_converter( - [ - BoundaryEventConverter, - BusinessRuleTaskConverter, - CallActivityTaskConverter, - EndEventConverter, - IntermediateCatchEventConverter, - IntermediateThrowEventConverter, - EventBasedGatewayConverter, - ManualTaskConverter, - NoneTaskConverter, - ReceiveTaskConverter, - ScriptTaskConverter, - SendTaskConverter, - ServiceTaskConverter, - StartEventConverter, - SubWorkflowTaskConverter, - TransactionSubprocessConverter, - UserTaskConverter, - ] + SPIFF_SPEC_CONFIG ) _serializer = BpmnWorkflowSerializer(wf_spec_converter, version=SERIALIZER_VERSION) _event_serializer = EventBasedGatewayConverter()