Added search to person, venue, organisation and event archive

This commit is contained in:
David Taylor
2015-08-02 23:54:29 +03:00
committed by Tom Price
parent e286d8bdee
commit 9db9902bb9
3 changed files with 104 additions and 33 deletions

View File

@@ -53,10 +53,19 @@ class PersonList(generic.ListView):
def get_queryset(self):
q = self.request.GET.get('q', "")
if len(q) >= 3:
object_list = self.model.objects.filter(Q(name__icontains=q) | Q(email__icontains=q))
else:
object_list = self.model.objects.all()
filter = Q(name__icontains=q) | Q(email__icontains=q) | Q(address__icontains=q) | Q(notes__icontains=q) | Q(phone__startswith=q) | Q(phone__endswith=q)
#try and parse an int
try:
val = int(q)
filter = filter | Q(pk=val)
except:
#not an integer
pass
object_list = self.model.objects.filter(filter)
orderBy = self.request.GET.get('orderBy', None)
if orderBy is not None:
object_list = object_list.order_by(orderBy)
@@ -107,10 +116,19 @@ class OrganisationList(generic.ListView):
def get_queryset(self):
q = self.request.GET.get('q', "")
if len(q) >= 3:
object_list = self.model.objects.filter(Q(name__icontains=q) | Q(address__icontains=q))
else:
object_list = self.model.objects.all()
filter = Q(name__icontains=q) | Q(email__icontains=q) | Q(address__icontains=q) | Q(notes__icontains=q) | Q(phone__startswith=q) | Q(phone__endswith=q)
#try and parse an int
try:
val = int(q)
filter = filter | Q(pk=val)
except:
#not an integer
pass
object_list = self.model.objects.filter(filter)
orderBy = self.request.GET.get('orderBy', "")
if orderBy is not "":
object_list = object_list.order_by(orderBy)
@@ -161,10 +179,19 @@ class VenueList(generic.ListView):
def get_queryset(self):
q = self.request.GET.get('q', "")
if len(q) >= 3:
object_list = self.model.objects.filter(Q(name__icontains=q) | Q(address__icontains=q))
else:
object_list = self.model.objects.all()
filter = Q(name__icontains=q) | Q(email__icontains=q) | Q(address__icontains=q) | Q(notes__icontains=q) | Q(phone__startswith=q) | Q(phone__endswith=q)
#try and parse an int
try:
val = int(q)
filter = filter | Q(pk=val)
except:
#not an integer
pass
object_list = self.model.objects.filter(filter)
orderBy = self.request.GET.get('orderBy', "")
if orderBy is not "":
object_list = object_list.order_by(orderBy)