From 190f2f047d971c0863f778e90e8ffb2d600786f7 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Tue, 16 Dec 2025 09:20:46 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20base=20ticketmixin=E4=BC=A0=E5=85=A5oth?= =?UTF-8?q?er=5Fdata?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/wf/mixins.py | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/apps/wf/mixins.py b/apps/wf/mixins.py index e48563f1..d39a6ebc 100644 --- a/apps/wf/mixins.py +++ b/apps/wf/mixins.py @@ -13,7 +13,6 @@ class TicketMixin: workflow_key = None ticket_auto_submit_on_update = True ticket_auto_submit_on_create = True - ticket_data_save_fields = [] def get_workflow_key(self, instance): return self.workflow_key @@ -21,18 +20,14 @@ class TicketMixin: def should_create_ticket(self, instance): return True + def gen_other_ticket_data(self, instance): + return {} + def gen_ticket_data(self, instance): ticket_data = {"t_model": instance.__class__.__name__, "t_id": str(instance.id)} - if self.ticket_data_save_fields: - for field in self.ticket_data_save_fields: - if '.' in field: - attr_list = field.split('.') - expr = instance - for a in attr_list: - expr = getattr(expr, a) - ticket_data[field] = expr - else: - ticket_data[field] = getattr(instance, field) + other_data = self.gen_other_ticket_data(instance) + if other_data: + ticket_data.update(other_data) return ticket_data def perform_update(self, serializer):