mirror of
https://github.com/sartography/SpiffWorkflow.git
synced 2025-08-02 00:59:41 +08:00
add update method on event definition
This commit is contained in:
@ -29,8 +29,12 @@ class EventDefinition(object):
|
||||
event = BpmnEvent(self)
|
||||
my_task.workflow.top_workflow.catch(event)
|
||||
|
||||
def update_task(self, my_task):
|
||||
"""This method allows events to implement update behavior for the task"""
|
||||
pass
|
||||
|
||||
def update_task_data(self, my_task):
|
||||
"""This method allows events with payloads mrege them into the task"""
|
||||
"""This method allows events with payloads to merge them into the task"""
|
||||
pass
|
||||
|
||||
def reset(self, my_task):
|
||||
|
@ -3,6 +3,7 @@ from datetime import datetime, timedelta, timezone
|
||||
from calendar import monthrange
|
||||
from time import timezone as tzoffset, altzone as dstoffset, struct_time, localtime
|
||||
|
||||
from SpiffWorkflow.util.task import TaskState
|
||||
from SpiffWorkflow.bpmn.util import PendingBpmnEvent
|
||||
from .base import EventDefinition
|
||||
|
||||
@ -200,6 +201,13 @@ class CycleTimerEventDefinition(TimerEventDefinition):
|
||||
my_task._set_internal_data(event_value=event_value)
|
||||
return ready
|
||||
|
||||
def update_task(self, my_task):
|
||||
if self.cycle_complete(my_task):
|
||||
for output in my_task.task_spec.outputs:
|
||||
child = my_task._add_child(output, TaskState.FUTURE)
|
||||
child.task_spec._predict(child, mask=TaskState.NOT_FINISHED_MASK)
|
||||
child.task_spec._update(child)
|
||||
|
||||
def details(self, my_task):
|
||||
event_value = my_task._get_internal_data('event_value')
|
||||
if event_value is not None and event_value['cycles'] != 0:
|
||||
|
@ -60,13 +60,7 @@ class CatchingEvent(TaskSpec):
|
||||
elif my_task.state != TaskState.WAITING:
|
||||
my_task._set_state(TaskState.WAITING)
|
||||
|
||||
if isinstance(self.event_definition, CycleTimerEventDefinition):
|
||||
if self.event_definition.cycle_complete(my_task):
|
||||
for output in self.outputs:
|
||||
child = my_task._add_child(output, TaskState.FUTURE)
|
||||
child.task_spec._predict(child, mask=TaskState.NOT_FINISHED_MASK)
|
||||
child.task_spec._update(child)
|
||||
|
||||
self.event_definition.update_task(my_task)
|
||||
|
||||
def _run_hook(self, my_task):
|
||||
|
||||
|
Reference in New Issue
Block a user