sorting on Last Followup works

This commit is contained in:
DavidVadnais 2025-03-12 02:46:08 +00:00
parent 921d424239
commit b7b04166fc
3 changed files with 11 additions and 4 deletions

View File

@ -4,6 +4,7 @@ from django.db.models import Q
from django.urls import reverse
from django.utils.html import escape
from django.utils.translation import gettext as _
from django.db.models import Max
from helpdesk.serializers import DatatablesTicketSerializer
import json
from model_utils import Choices
@ -170,13 +171,14 @@ class __Query__:
search_value = kwargs.get('search[value]', [""])[0]
order_column = kwargs.get('order[0][column]', ['5'])[0]
order = kwargs.get('order[0][dir]', ["asc"])[0]
order_column = DATATABLES_ORDER_COLUMN_CHOICES[order_column]
# django orm '-' -> desc
if order == 'desc':
order_column = '-' + order_column
queryset = objects.all().order_by(order_by)
queryset = queryset.annotate(last_followup=Max('followup__date'))
total = queryset.count()
if search_value: # Dead code currently

View File

@ -1,6 +1,7 @@
from django.contrib.auth import get_user_model
from django.contrib.humanize.templatetags import humanize
from django.utils.timezone import localtime
from django.core.exceptions import ObjectDoesNotExist
from rest_framework import serializers
from rest_framework.exceptions import ValidationError
@ -74,8 +75,13 @@ class DatatablesTicketSerializer(serializers.ModelSerializer):
return obj.kbitem.title if obj.kbitem else ""
def get_last_followup(self, obj):
followup = obj.followup_set.latest('date')
return localtime(followup.date).strftime('%Y-%m-%d %H:%M:%S') if followup else ""
try:
followup = obj.followup_set.latest('date')
followup = obj.followup_set.latest('date')
return localtime(followup.date).strftime('%Y-%m-%d %H:%M:%S') if followup else ""
except ObjectDoesNotExist:
return None # Return None or an empty string if no follow-ups exist
class FollowUpAttachmentSerializer(serializers.ModelSerializer):
class Meta:

View File

@ -1168,7 +1168,6 @@ def datatables_ticket_list(request, query):
"""
query = Query(HelpdeskUser(request.user), base64query=query)
result = query.get_datatables_context(**request.query_params)
print(result)
return JsonResponse(result, status=status.HTTP_200_OK)