diff options
-rw-r--r-- | templates/search.html | 4 | ||||
-rw-r--r-- | views/pages.py | 11 |
2 files changed, 11 insertions, 4 deletions
diff --git a/templates/search.html b/templates/search.html index fa76cea..af17f3e 100644 --- a/templates/search.html +++ b/templates/search.html @@ -21,7 +21,7 @@ <div class="pagination"> <span class="step-links"> {% if threads.has_previous %} - <a href="?page={{ threads.previous_page_number }}">previous</a> + <a href="?{{ query_string }}&page={{ threads.previous_page_number }}">previous</a> {% endif %} <span class="current"> @@ -29,7 +29,7 @@ </span> {% if threads.has_next %} - <a href="?page={{ threads.next_page_number }}">next</a> + <a href="?{{ query_string }}&page={{ threads.next_page_number }}">next</a> {% endif %} </span> </div> diff --git a/views/pages.py b/views/pages.py index d5387f1..8f60067 100644 --- a/views/pages.py +++ b/views/pages.py @@ -7,6 +7,7 @@ import logging import os import re from urlparse import urljoin +import urllib from django import forms from django.http import HttpResponse, HttpResponseRedirect @@ -199,7 +200,7 @@ def message (request, mlist_fqdn, messageid): }) return HttpResponse(t.render(c)) -def _search_results_page(request, mlist_fqdn, query_string, search_type): +def _search_results_page(request, mlist_fqdn, query_string, query_string_variables, search_type): search_form = SearchForm(auto_id=False) t = loader.get_template('search.html') @@ -250,6 +251,7 @@ def _search_results_page(request, mlist_fqdn, query_string, search_type): 'month_participants': len(participants), 'month_discussions': res_num, 'threads': threads, + 'query_string' : query_string_variables, }) return HttpResponse(t.render(c)) @@ -271,6 +273,11 @@ def search_keyword(request, mlist_fqdn, keyword=None, target=None): if not target: target = 'Subject' regex = '.*%s.*' % keyword + query_string_variables = request.GET.copy() + if query_string_variables.has_key('page'): + del query_string_variables['page'] + query_string_variables = urllib.urlencode(query_string_variables) + if target == 'SubjectContent': query_string = {'$or' : [ {'Subject': re.compile(regex, re.IGNORECASE)}, @@ -278,7 +285,7 @@ def search_keyword(request, mlist_fqdn, keyword=None, target=None): ]} else: query_string = {target.capitalize(): re.compile(regex, re.IGNORECASE)} - return _search_results_page(request, mlist_fqdn, query_string, 'Search') + return _search_results_page(request, mlist_fqdn, query_string, query_string_variables, 'Search') def search_tag(request, mlist_fqdn, tag=None): |