From e5c785c29f2af0f9978814f7a34132388c44045d Mon Sep 17 00:00:00 2001 From: Aurélien Bompard Date: Tue, 11 Jun 2013 15:40:30 +0200 Subject: Add a select box to change the search results ordering --- hyperkitty/static/css/hyperkitty-threadslist.css | 9 +++++++++ hyperkitty/templates/search_results.html | 23 +++++++++++++++++++++++ hyperkitty/views/search.py | 17 +++++++++++++++-- 3 files changed, 47 insertions(+), 2 deletions(-) diff --git a/hyperkitty/static/css/hyperkitty-threadslist.css b/hyperkitty/static/css/hyperkitty-threadslist.css index 644d2b7..610d603 100644 --- a/hyperkitty/static/css/hyperkitty-threadslist.css +++ b/hyperkitty/static/css/hyperkitty-threadslist.css @@ -25,6 +25,15 @@ float: right; } +#thread-list .thread-list-header form { + margin-bottom: 0; + float: right; +} +#thread-list .thread-list-header form select { + margin-bottom: 0; + width: auto; +} + /* * Thread view diff --git a/hyperkitty/templates/search_results.html b/hyperkitty/templates/search_results.html index f91d664..f86280a 100644 --- a/hyperkitty/templates/search_results.html +++ b/hyperkitty/templates/search_results.html @@ -36,8 +36,31 @@ Search results for "{{ query }}"{% if mlist %} - {{ mlist.display_name|default:m {{ total }} messages + +
+ + + {% if mlist %}{% endif %} +

+ Sort mode: + + +

+
+ + {% for message in messages %} {% include "messages/summary_message.html" %} {% empty %} diff --git a/hyperkitty/views/search.py b/hyperkitty/views/search.py index 9ea224a..f143876 100644 --- a/hyperkitty/views/search.py +++ b/hyperkitty/views/search.py @@ -70,15 +70,27 @@ def search_tag(request, mlist_fqdn, tag): def search(request, page=1): """ Returns messages corresponding to a query """ + results_per_page = 10 store = get_store(request) query = request.GET.get("query") mlist_fqdn = request.GET.get("list") + try: page_num = int(request.GET.get('page', "1")) except ValueError: page_num = 1 - results_per_page = 10 - query_result = store.search(query, mlist_fqdn, page_num, results_per_page) + + sort_mode = request.GET.get('sort') + sortedby = None + reverse = False + if sort_mode == "date-asc": + sortedby = "date" + elif sort_mode == "date-desc": + sortedby = "date" + reverse = True + + query_result = store.search(query, mlist_fqdn, page_num, results_per_page, + sortedby=sortedby, reverse=reverse) total = query_result["total"] messages = query_result["results"] for message in messages: @@ -98,6 +110,7 @@ def search(request, page=1): "query": query, 'messages': messages, 'total': total, + 'sort_mode': sort_mode, } return render(request, "search_results.html", context) -- cgit