diff options
Diffstat (limited to 'app/controllers/general_controller.rb')
-rw-r--r-- | app/controllers/general_controller.rb | 33 |
1 files changed, 25 insertions, 8 deletions
diff --git a/app/controllers/general_controller.rb b/app/controllers/general_controller.rb index 1ddf3acff..55abea3b7 100644 --- a/app/controllers/general_controller.rb +++ b/app/controllers/general_controller.rb @@ -50,11 +50,18 @@ class GeneralController < ApplicationController query = 'variety:response (status:successful OR status:partially_successful)' # query = 'variety:response' # XXX debug sortby = "described" - xapian_object = perform_search([InfoRequestEvent], query, sortby, 'request_title_collapse', 8) - @successful_request_events = xapian_object.results.map { |r| r[:model] } - @successful_request_events = @successful_request_events.sort_by { |e| e.described_at }.reverse + max_count = 5 + xapian_object = perform_search([InfoRequestEvent], query, sortby, 'request_title_collapse', max_count) + @request_events = xapian_object.results.map { |r| r[:model] } + @request_events = @request_events.sort_by { |e| e.described_at }.reverse + if @request_events.count < max_count + query = 'variety:sent' + xapian_object = perform_search([InfoRequestEvent], query, sortby, 'request_title_collapse', max_count-@request_events.count) + more_events = xapian_object.results.map { |r| r[:model] } + @request_events += more_events.sort_by { |e| e.described_at }.reverse + end rescue - @successful_request_events = [] + @request_events = [] end end end @@ -91,8 +98,8 @@ class GeneralController < ApplicationController if path.size > 0 && (['bodies', 'requests', 'users', 'all'].include?(path[-1])) @variety_postfix = path.pop end - @variety_postfix = params[:bodies] if @variety_postfix.nil? && !params[:bodies].nil? - @variety_postfix = "all" if @variety_postfix.nil? + @variety_postfix = "bodies" if @variety_postfix.nil? && !params[:bodies].nil? + @variety_postfix = "requests" if @variety_postfix.nil? if @variety_postfix != "users" @common_query = get_tags_from_params end @@ -118,7 +125,7 @@ class GeneralController < ApplicationController return end [:latest_status, :request_variety, :request_date_after, :request_date_before, :query, :tags].each do |x| - params[x] = session[x] + params[x] = session[x] if params[x].nil? end combined = params[:combined] @sortby = nil @@ -135,7 +142,9 @@ class GeneralController < ApplicationController @sort_postfix = combined.pop @sortby = @sort_postfix end - + if !params[:view].nil? + combined += [params[:view]] + end if combined.size > 0 && (['bodies', 'requests', 'users', 'all'].include?(combined[-1])) @variety_postfix = combined.pop case @variety_postfix @@ -151,9 +160,17 @@ class GeneralController < ApplicationController @bodies = false @requests = false @users = true + else + @variety_postfix = "all" end end @query = combined.join("/") + if params[:query].nil? + params[:query] = @query + end + if @variety_postfix != "all" && @requests + @query, _ = make_query_from_params + end @inputted_sortby = @sortby @common_query = get_tags_from_params if @sortby.nil? |