diff --git a/viewflow/workflow/nodes/job.py b/viewflow/workflow/nodes/job.py index e0a475b..1819b72 100644 --- a/viewflow/workflow/nodes/job.py +++ b/viewflow/workflow/nodes/job.py @@ -14,7 +14,7 @@ from . import mixins class AbstractJobActivation(mixins.NextNodeActivationMixin, Activation): @classmethod - def create(cls, flow_task, prev_activation, token): + def create(cls, flow_task, prev_activation, token, data=None): """Instantiate and persist new flow task.""" flow_class = flow_task.flow_class task = flow_class.task_class( @@ -22,6 +22,7 @@ class AbstractJobActivation(mixins.NextNodeActivationMixin, Activation): flow_task=flow_task, token=token, external_task_id=str(uuid.uuid4()), + data=data if data is not None else {}, ) task.save() task.previous.add(prev_activation.task) diff --git a/viewflow/workflow/nodes/join.py b/viewflow/workflow/nodes/join.py index 12233d9..16c0107 100644 --- a/viewflow/workflow/nodes/join.py +++ b/viewflow/workflow/nodes/join.py @@ -15,7 +15,7 @@ class JoinActivation(mixins.NextNodeActivationMixin, Activation): super().__init__(*args, **kwargs) @classmethod - def create(cls, flow_task, prev_activation, token): + def create(cls, flow_task, prev_activation, token, data=None): """ Join and, if all incoming paths are completed, continue execution. @@ -43,7 +43,10 @@ class JoinActivation(mixins.NextNodeActivationMixin, Activation): token = token.get_base_split_token() task = flow_class.task_class.objects.create( - process=prev_activation.process, flow_task=flow_task, token=token + process=prev_activation.process, + flow_task=flow_task, + token=token, + data=data if data is not None else {}, ) task.previous.add(prev_activation.task) diff --git a/viewflow/workflow/nodes/start.py b/viewflow/workflow/nodes/start.py index 0754820..01cf44f 100644 --- a/viewflow/workflow/nodes/start.py +++ b/viewflow/workflow/nodes/start.py @@ -13,12 +13,15 @@ class StartActivation(mixins.NextNodeActivationMixin, Activation): """Task activation that creates new process instance.""" @classmethod - def create(cls, flow_task, prev_activation, token): + def create(cls, flow_task, prev_activation, token, data=None): flow_class = flow_task.flow_class process = flow_class.process_class(flow_class=flow_class) task = flow_class.task_class( - flow_task=flow_task, process=process, started=now() + flow_task=flow_task, + process=process, + started=now(), + data=data if data is not None else {}, ) return cls(task) diff --git a/viewflow/workflow/nodes/view.py b/viewflow/workflow/nodes/view.py index 72e0ea3..de62103 100644 --- a/viewflow/workflow/nodes/view.py +++ b/viewflow/workflow/nodes/view.py @@ -13,11 +13,14 @@ class ViewActivation(mixins.NextNodeActivationMixin, Activation): """View node activation.""" @classmethod - def create(cls, flow_task, prev_activation, token): + def create(cls, flow_task, prev_activation, token, data=None): """Instantiate and persist new flow task.""" flow_class = flow_task.flow_class task = flow_class.task_class( - process=prev_activation.process, flow_task=flow_task, token=token + process=prev_activation.process, + flow_task=flow_task, + token=token, + data=data if data is not None else {}, ) activation = cls(task)