summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomasz Zielinski <tomasz.zielinski@pyconsultant.eu>2012-01-15 18:05:00 +0100
committerTomasz Zielinski <tomasz.zielinski@pyconsultant.eu>2012-01-15 18:05:00 +0100
commit76568d4c401c1787d21637fd0f7e944ae8ce200b (patch)
tree1ab0dd96fc2a14ecefcb8cc68a5d801d8273aba2
parent4fddeb3cc376a468b6883a574f5fc2f9b19cc708 (diff)
downloadaskbot-76568d4c401c1787d21637fd0f7e944ae8ce200b.tar.gz
askbot-76568d4c401c1787d21637fd0f7e944ae8ce200b.tar.bz2
askbot-76568d4c401c1787d21637fd0f7e944ae8ce200b.zip
Search sort order tweaks
-rw-r--r--askbot/models/question.py6
-rw-r--r--askbot/skins/common/media/js/live_search.js8
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 = $('<a></a>');
- 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('<span>' + sortButtonData['relevance']['label'] + '</span>');
@@ -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']);