From 5b163e9acbdc816a7f6595ad7c8a414bcb0e84ab Mon Sep 17 00:00:00 2001 From: wxg0103 <727495428@qq.com> Date: Tue, 3 Nov 2026 09:26:22 +0800 Subject: [PATCH] chore: add order field to serializers and update query ordering logic --- apps/tools/serializers/tool.py | 8 +++++++- apps/tools/views/tool.py | 1 + 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/apps/tools/serializers/tool.py b/apps/tools/serializers/tool.py index ef60e43cb69..0915c6e9f3f 100644 --- a/apps/tools/serializers/tool.py +++ b/apps/tools/serializers/tool.py @@ -1470,6 +1470,7 @@ class ToolRecord(serializers.Serializer): source_name = serializers.CharField(required=False, allow_null=True, allow_blank=True, label=_("source name")) source_type = serializers.CharField(required=False, allow_null=True, allow_blank=True, label=_("source type")) state = serializers.CharField(required=False, allow_null=True, allow_blank=True, label=_("state")) + order = serializers.CharField(required=False, allow_null=True, allow_blank=True, label=_("Order field")) class Operate(serializers.Serializer): id = serializers.UUIDField(required=False, allow_null=True, label=_("record id")) @@ -1557,7 +1558,12 @@ def get_tool_records(self, current_page: int, page_size: int): query_set = query_set.filter(Q(id=self.data.get("record_id"))) if self.data.get("workspace_id"): query_set = query_set.filter(Q(workspace_id=self.data.get("workspace_id"))) - query_set = query_set.order_by("-create_time") + order = str(self.data.get("order") or "").strip() + # 前端执行时间排序沿用触发器记录的 ett 别名协议,工具记录表无别名,需去掉前缀。 + if order in ("ett.create_time", "-ett.create_time"): + query_set = query_set.order_by(order.replace("ett.", "")) + else: + query_set = query_set.order_by("-create_time") return page_search( current_page, diff --git a/apps/tools/views/tool.py b/apps/tools/views/tool.py index 3417c94335e..cbd4c2eb765 100644 --- a/apps/tools/views/tool.py +++ b/apps/tools/views/tool.py @@ -719,6 +719,7 @@ def get(self, request: Request, tool_id: str, workspace_id: str, current_page: i "source_name": request.query_params.get("source_name"), "source_type": request.query_params.get("source_type"), "state": request.query_params.get("state"), + "order": request.query_params.get("order"), } ).get_tool_records(current_page, page_size) )