Don't search blindly for all the fields passed in the advanced search, use the defined fields, avoid hard coded rejection of &page arguments in the query string. The SearchModel class is now responsible for storing the search in the recent entries instead of the view.

This commit is contained in:
Roberto Rosario
2014-12-11 19:52:24 -04:00
parent 1a8ab7956f
commit d0aaa256cd
5 changed files with 36 additions and 95 deletions

View File

@@ -49,16 +49,8 @@ class APISearchView(generics.ListAPIView):
self.mayan_object_permissions = {'GET': [document_search.permission]}
try:
if 'q' in self.request.GET:
# Simple query
query_string = self.request.GET.get('q', u'').strip()
queryset, ids, timedelta = document_search.simple_search(query_string)
else:
# Advanced search
queryset, ids, timedelta = document_search.advanced_search(self.request.GET)
queryset, ids, timedelta = document_search.search(self.request.GET, self.request.user)
except Exception as exception:
raise ParseError(unicode(exception))
RecentSearch.objects.add_query_for_user(self.request.user, self.request.GET, len(ids))
return queryset