pipeline-task/wwwroot/api/human_complete.dspy
yumoqing b556ab0cdc feat: task center - human task interaction, artifact view, restart capability
- Add human task dspy: human_complete, human_list, approval_approve, approval_reject
- Add task_restart.dspy for restarting completed/failed tasks
- Enhance task_detail.ui: inline human task forms, approval buttons, restart
- New step_panel.ui: view/modify step artifacts with cascade rerun
- Update task_list.ui: Tabular with search_form filter by pipeline/state
- Update index.ui: embed task list Tabular inline
- Update load_path.py: register new dspy/ui paths
2026-07-08 21:03:32 +08:00

24 lines
855 B
Plaintext

tenant_id = (await get_userorgid()) or '0'
task_id = params_kw.get('task_id', '')
step_name = params_kw.get('step_name', '')
operator_id = await get_user()
if not task_id or not step_name:
return json.dumps({"success": False, "message": "缺少task_id或step_name"}, ensure_ascii=False)
# Collect result data — form fields are passed as params_kw
# Ignore reserved keys
result_data = {}
for k, v in params_kw.items():
if k not in ('task_id', 'step_name', '_', 'operator_id'):
result_data[k] = v
if not result_data:
return json.dumps({"success": False, "message": "缺少表单数据"}, ensure_ascii=False)
try:
result = await human_task_complete(tenant_id, task_id, step_name, result_data, operator_id)
return result
except Exception as e:
return json.dumps({"success": False, "message": str(e)}, ensure_ascii=False)