From 76568d4c401c1787d21637fd0f7e944ae8ce200b Mon Sep 17 00:00:00 2001 From: Tomasz Zielinski Date: Sun, 15 Jan 2012 18:05:00 +0100 Subject: Search sort order tweaks --- askbot/models/question.py | 6 +++++- askbot/skins/common/media/js/live_search.js | 8 ++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/askbot/models/question.py b/askbot/models/question.py index 1cd7b29b..da38570e 100644 --- a/askbot/models/question.py +++ b/askbot/models/question.py @@ -220,7 +220,11 @@ class ThreadManager(models.Manager): qs = qs.select_related('thread__last_activity_by') if search_state.sort == 'relevance-desc': - qs = qs.extra(order_by = ['-relevance',]) # TODO: !! Fix for Postgres + # TODO: askbot_thread.relevance is not available here, so we have to work around it. Ideas: + # * convert the whole questions() pipeline to Thread-s + # * ... + #qs = qs.extra(select={'relevance': 'askbot_thread.relevance'}, order_by=['-relevance',]) + pass else: QUESTION_ORDER_BY_MAP = { 'age-desc': '-added_at', diff --git a/askbot/skins/common/media/js/live_search.js b/askbot/skins/common/media/js/live_search.js index 401c6c46..100c3f67 100644 --- a/askbot/skins/common/media/js/live_search.js +++ b/askbot/skins/common/media/js/live_search.js @@ -52,6 +52,10 @@ var liveSearch = function(query_string) { var send_query = function(query_text){ running = true; + if(!prev_text && query_text && showSortByRelevance) { + // If there was no query but there is some query now - and we support relevance search - then switch to it */ + query_string = QSutils.patch_query_string(query_string, 'sort:relevance-desc'); + } prev_text = update_query_string(query_text); query_string = QSutils.patch_query_string(query_string, 'page:1'); /* if something has changed, then reset the page no. */ var url = search_url + query_string; @@ -124,7 +128,7 @@ var liveSearch = function(query_string) { var create_relevance_tab = function(query_string){ relevance_tab = $(''); - href = search_url + patch_query_string(query_string, 'sort:relevance-desc'); + href = search_url + QSutils.patch_query_string(query_string, 'sort:relevance-desc'); relevance_tab.attr('href', href); relevance_tab.attr('id', 'by_relevance'); relevance_tab.html('' + sortButtonData['relevance']['label'] + ''); @@ -191,7 +195,7 @@ var liveSearch = function(query_string) { } render_related_tags(data['related_tags'], data['query_string']); render_relevance_sort_tab(data['query_string']); - set_active_sort_tab(sortMethod, data['query_string']); + set_active_sort_tab(data['query_data']['sort_order'], data['query_string']); if(data['feed_url']){ // Change RSS URL $("#ContentLeft a.rss:first").attr("href", data['feed_url']); -- cgit v1.2.3-1-g7c22