aboutsummaryrefslogtreecommitdiffstats
path: root/app/controllers/general_controller.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/controllers/general_controller.rb')
-rw-r--r--app/controllers/general_controller.rb41
1 files changed, 29 insertions, 12 deletions
diff --git a/app/controllers/general_controller.rb b/app/controllers/general_controller.rb
index 1ddf3acff..194a1cec0 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
@@ -63,13 +70,13 @@ class GeneralController < ApplicationController
def blog
medium_cache
@feed_autodetect = []
- feed_url = MySociety::Config.get('BLOG_FEED', '')
- if not feed_url.empty?
- content = open(feed_url).read
+ @feed_url = "#{MySociety::Config.get('BLOG_FEED', '')}?lang=#{self.locale_from_params()}"
+ if not @feed_url.empty?
+ content = open(@feed_url).read
@data = XmlSimple.xml_in(content)
@channel = @data['channel'][0]
@blog_items = @channel['item']
- @feed_autodetect = [{:url => feed_url, :title => "#{site_name} blog"}]
+ @feed_autodetect = [{:url => @feed_url, :title => "#{site_name} blog"}]
else
@blog_items = []
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?