add process model identifier to my tasks response

This commit is contained in:
burnettk 2022-08-19 19:00:25 -04:00
parent 30279c9f93
commit f4ed5333a3
2 changed files with 29 additions and 12 deletions

View File

@ -47,16 +47,18 @@ class ActiveTaskModel(SpiffworkflowBaseDBModel):
task_status = db.Column(db.String(50))
task_data: str = db.Column(db.Text)
def to_task(self) -> Task:
@classmethod
def to_task(cls, task: ActiveTaskModel) -> Task:
"""To_task."""
task_data = json.loads(self.task_data)
task_data = json.loads(task.task_data)
return Task(
self.task_id,
self.task_name,
self.task_title,
self.task_type,
self.task_status,
task.task_id,
task.task_name,
task.task_title,
task.task_type,
task.task_status,
data=task_data,
process_instance_id=self.process_instance_id,
process_name=task.process_model_identifier,
process_instance_id=task.process_instance_id,
)

View File

@ -542,10 +542,23 @@ def task_list_my_tasks(page: int = 1, per_page: int = 100) -> flask.wrappers.Res
active_tasks = (
ActiveTaskModel.query.filter_by(assigned_principal_id=principal.id)
.order_by(desc(ActiveTaskModel.id)) # type: ignore
.join(ProcessInstanceModel)
# just need this add_columns to add the process_model_identifier. Then add everything back that was removed.
.add_columns(
ProcessInstanceModel.process_model_identifier,
ActiveTaskModel.task_data,
ActiveTaskModel.task_name,
ActiveTaskModel.task_title,
ActiveTaskModel.task_type,
ActiveTaskModel.task_status,
ActiveTaskModel.task_id,
ActiveTaskModel.id,
ActiveTaskModel.process_instance_id,
)
.paginate(page, per_page, False)
)
tasks = [active_task.to_task() for active_task in active_tasks.items]
tasks = [ActiveTaskModel.to_task(active_task) for active_task in active_tasks.items]
response_json = {
"results": tasks,
@ -582,7 +595,7 @@ def process_instance_task_list(
def task_show(process_instance_id: int, task_id: str) -> flask.wrappers.Response:
"""Task_list_my_tasks."""
"""Task_show."""
principal = find_principal_or_raise()
process_instance = find_process_instance_by_id_or_raise(process_instance_id)
@ -603,7 +616,7 @@ def task_show(process_instance_id: int, task_id: str) -> flask.wrappers.Response
if active_task_assigned_to_me:
form_schema_file_name = active_task_assigned_to_me.form_file_name
form_ui_schema_file_name = active_task_assigned_to_me.ui_form_file_name
task = active_task_assigned_to_me.to_task()
task = ActiveTaskModel.to_task(active_task_assigned_to_me)
else:
spiff_task = get_spiff_task_from_process_instance(task_id, process_instance)
extensions = spiff_task.task_spec.extensions
@ -702,7 +715,9 @@ def task_submit(
assigned_principal_id=principal.id, process_instance_id=process_instance.id
).first()
if next_active_task_assigned_to_me:
return make_response(jsonify(next_active_task_assigned_to_me.to_task()), 200)
return make_response(
jsonify(ActiveTaskModel.to_task(next_active_task_assigned_to_me)), 200
)
return Response(json.dumps({"ok": True}), status=202, mimetype="application/json")