Added optional serverside processing on datatables that lists all tickets - True by default

This commit is contained in:
Dilip Dwarak
2018-10-14 20:23:28 -04:00
parent 8c2009a871
commit fc028334d9
8 changed files with 264 additions and 38 deletions

48
helpdesk/serializers.py Normal file
View File

@ -0,0 +1,48 @@
from rest_framework import serializers
from .models import Ticket
from django.contrib.humanize.templatetags import humanize
"""
A serializer for the Ticket model, returns data in the format as required by
datatables for ticket_list.html. Called from staff.datatables_ticket_list.
"""
class TicketSerializer(serializers.ModelSerializer):
ticket = serializers.SerializerMethodField()
assigned_to = serializers.SerializerMethodField()
created = serializers.SerializerMethodField()
due_date = serializers.SerializerMethodField()
status = serializers.SerializerMethodField()
row_class = serializers.SerializerMethodField()
class Meta:
model = Ticket
# fields = '__all__'
fields = ('ticket', 'id', 'priority', 'title', 'queue', 'status', 'created', 'due_date', 'assigned_to', 'row_class')
def get_ticket(self, obj):
return (str(obj.id)+" "+obj.ticket)
def get_status(self, obj):
return (obj.get_status)
def get_created(self, obj):
return (humanize.naturaltime(obj.created))
def get_due_date(self, obj):
return (humanize.naturaltime(obj.due_date))
def get_assigned_to(self, obj):
if obj.assigned_to:
if obj.assigned_to.first_name:
return (obj.assigned_to.first_name)
else:
return (obj.assigned_to.email)
else:
return ("None")
def get_row_class(self, obj):
return (obj.get_priority_css_class)