Add ability to specifiy download queue sort order

This commit is contained in:
Chris Wunsch 2026-03-26 09:38:05 +00:00
parent b6942c8352
commit c39c4bacac
2 changed files with 17 additions and 6 deletions

View File

@ -51,6 +51,16 @@ class DownloadListQuerySerializer(
page = serializers.IntegerField(required=False)
q = serializers.CharField(required=False, help_text="Search Query")
error = serializers.BooleanField(required=False, allow_null=True)
sort = serializers.ChoiceField(
choices=["published", "timestamp"],
required=False,
help_text="Sort field",
)
order = serializers.ChoiceField(
choices=["asc", "desc"],
required=False,
help_text="Sort order",
)
class DownloadListQueueDeleteQuerySerializer(serializers.Serializer):

View File

@ -42,20 +42,21 @@ class DownloadApiListView(ApiBaseView):
)
def get(self, request):
"""get download queue list"""
query_filter = request.GET.get("filter", False)
serializer = DownloadListQuerySerializer(data=request.query_params)
serializer.is_valid(raise_exception=True)
validated_data = serializer.validated_data
sort_field = validated_data.get("sort", "timestamp")
sort_order = validated_data.get("order", "asc")
self.data.update(
{
"sort": [
{"auto_start": {"order": "desc"}},
{"timestamp": {"order": "asc"}},
{sort_field: {"order": sort_order}},
],
}
)
serializer = DownloadListQuerySerializer(data=request.query_params)
serializer.is_valid(raise_exception=True)
validated_data = serializer.validated_data
must_list = []
query_filter = validated_data.get("filter")
if query_filter: