diff --git a/apps/api/views.py b/apps/api/views.py index 5ede093..da7c2a7 100644 --- a/apps/api/views.py +++ b/apps/api/views.py @@ -51,7 +51,7 @@ class TicketListApiView(generics.ListAPIView): queryset = Ticket.objects.all() filter_backends = [filters.SearchFilter, rest_filters.DjangoFilterBackend, filters.OrderingFilter] - filterset_fields = ["priority", "tags", "author"] + filterset_fields = ["uuid", "priority", "tags", "author", "author__department"] search_fields = ["author__forename", "author__surname", "title", "description"] ordering_fields = ["create_timestamp", "edit_timestamp"] diff --git a/apps/static/assets/js/tickets.js b/apps/static/assets/js/tickets.js index 6c8e3c7..1bc442b 100644 --- a/apps/static/assets/js/tickets.js +++ b/apps/static/assets/js/tickets.js @@ -49,7 +49,7 @@ $(document).ready(function() { }) setupFilter("#filterSidebar .filter-department", "author__department"); - setupFilter("#filterSidebar .filter-tag", "tags__in"); + setupFilter("#filterSidebar .filter-tag", "tags"); setupFilter("#filterSidebar .filter-priority", "priority"); loadFilterCounts(); @@ -81,7 +81,12 @@ function setupFilter(selector, key) { } } else if (input.is(":radio") && input.is(":checked")) { - filters[key] = [uuid]; + if (uuid === "all") { + delete filters[key]; + } + else { + filters[key] = [uuid]; + } } console.debug(`Filter applied '${key}' as '${uuid}'`) @@ -210,18 +215,18 @@ function loadAllTickets() { url: URL_Tickets, type: "GET", dataType: "json", - data: filters, + data: $.param(filters, true), success: function(data) { loadingTickets = false; console.log(JSON.stringify(data, null, 4)) - $("#ticketCounts .current").text(data.length); + $("#ticketCounts .current").text(data.results.length); $("#ticketsContainer .loading").hide(); - if (data.length === 0) $("#ticketsContainer .none-found").show(); + if (data.results.length === 0) $("#ticketsContainer .none-found").show(); else $("#ticketsContainer .none-found").hide(); - data.forEach(function(ticket) { + data.results.forEach(function(ticket) { var timestamp = new Date(ticket.timestamp); var formattedTime = timestampToHumanDate(timestamp, ticket.was_yesterday); @@ -229,31 +234,15 @@ function loadAllTickets() { formattedTime += " • edited"; } - var item = $(` -