From 07a4e5e8030c67ffd5e4bfc6d4249e8539912691 Mon Sep 17 00:00:00 2001 From: bidaya0 Date: Thu, 15 Jun 2023 16:00:06 +0800 Subject: [PATCH] feat: package relative version query change. --- dongtai_web/dongtai_sca/views/newpackageprojects.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/dongtai_web/dongtai_sca/views/newpackageprojects.py b/dongtai_web/dongtai_sca/views/newpackageprojects.py index 36e39c99a..300186861 100644 --- a/dongtai_web/dongtai_sca/views/newpackageprojects.py +++ b/dongtai_web/dongtai_sca/views/newpackageprojects.py @@ -11,7 +11,7 @@ from dongtai_web.utils import extend_schema_with_envcheck_v2, get_response_serializer from rest_framework import serializers from rest_framework.serializers import ValidationError -from django.db.models import Q, F +from django.db.models import Q, F, Value from dongtai_web.dongtai_sca.utils import get_asset_id_by_aggr_id from dongtai_common.models.assetv2 import AssetV2, AssetV2Global @@ -79,14 +79,16 @@ def get(self, request, language_id, package_name, package_version): if ser.validated_data["project_id"]: assets_p1 = IastProject.objects.filter( Q(pk__in=assets_project_ids) - & Q(pk=ser.validated_data["project_id"])).all() + & Q(pk=ser.validated_data["project_id"])).annotate( + order=Value(1)).all() assets_p2 = IastProject.objects.filter( Q(pk__in=assets_project_ids) - & ~Q(pk=ser.validated_data["project_id"])).all() - assets = assets_p1.union(assets_p2) + & ~Q(pk=ser.validated_data["project_id"])).annotate( + order=Value(2)).order_by('-pk').all() + assets = assets_p1.union(assets_p2).order_by('order', '-pk') else: assets = IastProject.objects.filter( - Q(pk__in=assets_project_ids)).all() + Q(pk__in=assets_project_ids)).order_by('-pk').all() page_info, data = self.get_paginator(assets, ser.validated_data['page'], ser.validated_data['page_size'])