diff --git a/apps/trigger/migrations/0002_remove_taskrecord_trigger_task_and_more.py b/apps/trigger/migrations/0002_remove_taskrecord_trigger_task_and_more.py new file mode 100644 index 00000000000..791203b84ef --- /dev/null +++ b/apps/trigger/migrations/0002_remove_taskrecord_trigger_task_and_more.py @@ -0,0 +1,23 @@ +# Generated by Django 5.2.9 on 2026-01-26 03:27 + +import uuid_utils.compat +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('trigger', '0001_initial'), + ] + + operations = [ + migrations.RemoveField( + model_name='taskrecord', + name='trigger_task', + ), + migrations.AddField( + model_name='taskrecord', + name='trigger_task_id', + field=models.UUIDField(default=uuid_utils.compat.uuid7, editable=False, verbose_name='触发器任务id'), + ), + ] diff --git a/apps/trigger/models/trigger.py b/apps/trigger/models/trigger.py index 1cccedc7e5c..c44c8405681 100644 --- a/apps/trigger/models/trigger.py +++ b/apps/trigger/models/trigger.py @@ -63,7 +63,7 @@ class TaskRecord(AppModelMixin): trigger = models.ForeignKey(Trigger, on_delete=models.CASCADE) - trigger_task = models.ForeignKey(TriggerTask, on_delete=models.CASCADE) + trigger_task_id = models.UUIDField(max_length=128, default=uuid.uuid7, editable=False, verbose_name="触发器任务id") source_type = models.CharField(verbose_name="触发器任务类型", choices=TriggerTaskTypeChoices.choices, default=TriggerTaskTypeChoices.APPLICATION, max_length=256) diff --git a/apps/trigger/serializers/trigger.py b/apps/trigger/serializers/trigger.py index 970eb88635b..911094af776 100644 --- a/apps/trigger/serializers/trigger.py +++ b/apps/trigger/serializers/trigger.py @@ -340,7 +340,7 @@ def insert(self, instance, with_valid=True): trigger_type=valid_data.get('trigger_type'), trigger_setting=valid_data.get('trigger_setting'), meta=valid_data.get('meta', {}), - is_active=valid_data.get('is_active') or False , + is_active=valid_data.get('is_active') or False, user_id=self.data.get('user_id'), ) trigger_model.save() @@ -360,7 +360,7 @@ def insert(self, instance, with_valid=True): def to_trigger_task_model(self, trigger_id: str, task_data: dict): source_type = task_data.get('source_type') source_id = task_data.get('source_id') - is_active = self.is_active_source(source_type,source_id) + is_active = self.is_active_source(source_type, source_id) return TriggerTask( id=uuid.uuid7(), trigger_id=trigger_id, @@ -380,13 +380,12 @@ def is_active_source(source_type: str, source_id: str): } if source_type not in config: raise AppApiException(500, _('Error source type')) - source_model,field= config.get(TriggerTaskTypeChoices(source_type)) + source_model, field = config.get(TriggerTaskTypeChoices(source_type)) source = QuerySet(source_model).filter(id=source_id).first() if not source: raise AppApiException(500, _(f'{source_type} id does not exist')) - return getattr(source,field) - + return getattr(source, field) class Batch(serializers.Serializer): workspace_id = serializers.CharField(required=True, label=_('workspace id')) @@ -440,7 +439,7 @@ def edit(self, instance: Dict, with_valid=True): self.is_valid() TriggerEditRequest(data=instance).is_valid(raise_exception=True) trigger_id = self.data.get('trigger_id') - trigger = Trigger.objects.filter(workspace_id=self.data.get('workspace_id') ,id=trigger_id).first() + trigger = Trigger.objects.filter(workspace_id=self.data.get('workspace_id'), id=trigger_id).first() if not trigger: raise serializers.ValidationError(_('Trigger not found')) @@ -455,7 +454,7 @@ def edit(self, instance: Dict, with_valid=True): if trigger_tasks: TriggerTask.objects.filter(trigger_id=trigger_id).delete() trigger_task_model_list = [TriggerTask( - id=uuid.uuid7(), + id=task_data.get('id') or uuid.uuid7(), trigger_id=trigger_id, source_type=task_data.get('source_type'), source_id=task_data.get('source_id'), @@ -495,7 +494,7 @@ def one(self, with_valid=True): application_task_list = [] if application_ids: - applications =Application.objects.filter(workspace_id=workspace_id, id__in=application_ids) + applications = Application.objects.filter(workspace_id=workspace_id, id__in=application_ids) application_task_list = ApplicationTriggerTaskSerializer(applications, many=True).data tool_task_list = [] if tool_ids: