diff --git a/apps/trigger/serializers/task_source_trigger.py b/apps/trigger/serializers/task_source_trigger.py index 965a71e92dd..0dcedcc3fe7 100644 --- a/apps/trigger/serializers/task_source_trigger.py +++ b/apps/trigger/serializers/task_source_trigger.py @@ -121,6 +121,8 @@ def edit(self, instance: Dict, with_valid=True): valid_data = serializer.validated_data trigger_id = self.data.get('trigger_id') workspace_id = self.data.get('workspace_id') + source_id = self.data.get('source_id') + source_type = self.data.get('source_type') trigger = Trigger.objects.filter(workspace_id=workspace_id, id=trigger_id).first() if not trigger: @@ -135,6 +137,22 @@ def edit(self, instance: Dict, with_valid=True): setattr(trigger, field, valid_data.get(field)) trigger.save() + trigger_task = valid_data.get('trigger_task') + if trigger_task is not None: + # 检查是否为空列表 + if not trigger_task: + raise serializers.ValidationError(_('Trigger must have at least one task')) + + TriggerTask.objects.filter( + source_id=source_id, + source_type=source_type, + trigger_id=trigger_id + ).update(parameter=trigger_task[0].get("parameter"), meta=trigger_task[0].get("meta")) + else: + # 用户没提交 trigger_task 字段,确保数据库中有 task + if not TriggerTask.objects.filter(trigger_id=trigger_id).exists(): + raise serializers.ValidationError(_('Trigger must have at least one task')) + if need_redeploy: if trigger.is_active: deploy(TriggerModelSerializer(trigger).data, **{}) diff --git a/ui/src/layout/layout-header/SystemHeader.vue b/ui/src/layout/layout-header/SystemHeader.vue index 2bd7b7fc87f..47c3f5d7c1c 100644 --- a/ui/src/layout/layout-header/SystemHeader.vue +++ b/ui/src/layout/layout-header/SystemHeader.vue @@ -8,7 +8,7 @@