diff --git a/apps/home/views.py b/apps/home/views.py index 0e6c761..5fc169f 100644 --- a/apps/home/views.py +++ b/apps/home/views.py @@ -1,5 +1,6 @@ # -*- encoding: utf-8 -*- +import json from datetime import timedelta, datetime from django import template @@ -9,7 +10,7 @@ from django.http import HttpResponse, HttpResponseRedirect, JsonResponse from django.template import loader from django.shortcuts import render from django.urls import reverse -from django.forms.models import model_to_dict +from django.db.models import Q from ..authentication.models import Department from .models import Ticket, TicketPriority, TicketTag @@ -50,9 +51,28 @@ def get_ticket(request): @require_POST def get_tickets(request): - filters = dict(request.POST.get("filters", {})) + filters = json.loads(request.POST.get("filters", "{}")) - tickets = Ticket.objects.filter(**filters).order_by("-create_timestamp") + # conditions = [Q(**{key: value}) for key, value in filters.items()] + # combined_conditions = Q() + # for condition in conditions: + # combined_conditions &= condition + + # print(combined_conditions) + + # query = Q() + # for key, values in filters.items(): + # print("keyvalues", key, values) + # query &= Q(**{key: values}) + + query = Q() + for key, values in filters.items(): + for value in values: + query &= Q(**{key: [value]}) + + print(query) + + tickets = Ticket.objects.filter(query).order_by("-create_timestamp") data = {"tickets": [ticket.serialize() for ticket in tickets]} return JsonResponse(data) diff --git a/apps/templates/home/tickets.html b/apps/templates/home/tickets.html index e0d65a7..853100e 100644 --- a/apps/templates/home/tickets.html +++ b/apps/templates/home/tickets.html @@ -335,6 +335,7 @@ {% block javascripts %}