From a6a469ad9c448a37f335681bd3c72f875c0d2288 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Sun, 3 Jul 2011 00:43:15 -0400 Subject: [PATCH] Improved query string cleanup method and blank query detection --- apps/dynamic_search/managers.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/apps/dynamic_search/managers.py b/apps/dynamic_search/managers.py index 3562bbd746..9fd4c7fe55 100644 --- a/apps/dynamic_search/managers.py +++ b/apps/dynamic_search/managers.py @@ -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})