diff --git a/spiffworkflow-backend/src/spiffworkflow_backend/services/spec_file_service.py b/spiffworkflow-backend/src/spiffworkflow_backend/services/spec_file_service.py index 961e0628..ba42fbdf 100644 --- a/spiffworkflow-backend/src/spiffworkflow_backend/services/spec_file_service.py +++ b/spiffworkflow-backend/src/spiffworkflow_backend/services/spec_file_service.py @@ -307,11 +307,7 @@ class SpecFileService(FileSystemService): @staticmethod def update_process_cache(ref: Reference) -> None: - process_id_lookup = ( - ReferenceCacheModel.basic_query() - .filter_by(identifier=ref.identifier, relative_location=ref.relative_location, type=ref.type) - .first() - ) + process_id_lookup = ReferenceCacheModel.basic_query().filter_by(identifier=ref.identifier, type=ref.type).first() if process_id_lookup is None: process_id_lookup = ReferenceCacheModel.from_spec_reference(ref, use_current_cache_generation=True) db.session.add(process_id_lookup) diff --git a/spiffworkflow-backend/tests/spiffworkflow_backend/unit/test_process_model_service.py b/spiffworkflow-backend/tests/spiffworkflow_backend/unit/test_process_model_service.py index 9feb4895..eed8112a 100644 --- a/spiffworkflow-backend/tests/spiffworkflow_backend/unit/test_process_model_service.py +++ b/spiffworkflow-backend/tests/spiffworkflow_backend/unit/test_process_model_service.py @@ -151,9 +151,9 @@ class TestProcessModelService(BaseTest): assert process_model.primary_process_id == primary_process_id process_model = load_test_spec( - "test_group/hello_world_2", - bpmn_file_name="hello_world.bpmn", - process_model_source_directory="hello_world", + "test_group/sample", + bpmn_file_name="sample.bpmn", + process_model_source_directory="sample", ) # this model should not show up in results because it has no primary_file_name diff --git a/spiffworkflow-frontend/cypress/e2e/process_models.cy.js b/spiffworkflow-frontend/cypress/e2e/process_models.cy.js index f17cd36d..49d387fc 100644 --- a/spiffworkflow-frontend/cypress/e2e/process_models.cy.js +++ b/spiffworkflow-frontend/cypress/e2e/process_models.cy.js @@ -97,7 +97,7 @@ describe('process-models', () => { cy.getBySel('process-model-add-file').click(); cy.getBySel('process-model-add-file').contains('New DMN File').click(); cy.contains(/^Process Model File$/); - cy.get('g[data-element-id=decision_1]').click(); + cy.get('g[data-element-id^=decision_]').click(); cy.contains('General').click(); cy.get('#bio-properties-panel-id').clear(); cy.get('#bio-properties-panel-id').type(decisionAcceptanceTestId); diff --git a/spiffworkflow-frontend/public/new_dmn_diagram.dmn b/spiffworkflow-frontend/public/new_dmn_diagram.dmn index 9e86d747..d108d03a 100644 --- a/spiffworkflow-frontend/public/new_dmn_diagram.dmn +++ b/spiffworkflow-frontend/public/new_dmn_diagram.dmn @@ -1,6 +1,6 @@ - + @@ -12,7 +12,7 @@ - + diff --git a/spiffworkflow-frontend/src/components/ReactDiagramEditor.tsx b/spiffworkflow-frontend/src/components/ReactDiagramEditor.tsx index 5622edc9..ec76644a 100644 --- a/spiffworkflow-frontend/src/components/ReactDiagramEditor.tsx +++ b/spiffworkflow-frontend/src/components/ReactDiagramEditor.tsx @@ -544,14 +544,22 @@ export default function ReactDiagramEditor({ alreadyImportedXmlRef.current = true; } - function fetchDiagramFromURL(urlToUse: any) { + function dmnTextHandler(text: str) { + const decisionId = `decision_${makeid(7)}`; + const newText = text.replaceAll('{{DECISION_ID}}', decisionId); + setDiagramXMLString(newText); + } + + function bpmnTextHandler(text: str) { + const processId = `Process_${makeid(7)}`; + const newText = text.replaceAll('{{PROCESS_ID}}', processId); + setDiagramXMLString(newText); + } + + function fetchDiagramFromURL(urlToUse: any, textHandler?: (text: str) => void) { fetch(urlToUse) .then((response) => response.text()) - .then((text) => { - const processId = `Process_${makeid(7)}`; - const newText = text.replace('{{PROCESS_ID}}', processId); - setDiagramXMLString(newText); - }) + .then(textHandler ?? bpmnTextHandler) .catch((err) => handleError(err)); } @@ -587,10 +595,12 @@ export default function ReactDiagramEditor({ return undefined; } let newDiagramFileName = 'new_bpmn_diagram.bpmn'; + let textHandler = null; if (diagramType === 'dmn') { newDiagramFileName = 'new_dmn_diagram.dmn'; + textHandler = dmnTextHandler; } - fetchDiagramFromURL(`/${newDiagramFileName}`); + fetchDiagramFromURL(`/${newDiagramFileName}`, textHandler); return undefined; }