mirror of
https://github.com/sartography/spiff-arena.git
synced 2025-01-12 18:44:14 +00:00
Allow terminating not_started instances (#329)
* Support terminating instances that have not started * Getting ./bin/pyl to pass
This commit is contained in:
parent
a97d94f2e1
commit
d1581d94d4
@ -370,6 +370,8 @@ def _interstitial_stream(process_instance: ProcessInstanceModel) -> Generator[st
|
|||||||
|
|
||||||
def render_instructions(spiff_task: SpiffTask) -> str:
|
def render_instructions(spiff_task: SpiffTask) -> str:
|
||||||
task_model = TaskModel.query.filter_by(guid=str(spiff_task.id)).first()
|
task_model = TaskModel.query.filter_by(guid=str(spiff_task.id)).first()
|
||||||
|
if task_model is None:
|
||||||
|
return ""
|
||||||
extensions = TaskService.get_extensions_from_task_model(task_model)
|
extensions = TaskService.get_extensions_from_task_model(task_model)
|
||||||
return _render_instructions_for_end_user(task_model, extensions)
|
return _render_instructions_for_end_user(task_model, extensions)
|
||||||
|
|
||||||
|
@ -8,6 +8,7 @@ import re
|
|||||||
import time
|
import time
|
||||||
import uuid
|
import uuid
|
||||||
from collections.abc import Callable
|
from collections.abc import Callable
|
||||||
|
from contextlib import suppress
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from datetime import timedelta
|
from datetime import timedelta
|
||||||
from hashlib import sha256
|
from hashlib import sha256
|
||||||
@ -1643,7 +1644,7 @@ class ProcessInstanceProcessor:
|
|||||||
return task
|
return task
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def terminate(self) -> None:
|
def remove_spiff_tasks_for_termination(self) -> None:
|
||||||
start_time = time.time()
|
start_time = time.time()
|
||||||
deleted_tasks = self.bpmn_process_instance.cancel() or []
|
deleted_tasks = self.bpmn_process_instance.cancel() or []
|
||||||
spiff_tasks = self.bpmn_process_instance.get_tasks()
|
spiff_tasks = self.bpmn_process_instance.get_tasks()
|
||||||
@ -1670,6 +1671,10 @@ class ProcessInstanceProcessor:
|
|||||||
db.session.delete(task)
|
db.session.delete(task)
|
||||||
|
|
||||||
self.save()
|
self.save()
|
||||||
|
|
||||||
|
def terminate(self) -> None:
|
||||||
|
with suppress(KeyError):
|
||||||
|
self.remove_spiff_tasks_for_termination()
|
||||||
self.process_instance_model.status = "terminated"
|
self.process_instance_model.status = "terminated"
|
||||||
db.session.add(self.process_instance_model)
|
db.session.add(self.process_instance_model)
|
||||||
ProcessInstanceTmpService.add_event_to_process_instance(
|
ProcessInstanceTmpService.add_event_to_process_instance(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user