From 4610416553ba6aef076c77a19e65773d08c3d6e7 Mon Sep 17 00:00:00 2001 From: finnertysea Date: Fri, 18 Apr 2025 15:49:09 -0700 Subject: [PATCH] fix for #1259 --- helpdesk/query.py | 18 ++++++++++++++---- .../templates/helpdesk/filters/sorting.html | 2 +- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/helpdesk/query.py b/helpdesk/query.py index cfe24ba5..fa2b8a1a 100644 --- a/helpdesk/query.py +++ b/helpdesk/query.py @@ -71,6 +71,11 @@ DATATABLES_ORDER_COLUMN_CHOICES = Choices( ) +DATATABLES_COLUMN_NUM_LOOKUP = { + v:k for k, v in DATATABLES_ORDER_COLUMN_CHOICES +} + + def get_query_class(): from django.conf import settings @@ -162,13 +167,18 @@ class __Query__: to a Serializer called DatatablesTicketSerializer in serializers.py. """ objects = self.get() - order_by = "-created" draw = int(kwargs.get("draw", [0])[0]) length = int(kwargs.get("length", [25])[0]) start = int(kwargs.get("start", [0])[0]) search_value = kwargs.get("search[value]", [""])[0] - order_column = kwargs.get("order[0][column]", ["5"])[0] - order = kwargs.get("order[0][dir]", ["asc"])[0] + + sorting = self.params.get("sorting", "created") + default_order_col = DATATABLES_COLUMN_NUM_LOOKUP.get(sorting, "5") + sortreverse = self.params.get("sortreverse", None) + default_order = "desc" if sortreverse else "asc" + + order_column = kwargs.get("order[0][column]", [default_order_col])[0] + order = kwargs.get("order[0][dir]", [default_order])[0] order_column = DATATABLES_ORDER_COLUMN_CHOICES[order_column] # django orm '-' -> desc @@ -191,7 +201,7 @@ class __Query__: .values("last_followup") .distinct() ) - ).order_by(order_by) + ) total = queryset.count() diff --git a/helpdesk/templates/helpdesk/filters/sorting.html b/helpdesk/templates/helpdesk/filters/sorting.html index 9115b1ce..2661f65e 100644 --- a/helpdesk/templates/helpdesk/filters/sorting.html +++ b/helpdesk/templates/helpdesk/filters/sorting.html @@ -5,7 +5,7 @@
-