diff options
author | Francis Irving <francis@mysociety.org> | 2010-09-03 15:52:05 +0100 |
---|---|---|
committer | Francis Irving <francis@mysociety.org> | 2010-09-03 15:52:05 +0100 |
commit | d06975ca01f0033bcd9dd4253007319c507a4c4c (patch) | |
tree | aba6e94a26d685a5c301e8ec51b03bc6f36fb824 /app/controllers/general_controller.rb | |
parent | 08430db20111c7e853cad6c1710ebc3dc4150375 (diff) |
Use interlock and memcached to cache front page with interlocking
view/controller fragments.
Diffstat (limited to 'app/controllers/general_controller.rb')
-rw-r--r-- | app/controllers/general_controller.rb | 58 |
1 files changed, 29 insertions, 29 deletions
diff --git a/app/controllers/general_controller.rb b/app/controllers/general_controller.rb index 3bf113efb..7cde689c1 100644 --- a/app/controllers/general_controller.rb +++ b/app/controllers/general_controller.rb @@ -14,36 +14,36 @@ class GeneralController < ApplicationController # New, improved front page! def frontpage - # This is too slow - #@popular_bodies = PublicBody.find(:all, :select => "*, (select count(*) from info_requests where info_requests.public_body_id = public_bodies.id) as c", :order => "c desc", :limit => 32) - - # Just hardcode some popular authorities for now - # ('tgq', 'atbra' is for debugging on Francis's development environment) - @popular_bodies = PublicBody.find(:all, :conditions => ["url_name in ( - 'bbc', - 'dwp', - 'dh', - 'snh', - 'royal_mail_group', - 'mod', - 'kent_county_council', - 'wirral_borough_council' - /* , 'tgq', 'atbra' */ - )"]).sort_by { |pb| pb.url_name }.reverse # just an order that looks better - - # Get some successful requests # - begin - 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 - rescue - @successful_request_events = [] + behavior_cache do + # This is too slow + #@popular_bodies = PublicBody.find(:all, :select => "*, (select count(*) from info_requests where info_requests.public_body_id = public_bodies.id) as c", :order => "c desc", :limit => 32) + + # Just hardcode some popular authorities for now + # ('tgq', 'atbra' is for debugging on Francis's development environment) + @popular_bodies = PublicBody.find(:all, :conditions => ["url_name in ( + 'bbc', + 'dwp', + 'dh', + 'snh', + 'royal_mail_group', + 'mod', + 'kent_county_council', + 'wirral_borough_council' + /* , 'tgq', 'atbra' */ + )"]).sort_by { |pb| pb.url_name }.reverse # just an order that looks better + + # Get some successful requests # + begin + 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 + rescue + @successful_request_events = [] + end end - - cache_in_squid end # Display WhatDoTheyKnow category from mySociety blog |