Vylepšen autocomplete na webu, potřeba otestovat výkon.

This commit is contained in:
Tomas "Jethro" Pokorny 2021-10-11 19:18:35 +02:00
parent 5e2fcd6a0c
commit 4a44ec6b98

View file

@ -5,16 +5,20 @@ from django.db.models import Q
import seminar.models as m
from .helpers import LoginRequiredAjaxMixin
# TODO filosofie - zkratky, jak v databázi, tak ve vyhledávání (SPŠE, GASOŠ, Kpt., soukr)
class SkolaAutocomplete(autocomplete.Select2QuerySetView):
def get_queryset(self):
# Don't forget to filter out results depending on the visitor !
qs = m.Skola.objects.all()
if self.q:
qs = qs.filter(
Q(nazev__istartswith=self.q)|
Q(kratky_nazev__istartswith=self.q)|
Q(ulice__istartswith=self.q)|
Q(mesto__istartswith=self.q))
words = self.q.split(' ') #TODO re split podle bileho znaku
partq = Q()
for w in words: # Hledej po slovech, zahoď čárky a tečky z konců.
if w[-1] in (".",","):
w = w[:-1]
partq &= (Q(nazev__icontains=w)|Q(kratky_nazev__icontains=w)|Q(ulice__icontains=w)|Q(mesto__icontains=w))
qs = qs.filter(partq)
return qs