from dal import autocomplete from django.shortcuts import get_object_or_404 import seminar.models as m from .helpers import LoginRequiredAjaxMixin 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)) return qs class ResitelAutocomplete(LoginRequiredAjaxMixin,autocomplete.Select2QuerySetView): def get_queryset(self): qs = m.Resitel.objects.all() if self.q: qs = qs.filter( Q(osoba__jmeno__startswith=self.q)| Q(osoba__prijmeni__startswith=self.q)| Q(osoba__prezdivka__startswith=self.q) ) return qs class OdevzdatelnyProblemAutocomplete(autocomplete.Select2QuerySetView): def get_queryset(self): nastaveni = get_object_or_404(m.Nastaveni) rocnik = nastaveni.aktualni_rocnik temata = m.Tema.objects.filter(rocnik=rocnik, stav=m.Problem.STAV_ZADANY) ulohy = m.Uloha.objects.filter(cislo_deadline__rocnik = rocnik) ulohy.union(temata) qs = ulohy if self.q: qs = qs.filter( Q(nazev__startswith=self.q)) return qs # Ceka na autocomplete v3 # class OrganizatorAutocomplete(autocomplete.Select2QuerySetView): # def get_queryset(self): # if not self.request.user.is_authenticated(): # return Organizator.objects.none() # # qs = aktivniOrganizatori() # # if self.q: # if self.q[0] == "!": # qs = Organizator.objects.all() # query = self.q[1:] # else: # query = self.q # qs = qs.filter( # Q(prezdivka__isstartswith=query)| # Q(user__first_name__isstartswith=query)| # Q(user__last_name__isstartswith=query)) # # return qs