Skip to content

Commit b915245

Browse files
committed
fix: Source trigger task edit not include task parameter and trigger icon not display in system
1 parent b5ec773 commit b915245

File tree

3 files changed

+23
-2
lines changed

3 files changed

+23
-2
lines changed

apps/trigger/serializers/task_source_trigger.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,8 @@ def edit(self, instance: Dict, with_valid=True):
121121
valid_data = serializer.validated_data
122122
trigger_id = self.data.get('trigger_id')
123123
workspace_id = self.data.get('workspace_id')
124+
source_id = self.data.get('source_id')
125+
source_type = self.data.get('source_type')
124126

125127
trigger = Trigger.objects.filter(workspace_id=workspace_id, id=trigger_id).first()
126128
if not trigger:
@@ -135,6 +137,22 @@ def edit(self, instance: Dict, with_valid=True):
135137
setattr(trigger, field, valid_data.get(field))
136138
trigger.save()
137139

140+
trigger_task = valid_data.get('trigger_task')
141+
if trigger_task is not None:
142+
# 检查是否为空列表
143+
if not trigger_task:
144+
raise serializers.ValidationError(_('Trigger must have at least one task'))
145+
146+
TriggerTask.objects.filter(
147+
source_id=source_id,
148+
source_type=source_type,
149+
trigger_id=trigger_id
150+
).update(parameter=trigger_task[0].get("parameter"), meta=trigger_task[0].get("meta"))
151+
else:
152+
# 用户没提交 trigger_task 字段,确保数据库中有 task
153+
if not TriggerTask.objects.filter(trigger_id=trigger_id).exists():
154+
raise serializers.ValidationError(_('Trigger must have at least one task'))
155+
138156
if need_redeploy:
139157
if trigger.is_active:
140158
deploy(TriggerModelSerializer(trigger).data, **{})

ui/src/layout/layout-header/SystemHeader.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
<div class="flex-between w-full align-center">
99
<h4><el-divider class="ml-16 mr-16" direction="vertical" />{{ $t('views.system.title') }}</h4>
1010
<div class="flex align-center mr-8">
11-
<TopAbout></TopAbout>
11+
<TopAbout type="system"></TopAbout>
1212
<el-divider class="ml-8 mr-8" direction="vertical" />
1313
<el-button
1414
link

ui/src/layout/layout-header/top-about/index.vue

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
PermissionConst.TRIGGER_READ.getWorkspacePermissionWorkspaceManageRole,
1818
],
1919
'OR',
20-
)
20+
) && type === 'workspace'
2121
"
2222
effect="dark"
2323
:content="$t('views.trigger.title')"
@@ -88,6 +88,9 @@ const route = useRoute()
8888
const router = useRouter()
8989
const { theme, user } = useStore()
9090
91+
withDefaults(defineProps<{ type?: 'workspace' | 'system' }>(), {
92+
type: 'workspace',
93+
})
9194
function toUrl(url: string) {
9295
window.open(url, '_blank')
9396
}

0 commit comments

Comments
 (0)