Merge branch 'dev' into xls-xlsx-issue-540
This commit is contained in:
commit
5e97953c19
|
@ -11,10 +11,10 @@
|
||||||
<bpmn:outgoing>Flow_08kr305</bpmn:outgoing>
|
<bpmn:outgoing>Flow_08kr305</bpmn:outgoing>
|
||||||
</bpmn:exclusiveGateway>
|
</bpmn:exclusiveGateway>
|
||||||
<bpmn:sequenceFlow id="Flow_0gb1k4g" sourceRef="Gateway_1j2ytgn" targetRef="animals">
|
<bpmn:sequenceFlow id="Flow_0gb1k4g" sourceRef="Gateway_1j2ytgn" targetRef="animals">
|
||||||
<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">type == 'fruit'</bpmn:conditionExpression>
|
<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">type == 'animals'</bpmn:conditionExpression>
|
||||||
</bpmn:sequenceFlow>
|
</bpmn:sequenceFlow>
|
||||||
<bpmn:sequenceFlow id="Flow_08kr305" sourceRef="Gateway_1j2ytgn" targetRef="fruits">
|
<bpmn:sequenceFlow id="Flow_08kr305" sourceRef="Gateway_1j2ytgn" targetRef="fruits">
|
||||||
<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">type=="fruit"</bpmn:conditionExpression>
|
<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">type=="fruits"</bpmn:conditionExpression>
|
||||||
</bpmn:sequenceFlow>
|
</bpmn:sequenceFlow>
|
||||||
<bpmn:exclusiveGateway id="Gateway_14eyj6z">
|
<bpmn:exclusiveGateway id="Gateway_14eyj6z">
|
||||||
<bpmn:incoming>Flow_09ik0zr</bpmn:incoming>
|
<bpmn:incoming>Flow_09ik0zr</bpmn:incoming>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="Definitions_1j7idla" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="3.4.1">
|
<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="Definitions_1j7idla" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="4.10.0">
|
||||||
<bpmn:process id="Process_18biih5" isExecutable="true">
|
<bpmn:process id="Process_18biih5" isExecutable="true">
|
||||||
<bpmn:startEvent id="StartEvent_1">
|
<bpmn:startEvent id="StartEvent_1">
|
||||||
<bpmn:outgoing>SequenceFlow_1pnq3kg</bpmn:outgoing>
|
<bpmn:outgoing>SequenceFlow_1pnq3kg</bpmn:outgoing>
|
||||||
|
@ -8,7 +8,7 @@
|
||||||
<bpmn:userTask id="Task_Has_Bananas" name="Has Bananas?" camunda:formKey="bananas_form">
|
<bpmn:userTask id="Task_Has_Bananas" name="Has Bananas?" camunda:formKey="bananas_form">
|
||||||
<bpmn:extensionElements>
|
<bpmn:extensionElements>
|
||||||
<camunda:formData>
|
<camunda:formData>
|
||||||
<camunda:formField id="has_bananas" label="Do you have bananas?" type="boolean" />
|
<camunda:formField id="has_bananas" label="Do you have bananas?" type="boolean" defaultValue="false" />
|
||||||
</camunda:formData>
|
</camunda:formData>
|
||||||
</bpmn:extensionElements>
|
</bpmn:extensionElements>
|
||||||
<bpmn:incoming>SequenceFlow_1pnq3kg</bpmn:incoming>
|
<bpmn:incoming>SequenceFlow_1pnq3kg</bpmn:incoming>
|
||||||
|
@ -55,32 +55,13 @@
|
||||||
</bpmn:process>
|
</bpmn:process>
|
||||||
<bpmndi:BPMNDiagram id="BPMNDiagram_1">
|
<bpmndi:BPMNDiagram id="BPMNDiagram_1">
|
||||||
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Process_18biih5">
|
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Process_18biih5">
|
||||||
<bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1">
|
<bpmndi:BPMNEdge id="SequenceFlow_08djf6q_di" bpmnElement="SequenceFlow_08djf6q">
|
||||||
<dc:Bounds x="179" y="99" width="36" height="36" />
|
<di:waypoint x="660" y="230" />
|
||||||
</bpmndi:BPMNShape>
|
<di:waypoint x="752" y="230" />
|
||||||
<bpmndi:BPMNEdge id="SequenceFlow_1pnq3kg_di" bpmnElement="SequenceFlow_1pnq3kg">
|
|
||||||
<di:waypoint x="215" y="117" />
|
|
||||||
<di:waypoint x="270" y="117" />
|
|
||||||
</bpmndi:BPMNEdge>
|
</bpmndi:BPMNEdge>
|
||||||
<bpmndi:BPMNShape id="UserTask_0u8fjmw_di" bpmnElement="Task_Has_Bananas">
|
<bpmndi:BPMNEdge id="SequenceFlow_02z84p5_di" bpmnElement="SequenceFlow_02z84p5">
|
||||||
<dc:Bounds x="270" y="77" width="100" height="80" />
|
<di:waypoint x="660" y="117" />
|
||||||
</bpmndi:BPMNShape>
|
<di:waypoint x="752" y="117" />
|
||||||
<bpmndi:BPMNEdge id="SequenceFlow_1lmkn99_di" bpmnElement="SequenceFlow_1lmkn99">
|
|
||||||
<di:waypoint x="370" y="117" />
|
|
||||||
<di:waypoint x="425" y="117" />
|
|
||||||
</bpmndi:BPMNEdge>
|
|
||||||
<bpmndi:BPMNShape id="ExclusiveGateway_14wqqsi_di" bpmnElement="ExclusiveGateway_003amsm" isMarkerVisible="true">
|
|
||||||
<dc:Bounds x="425" y="92" width="50" height="50" />
|
|
||||||
<bpmndi:BPMNLabel>
|
|
||||||
<dc:Bounds x="417" y="62" width="67" height="27" />
|
|
||||||
</bpmndi:BPMNLabel>
|
|
||||||
</bpmndi:BPMNShape>
|
|
||||||
<bpmndi:BPMNEdge id="SequenceFlow_0f3vx1l_di" bpmnElement="SequenceFlow_Yes_Bananas">
|
|
||||||
<di:waypoint x="475" y="117" />
|
|
||||||
<di:waypoint x="560" y="117" />
|
|
||||||
<bpmndi:BPMNLabel>
|
|
||||||
<dc:Bounds x="509" y="99" width="18" height="40" />
|
|
||||||
</bpmndi:BPMNLabel>
|
|
||||||
</bpmndi:BPMNEdge>
|
</bpmndi:BPMNEdge>
|
||||||
<bpmndi:BPMNEdge id="SequenceFlow_12acevn_di" bpmnElement="SequenceFlow_No_Bananas">
|
<bpmndi:BPMNEdge id="SequenceFlow_12acevn_di" bpmnElement="SequenceFlow_No_Bananas">
|
||||||
<di:waypoint x="450" y="142" />
|
<di:waypoint x="450" y="142" />
|
||||||
|
@ -90,6 +71,33 @@
|
||||||
<dc:Bounds x="459" y="183" width="13" height="14" />
|
<dc:Bounds x="459" y="183" width="13" height="14" />
|
||||||
</bpmndi:BPMNLabel>
|
</bpmndi:BPMNLabel>
|
||||||
</bpmndi:BPMNEdge>
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="SequenceFlow_0f3vx1l_di" bpmnElement="SequenceFlow_Yes_Bananas">
|
||||||
|
<di:waypoint x="475" y="117" />
|
||||||
|
<di:waypoint x="560" y="117" />
|
||||||
|
<bpmndi:BPMNLabel>
|
||||||
|
<dc:Bounds x="509" y="99" width="18" height="40" />
|
||||||
|
</bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="SequenceFlow_1lmkn99_di" bpmnElement="SequenceFlow_1lmkn99">
|
||||||
|
<di:waypoint x="370" y="117" />
|
||||||
|
<di:waypoint x="425" y="117" />
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="SequenceFlow_1pnq3kg_di" bpmnElement="SequenceFlow_1pnq3kg">
|
||||||
|
<di:waypoint x="215" y="117" />
|
||||||
|
<di:waypoint x="270" y="117" />
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1">
|
||||||
|
<dc:Bounds x="179" y="99" width="36" height="36" />
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="UserTask_0u8fjmw_di" bpmnElement="Task_Has_Bananas">
|
||||||
|
<dc:Bounds x="270" y="77" width="100" height="80" />
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="ExclusiveGateway_14wqqsi_di" bpmnElement="ExclusiveGateway_003amsm" isMarkerVisible="true">
|
||||||
|
<dc:Bounds x="425" y="92" width="50" height="50" />
|
||||||
|
<bpmndi:BPMNLabel>
|
||||||
|
<dc:Bounds x="417" y="62" width="67" height="27" />
|
||||||
|
</bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
<bpmndi:BPMNShape id="UserTask_0ht939a_di" bpmnElement="Task_Num_Bananas">
|
<bpmndi:BPMNShape id="UserTask_0ht939a_di" bpmnElement="Task_Num_Bananas">
|
||||||
<dc:Bounds x="560" y="77" width="100" height="80" />
|
<dc:Bounds x="560" y="77" width="100" height="80" />
|
||||||
</bpmndi:BPMNShape>
|
</bpmndi:BPMNShape>
|
||||||
|
@ -99,17 +107,9 @@
|
||||||
<bpmndi:BPMNShape id="EndEvent_063bpg6_di" bpmnElement="EndEvent_063bpg6">
|
<bpmndi:BPMNShape id="EndEvent_063bpg6_di" bpmnElement="EndEvent_063bpg6">
|
||||||
<dc:Bounds x="752" y="99" width="36" height="36" />
|
<dc:Bounds x="752" y="99" width="36" height="36" />
|
||||||
</bpmndi:BPMNShape>
|
</bpmndi:BPMNShape>
|
||||||
<bpmndi:BPMNEdge id="SequenceFlow_02z84p5_di" bpmnElement="SequenceFlow_02z84p5">
|
|
||||||
<di:waypoint x="660" y="117" />
|
|
||||||
<di:waypoint x="752" y="117" />
|
|
||||||
</bpmndi:BPMNEdge>
|
|
||||||
<bpmndi:BPMNShape id="EndEvent_1hwtug4_di" bpmnElement="EndEvent_1hwtug4">
|
<bpmndi:BPMNShape id="EndEvent_1hwtug4_di" bpmnElement="EndEvent_1hwtug4">
|
||||||
<dc:Bounds x="752" y="212" width="36" height="36" />
|
<dc:Bounds x="752" y="212" width="36" height="36" />
|
||||||
</bpmndi:BPMNShape>
|
</bpmndi:BPMNShape>
|
||||||
<bpmndi:BPMNEdge id="SequenceFlow_08djf6q_di" bpmnElement="SequenceFlow_08djf6q">
|
|
||||||
<di:waypoint x="660" y="230" />
|
|
||||||
<di:waypoint x="752" y="230" />
|
|
||||||
</bpmndi:BPMNEdge>
|
|
||||||
</bpmndi:BPMNPlane>
|
</bpmndi:BPMNPlane>
|
||||||
</bpmndi:BPMNDiagram>
|
</bpmndi:BPMNDiagram>
|
||||||
</bpmn:definitions>
|
</bpmn:definitions>
|
||||||
|
|
|
@ -81,7 +81,7 @@ class TestLookupService(BaseTest):
|
||||||
|
|
||||||
processor.do_engine_steps()
|
processor.do_engine_steps()
|
||||||
task = processor.get_ready_user_tasks()[0]
|
task = processor.get_ready_user_tasks()[0]
|
||||||
task.data = {"type": "animal"}
|
task.data = {"type": "animals"}
|
||||||
processor.complete_task(task)
|
processor.complete_task(task)
|
||||||
processor.do_engine_steps()
|
processor.do_engine_steps()
|
||||||
task = processor.get_ready_user_tasks()[0]
|
task = processor.get_ready_user_tasks()[0]
|
||||||
|
@ -94,7 +94,7 @@ class TestLookupService(BaseTest):
|
||||||
processor = WorkflowProcessor.reset(workflow, clear_data=True)
|
processor = WorkflowProcessor.reset(workflow, clear_data=True)
|
||||||
processor.do_engine_steps()
|
processor.do_engine_steps()
|
||||||
task = processor.get_ready_user_tasks()[0]
|
task = processor.get_ready_user_tasks()[0]
|
||||||
task.data = {"type": "fruit"}
|
task.data = {"type": "fruits"}
|
||||||
processor.complete_task(task)
|
processor.complete_task(task)
|
||||||
processor.do_engine_steps()
|
processor.do_engine_steps()
|
||||||
task = processor.get_ready_user_tasks()[0]
|
task = processor.get_ready_user_tasks()[0]
|
||||||
|
|
|
@ -110,10 +110,10 @@ class TestTasksApi(BaseTest):
|
||||||
self.assertEqual(4, len(nav))
|
self.assertEqual(4, len(nav))
|
||||||
self.assertEqual("Do You Have Bananas", nav[1].description)
|
self.assertEqual("Do You Have Bananas", nav[1].description)
|
||||||
self.assertEqual("Bananas?", nav[2].description)
|
self.assertEqual("Bananas?", nav[2].description)
|
||||||
self.assertEqual("LIKELY", nav[2].state)
|
self.assertEqual("MAYBE", nav[2].state)
|
||||||
|
|
||||||
self.assertEqual("yes", nav[2].children[0].description)
|
self.assertEqual("yes", nav[2].children[0].description)
|
||||||
self.assertEqual("LIKELY", nav[2].children[0].state)
|
self.assertEqual("MAYBE", nav[2].children[0].state)
|
||||||
self.assertEqual("of Bananas", nav[2].children[0].children[0].description)
|
self.assertEqual("of Bananas", nav[2].children[0].children[0].description)
|
||||||
self.assertEqual("EndEvent", nav[2].children[0].children[1].spec_type)
|
self.assertEqual("EndEvent", nav[2].children[0].children[1].spec_type)
|
||||||
|
|
||||||
|
|
|
@ -126,7 +126,7 @@ class TestTasksApi(BaseTest):
|
||||||
self.assertEqual(4, len(nav))
|
self.assertEqual(4, len(nav))
|
||||||
self.assertEqual('READY', nav[1].state) # First item is ready, no progress yet.
|
self.assertEqual('READY', nav[1].state) # First item is ready, no progress yet.
|
||||||
self.assertEqual('LOCKED', nav[2].state) # Second item is locked, it is the review and doesn't belong to this user.
|
self.assertEqual('LOCKED', nav[2].state) # Second item is locked, it is the review and doesn't belong to this user.
|
||||||
self.assertEqual('LIKELY', nav[3].state) # Third item is a gateway, which contains things that are also locked.
|
self.assertEqual('MAYBE', nav[3].state) # Third item is a gateway, which contains things that are also locked.
|
||||||
self.assertEqual('READY', workflow_api.next_task.state)
|
self.assertEqual('READY', workflow_api.next_task.state)
|
||||||
|
|
||||||
# Navigation as Submitter after handoff to supervisor
|
# Navigation as Submitter after handoff to supervisor
|
||||||
|
@ -136,7 +136,7 @@ class TestTasksApi(BaseTest):
|
||||||
nav = workflow_api.navigation
|
nav = workflow_api.navigation
|
||||||
self.assertEqual('COMPLETED', nav[1].state) # First item is ready, no progress yet.
|
self.assertEqual('COMPLETED', nav[1].state) # First item is ready, no progress yet.
|
||||||
self.assertEqual('LOCKED', nav[2].state) # Second item is locked, it is the review and doesn't belong to this user.
|
self.assertEqual('LOCKED', nav[2].state) # Second item is locked, it is the review and doesn't belong to this user.
|
||||||
self.assertEqual('LIKELY', nav[3].state) # third item is a gateway, and belongs to no one
|
self.assertEqual('MAYBE', nav[3].state) # third item is a gateway, and belongs to no one
|
||||||
# In the event the next task is locked, we should say something sensible here.
|
# In the event the next task is locked, we should say something sensible here.
|
||||||
# It is possible to look at the role of the task, and say The next task "TASK TITLE" will
|
# It is possible to look at the role of the task, and say The next task "TASK TITLE" will
|
||||||
# be handled by 'dhf8r', who is full-filling the role of supervisor. the Task Data
|
# be handled by 'dhf8r', who is full-filling the role of supervisor. the Task Data
|
||||||
|
@ -150,7 +150,7 @@ class TestTasksApi(BaseTest):
|
||||||
nav = workflow_api.navigation
|
nav = workflow_api.navigation
|
||||||
self.assertEqual('LOCKED', nav[1].state) # First item belongs to the submitter, and is locked.
|
self.assertEqual('LOCKED', nav[1].state) # First item belongs to the submitter, and is locked.
|
||||||
self.assertEqual('READY', nav[2].state) # Second item is ready, as we are now the supervisor.
|
self.assertEqual('READY', nav[2].state) # Second item is ready, as we are now the supervisor.
|
||||||
self.assertEqual('LIKELY', nav[3].state) # Feedback is locked.
|
self.assertEqual('MAYBE', nav[3].state) # Feedback is locked.
|
||||||
self.assertEqual('READY', workflow_api.next_task.state)
|
self.assertEqual('READY', workflow_api.next_task.state)
|
||||||
|
|
||||||
data = workflow_api.next_task.data
|
data = workflow_api.next_task.data
|
||||||
|
|
Loading…
Reference in New Issue