diff options
author | substantialnoninfringinguser <substantialnoninfringinguser@gmail.com> | 2009-07-03 05:31:49 +0100 |
---|---|---|
committer | substantialnoninfringinguser <substantialnoninfringinguser@gmail.com> | 2009-07-03 05:31:49 +0100 |
commit | 8446047ab246b186f0404a1f8acbf719a6355a78 (patch) | |
tree | b5b9a1b32c82383a1f6088bd4c4b97bacf933875 /core/search.py | |
parent | dc19150eba28de83e06c47d6235c07309f92b36d (diff) | |
download | troggle-8446047ab246b186f0404a1f8acbf719a6355a78.tar.gz troggle-8446047ab246b186f0404a1f8acbf719a6355a78.tar.bz2 troggle-8446047ab246b186f0404a1f8acbf719a6355a78.zip |
[svn] Brief code cleanup.
Diffstat (limited to 'core/search.py')
-rw-r--r-- | core/search.py | 39 |
1 files changed, 0 insertions, 39 deletions
diff --git a/core/search.py b/core/search.py deleted file mode 100644 index 5ec2ce2..0000000 --- a/core/search.py +++ /dev/null @@ -1,39 +0,0 @@ -import re
-
-from django.db.models import Q
-
-# search script from http://www.julienphalip.com/blog/2008/08/16/adding-search-django-site-snap/
-
-def normalize_query(query_string,
- findterms=re.compile(r'"([^"]+)"|(\S+)').findall,
- normspace=re.compile(r'\s{2,}').sub):
- ''' Splits the query string in invidual keywords, getting rid of unecessary spaces
- and grouping quoted words together.
- Example:
-
- >>> normalize_query(' some random words "with quotes " and spaces')
- ['some', 'random', 'words', 'with quotes', 'and', 'spaces']
-
- '''
- return [normspace(' ', (t[0] or t[1]).strip()) for t in findterms(query_string)]
-
-def get_query(query_string, search_fields):
- ''' Returns a query, that is a combination of Q objects. That combination
- aims to search keywords within a model by testing the given search fields.
-
- '''
- query = None # Query to search for every search term
- terms = normalize_query(query_string)
- for term in terms:
- or_query = None # Query to search for a given term in each field
- for field_name in search_fields:
- q = Q(**{"%s__icontains" % field_name: term})
- if or_query is None:
- or_query = q
- else:
- or_query = or_query | q
- if query is None:
- query = or_query
- else:
- query = query & or_query
- return query
\ No newline at end of file |