(self, current_page: int, page_size: int)
| 1692 | create_user = serializers.UUIDField(required=False, label=_("create user"), allow_null=True) |
| 1693 | |
| 1694 | def page_tool(self, current_page: int, page_size: int): |
| 1695 | self.is_valid(raise_exception=True) |
| 1696 | |
| 1697 | folder_id = self.data.get("folder_id", self.data.get("workspace_id")) |
| 1698 | root = ToolFolder.objects.filter(id=folder_id).first() |
| 1699 | if not root: |
| 1700 | raise serializers.ValidationError(_("Folder not found")) |
| 1701 | # 使用MPTT的get_descendants()方法获取所有相关节点 |
| 1702 | all_folders = root.get_descendants(include_self=True) |
| 1703 | |
| 1704 | if self.data.get("name"): |
| 1705 | tools = QuerySet(Tool).filter( |
| 1706 | Q(workspace_id=self.data.get("workspace_id")) |
| 1707 | & Q(folder_id__in=all_folders) |
| 1708 | & Q(user_id=self.data.get("user_id")) |
| 1709 | & Q(name__contains=self.data.get("name")) |
| 1710 | ) |
| 1711 | else: |
| 1712 | tools = QuerySet(Tool).filter( |
| 1713 | Q(workspace_id=self.data.get("workspace_id")) |
| 1714 | & Q(folder_id__in=all_folders) |
| 1715 | & Q(user_id=self.data.get("user_id")) |
| 1716 | ) |
| 1717 | return page_search(current_page, page_size, tools, lambda record: ToolModelSerializer(record).data) |
| 1718 | |
| 1719 | def get_query_set(self, workspace_manage, is_x_pack_ee): |
| 1720 | tool_query_set = QuerySet(Tool).filter(workspace_id=self.data.get("workspace_id")) |
nothing calls this directly
no test coverage detected