aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/controllers/application_controller.rb5
-rw-r--r--app/controllers/general_controller.rb4
-rw-r--r--app/controllers/request_controller.rb12
-rw-r--r--app/views/request/list.rhtml22
4 files changed, 27 insertions, 16 deletions
diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb
index 959caf7ef..41108ad19 100644
--- a/app/controllers/application_controller.rb
+++ b/app/controllers/application_controller.rb
@@ -251,12 +251,15 @@ class ApplicationController < ActionController::Base
# Peform the search
@per_page = per_page
if this_page.nil?
- @page = (params[:page] || "1").to_i
+ @page = get_search_page_from_params
else
@page = this_page
end
return InfoRequest.full_search(models, @query, order, ascending, collapse, @per_page, @page)
end
+ def get_search_page_from_params
+ return (params[:page] || "1").to_i
+ end
# Store last visited pages, for contact form
def set_last_request(info_request)
diff --git a/app/controllers/general_controller.rb b/app/controllers/general_controller.rb
index 7cde689c1..00fcb6bf5 100644
--- a/app/controllers/general_controller.rb
+++ b/app/controllers/general_controller.rb
@@ -37,8 +37,8 @@ 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] }
+ 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 = []
diff --git a/app/controllers/request_controller.rb b/app/controllers/request_controller.rb
index f56d391a3..4588ef369 100644
--- a/app/controllers/request_controller.rb
+++ b/app/controllers/request_controller.rb
@@ -119,7 +119,15 @@ class RequestController < ApplicationController
else
raise "unknown request list view " + @view.to_s
end
- @xapian_object = perform_search([InfoRequestEvent], query, sortby, 'request_collapse')
+
+ #behavior_cache do
+ xapian_object = perform_search([InfoRequestEvent], query, sortby, 'request_collapse')
+ @list_results = xapian_object.results.map { |r| r[:model] }
+ @matches_estimated = xapian_object.matches_estimated
+
+ #end
+ #@page = get_search_page_from_params if !@page # used in cache case, as perform_search sets @page as side effect
+
@title = @title + " (page " + @page.to_s + ")" if (@page > 1)
@feed_autodetect = [ { :url => do_track_url(@track_thing, 'feed'), :title => @track_thing.params[:title_in_rss] } ]
@@ -128,8 +136,6 @@ class RequestController < ApplicationController
if @page > 20
@no_crawl = true
end
-
- cache_in_squid
end
# Page new form posts to
diff --git a/app/views/request/list.rhtml b/app/views/request/list.rhtml
index 8a98e4848..b059058cf 100644
--- a/app/views/request/list.rhtml
+++ b/app/views/request/list.rhtml
@@ -18,19 +18,21 @@
<%= render :partial => 'track/tracking_links', :locals => { :track_thing => @track_thing, :own_request => false, :location => 'main' } %>
<% end %>
-<% if @xapian_object.results.empty? %>
- <p>No requests of this sort yet.</p>
-<% else %>
- <% for result in @xapian_object.results %>
- <% if result[:model].class.to_s == 'InfoRequestEvent' %>
- <%= render :partial => 'request/request_listing_via_event', :locals => { :event => result[:model], :info_request => result[:model].info_request } %>
- <% else %>
- <p><strong>Unexpected search result type <%=result[:model].class.to_s%></strong></p>
+<% # view_cache :ttl => 5.minutes do %>
+ <% if @list_results.empty? %>
+ <p>No requests of this sort yet.</p>
+ <% else %>
+ <% for result in @list_results%>
+ <% if result.class.to_s == 'InfoRequestEvent' %>
+ <%= render :partial => 'request/request_listing_via_event', :locals => { :event => result, :info_request => result.info_request } %>
+ <% else %>
+ <p><strong>Unexpected search result type <%=result.class.to_s%></strong></p>
+ <% end %>
<% end %>
<% end %>
-<% end %>
-<%= will_paginate WillPaginate::Collection.new(@page, @per_page, @xapian_object.matches_estimated) %>
+ <%= will_paginate WillPaginate::Collection.new(@page, @per_page, @matches_estimated) %>
+<% # end %>
<% if @track_thing %>
<p></p>