From 769a2670fc5927d3a4e11b4c8367abf1eed6c0c0 Mon Sep 17 00:00:00 2001 From: Aamir Khan Date: Thu, 5 Apr 2012 22:28:11 +0530 Subject: RESTish URL for search result pages --- urls.py | 4 ++++ views/pages.py | 13 +++---------- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/urls.py b/urls.py index afa7cae..e2d7f9e 100644 --- a/urls.py +++ b/urls.py @@ -31,6 +31,10 @@ urlpatterns = patterns('', url(r'^message/(?P.*@.*)/(?P.+)$', 'views.pages.message'), # Search #url(r'^search$', 'views.pages.search'), + # If page number is present in URL + url(r'^search/(?P.*@.*)\/(?P.*)\/(?P.*)\/(?P.*)$', 'views.pages.search_keyword'), + url(r'^search/(?P.*@.*)\/(?P.*)\/(?P.*)\/(?P.*)/$', 'views.pages.search_keyword'), + # Show the first page as default when no page number is present in URL url(r'^search/(?P.*@.*)\/(?P.*)\/(?P.*)$', 'views.pages.search_keyword'), url(r'^search/(?P.*@.*)\/(?P.*)\/(?P.*)/$', 'views.pages.search_keyword'), url(r'^search/(?P.*@.*)$', 'views.pages.search'), diff --git a/views/pages.py b/views/pages.py index 149364c..ba28e94 100644 --- a/views/pages.py +++ b/views/pages.py @@ -200,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, page, search_type): search_form = SearchForm(auto_id=False) t = loader.get_template('search.html') @@ -214,12 +214,6 @@ def _search_results_page(request, mlist_fqdn, query_string, search_type): paginator = Paginator(threads, 25) # Show 25 threads per page - page = request.GET.get('page') - try: - page = int(request.GET.get('page', '1')) - except ValueError: - page = 1 - # If page request (9999) is out of range, deliver last page of results. try: threads = paginator.page(page) @@ -266,7 +260,7 @@ def search(request, mlist_fqdn): return HttpResponseRedirect(url) -def search_keyword(request, mlist_fqdn, target=None, keyword=None): +def search_keyword(request, mlist_fqdn, target=None, keyword=None, page=1): if not keyword: keyword = request.GET.get('keyword') if not target: @@ -274,7 +268,6 @@ def search_keyword(request, mlist_fqdn, target=None, keyword=None): if not target: target = 'Subject' regex = '.*%s.*' % keyword - if target == 'SubjectContent': query_string = {'$or' : [ {'Subject': re.compile(regex, re.IGNORECASE)}, @@ -282,7 +275,7 @@ def search_keyword(request, mlist_fqdn, target=None, keyword=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, page, 'Search') def search_tag(request, mlist_fqdn, tag=None): -- cgit