aboutsummaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/controllers/public_body_controller.rb10
-rw-r--r--app/helpers/public_body_helper.rb7
2 files changed, 13 insertions, 4 deletions
diff --git a/app/controllers/public_body_controller.rb b/app/controllers/public_body_controller.rb
index cc3d0b64a..854e79a19 100644
--- a/app/controllers/public_body_controller.rb
+++ b/app/controllers/public_body_controller.rb
@@ -9,9 +9,17 @@ require 'confidence_intervals'
require 'tempfile'
class PublicBodyController < ApplicationController
+
+ MAX_RESULTS = 500
# TODO: tidy this up with better error messages, and a more standard infrastructure for the redirect to canonical URL
def show
long_cache
+ @page = get_search_page_from_params
+ requests_per_page = 25
+ # Later pages are very expensive to load
+ if @page > MAX_RESULTS / requests_per_page
+ raise ActiveRecord::RecordNotFound.new("Sorry. No pages after #{MAX_RESULTS / requests_per_page}.")
+ end
if MySociety::Format.simplify_url_part(params[:url_name], 'body') != params[:url_name]
redirect_to :url_name => MySociety::Format.simplify_url_part(params[:url_name], 'body'), :status => :moved_permanently
return
@@ -45,7 +53,7 @@ class PublicBodyController < ApplicationController
# TODO: really should just use SQL query here rather than Xapian.
sortby = "described"
begin
- @xapian_requests = perform_search([InfoRequestEvent], query, sortby, 'request_collapse')
+ @xapian_requests = perform_search([InfoRequestEvent], query, sortby, 'request_collapse', requests_per_page)
if (@page > 1)
@page_desc = " (page " + @page.to_s + ")"
else
diff --git a/app/helpers/public_body_helper.rb b/app/helpers/public_body_helper.rb
index 332e93284..57c90a9ba 100644
--- a/app/helpers/public_body_helper.rb
+++ b/app/helpers/public_body_helper.rb
@@ -38,12 +38,13 @@ module PublicBodyHelper
#
# Returns a string
def type_of_authority(public_body)
- types = public_body.tags.each_with_index.map do |tag, index|
+ first = true
+ types = public_body.tags.each.map do |tag|
if PublicBodyCategory.get().by_tag().include?(tag.name)
desc = PublicBodyCategory.get().singular_by_tag()[tag.name]
-
- if index.zero?
+ if first
desc = desc.sub(/\S/) { |m| Unicode.upcase(m) }
+ first = false
end
link_to(desc, list_public_bodies_path(tag.name))
end