- 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
24 lines
855 B
Plaintext
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)
|