Improved query string cleanup method and blank query detection
This commit is contained in:
@@ -10,11 +10,18 @@ from dynamic_search.conf.settings import RECENT_COUNT
|
||||
class RecentSearchManager(models.Manager):
|
||||
def add_query_for_user(self, user, query, hits):
|
||||
parsed_query = urlparse.parse_qs(query)
|
||||
if ('q=' in query) and not parsed_query.get('q'):
|
||||
# Don't store empty simple searches
|
||||
return
|
||||
else:
|
||||
parsed_query = {'q': u' '.join(parsed_query['q'])}
|
||||
for key, value in parsed_query.items():
|
||||
parsed_query[key] = u' '.join(value)
|
||||
|
||||
if 'q=' in query:
|
||||
# Is a simple query
|
||||
if not parsed_query.get('q'):
|
||||
# Don't store empty simple searches
|
||||
return
|
||||
else:
|
||||
# Cleanup query string and only store the q parameter
|
||||
parsed_query = {'q': parsed_query['q']}
|
||||
|
||||
if parsed_query:
|
||||
# If the URL query has at least one variable with a value
|
||||
new_recent, created = self.model.objects.get_or_create(user=user, query=urlencode(parsed_query), defaults={'hits': hits})
|
||||
|
||||
Reference in New Issue
Block a user