forked from extern/django-helpdesk
Merge pull request #965 from auto-mat/large-desk-performance
Fixes: performance and crash
This commit is contained in:
commit
610460dfd6
@ -1,5 +1,4 @@
|
|||||||
from django.db.models import Q
|
from django.db.models import Q
|
||||||
from django.core.cache import cache
|
|
||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
from django.utils.html import escape
|
from django.utils.html import escape
|
||||||
from django.utils.translation import ugettext as _
|
from django.utils.translation import ugettext as _
|
||||||
@ -139,21 +138,10 @@ class __Query__:
|
|||||||
# https://stackoverflow.com/questions/30487056/django-queryset-contains-duplicate-entries
|
# https://stackoverflow.com/questions/30487056/django-queryset-contains-duplicate-entries
|
||||||
return queryset.distinct()
|
return queryset.distinct()
|
||||||
|
|
||||||
def get_cache_key(self):
|
|
||||||
return str(self.huser.user.pk) + ":" + self.base64
|
|
||||||
|
|
||||||
def refresh_query(self):
|
|
||||||
tickets = self.huser.get_tickets_in_queues().select_related()
|
|
||||||
ticket_qs = self.__run__(tickets)
|
|
||||||
cache.set(self.get_cache_key(), ticket_qs, timeout=3600)
|
|
||||||
return ticket_qs
|
|
||||||
|
|
||||||
def get(self):
|
def get(self):
|
||||||
# Prefilter the allowed tickets
|
# Prefilter the allowed tickets
|
||||||
objects = cache.get(self.get_cache_key())
|
tickets = self.huser.get_tickets_in_queues().select_related()
|
||||||
if objects is not None:
|
return self.__run__(tickets)
|
||||||
return objects
|
|
||||||
return self.refresh_query()
|
|
||||||
|
|
||||||
def get_datatables_context(self, **kwargs):
|
def get_datatables_context(self, **kwargs):
|
||||||
"""
|
"""
|
||||||
|
@ -398,7 +398,10 @@ def return_ticketccstring_and_show_subscribe(user, ticket):
|
|||||||
# create the ticketcc_string and check whether current user is already
|
# create the ticketcc_string and check whether current user is already
|
||||||
# subscribed
|
# subscribed
|
||||||
username = user.get_username().upper()
|
username = user.get_username().upper()
|
||||||
useremail = user.email.upper()
|
try:
|
||||||
|
useremail = user.email.upper()
|
||||||
|
except AttributeError:
|
||||||
|
useremail = ""
|
||||||
strings_to_check = list()
|
strings_to_check = list()
|
||||||
strings_to_check.append(username)
|
strings_to_check.append(username)
|
||||||
strings_to_check.append(useremail)
|
strings_to_check.append(useremail)
|
||||||
@ -1127,8 +1130,6 @@ def ticket_list(request):
|
|||||||
|
|
||||||
urlsafe_query = query_to_base64(query_params)
|
urlsafe_query = query_to_base64(query_params)
|
||||||
|
|
||||||
Query(huser, base64query=urlsafe_query).refresh_query()
|
|
||||||
|
|
||||||
user_saved_queries = SavedSearch.objects.filter(Q(user=request.user) | Q(shared__exact=True))
|
user_saved_queries = SavedSearch.objects.filter(Q(user=request.user) | Q(shared__exact=True))
|
||||||
|
|
||||||
search_message = ''
|
search_message = ''
|
||||||
|
Loading…
Reference in New Issue
Block a user