Vylepšen autocomplete na webu, potřeba otestovat výkon.
This commit is contained in:
		
							parent
							
								
									5e2fcd6a0c
								
							
						
					
					
						commit
						4a44ec6b98
					
				
					 1 changed files with 9 additions and 5 deletions
				
			
		|  | @ -5,16 +5,20 @@ from django.db.models import Q | ||||||
| import seminar.models as m | import seminar.models as m | ||||||
| from .helpers import LoginRequiredAjaxMixin | 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): | class SkolaAutocomplete(autocomplete.Select2QuerySetView): | ||||||
| 	def get_queryset(self): | 	def get_queryset(self): | ||||||
|         	# Don't forget to filter out results depending on the visitor ! |         	# Don't forget to filter out results depending on the visitor ! | ||||||
| 		qs = m.Skola.objects.all() | 		qs = m.Skola.objects.all() | ||||||
| 		if self.q: | 		if self.q: | ||||||
| 			qs = qs.filter( | 			words = self.q.split(' ') #TODO re split podle bileho znaku | ||||||
| 				Q(nazev__istartswith=self.q)| | 			partq = Q() | ||||||
| 				Q(kratky_nazev__istartswith=self.q)| | 			for w in words:	# Hledej po slovech, zahoď čárky a tečky z konců.  | ||||||
| 				Q(ulice__istartswith=self.q)| | 				if w[-1] in (".",","): | ||||||
| 				Q(mesto__istartswith=self.q)) | 					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 | 		return qs | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue