From b48df57d9243336d4b96e29c5587137eff3a3c67 Mon Sep 17 00:00:00 2001 From: David Cabo Date: Fri, 23 Sep 2011 02:50:41 +0200 Subject: Remove invalid collate argument for public body searches The existing bug wasn't catched by the tests, because it only fails when running in dev: otherwise all the classes are loaded before the search is done, and acts_as_xapian can find the provided 'request_collapse' argument, even if the PublicBody class doesn't define it, since all the init options end up together in acts_as_xapian. --- app/controllers/public_body_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app/controllers/public_body_controller.rb') diff --git a/app/controllers/public_body_controller.rb b/app/controllers/public_body_controller.rb index e4f8753af..28c826145 100644 --- a/app/controllers/public_body_controller.rb +++ b/app/controllers/public_body_controller.rb @@ -187,7 +187,7 @@ class PublicBodyController < ApplicationController query = params[:q] + '*' query = query.split(' ').join(' OR ') # XXX: HACK for OR instead of default AND! - @xapian_requests = perform_search([PublicBody], query, 'relevant', 'request_collapse', 5) + @xapian_requests = perform_search([PublicBody], query, 'relevant', nil, 5) render :partial => "public_body/search_ahead" end -- cgit v1.2.3 From 4a9fc81290b9363b2ecad4c05e77cfb1c7b49096 Mon Sep 17 00:00:00 2001 From: David Cabo Date: Sun, 25 Sep 2011 17:54:20 +0200 Subject: Handle localized urls when showing public body email. Fixes #195 --- app/controllers/public_body_controller.rb | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'app/controllers/public_body_controller.rb') diff --git a/app/controllers/public_body_controller.rb b/app/controllers/public_body_controller.rb index 28c826145..a6536eee1 100644 --- a/app/controllers/public_body_controller.rb +++ b/app/controllers/public_body_controller.rb @@ -69,8 +69,12 @@ class PublicBodyController < ApplicationController end def view_email - @public_bodies = PublicBody.find(:all, :conditions => [ "url_name = ?", params[:url_name] ]) - @public_body = @public_bodies[0] + @public_body = PublicBody.find_by_url_name_with_historic(params[:url_name]) + if @public_body.nil? + render :template => 'public/404.html' + return + end + PublicBody.with_locale(self.locale_from_params()) do if params[:submitted_view_email] if verify_recaptcha -- cgit v1.2.3 From d95fc384afd82a0ebeb7e4578ab738798bcea204 Mon Sep 17 00:00:00 2001 From: David Cabo Date: Sun, 25 Sep 2011 17:58:06 +0200 Subject: Show 404 instead of error page when body can't be found. Fixes #196 --- app/controllers/public_body_controller.rb | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'app/controllers/public_body_controller.rb') diff --git a/app/controllers/public_body_controller.rb b/app/controllers/public_body_controller.rb index a6536eee1..ac75da068 100644 --- a/app/controllers/public_body_controller.rb +++ b/app/controllers/public_body_controller.rb @@ -19,7 +19,10 @@ class PublicBodyController < ApplicationController @locale = self.locale_from_params() PublicBody.with_locale(@locale) do @public_body = PublicBody.find_by_url_name_with_historic(params[:url_name]) - raise ActiveRecord::RecordNotFound.new("None found") if @public_body.nil? # XXX proper 404 + if @public_body.nil? + render :template => 'public/404.html' + return + end if @public_body.url_name.nil? redirect_to :back return -- cgit v1.2.3 From da6cb921342fdd57d5a7dee6a3beaa1dc2d543f2 Mon Sep 17 00:00:00 2001 From: David Cabo Date: Mon, 26 Sep 2011 13:12:15 +0200 Subject: Throw exception if body not found, 404 are handled on the ApplicationController --- app/controllers/public_body_controller.rb | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) (limited to 'app/controllers/public_body_controller.rb') diff --git a/app/controllers/public_body_controller.rb b/app/controllers/public_body_controller.rb index ac75da068..251ab5efe 100644 --- a/app/controllers/public_body_controller.rb +++ b/app/controllers/public_body_controller.rb @@ -19,10 +19,7 @@ class PublicBodyController < ApplicationController @locale = self.locale_from_params() PublicBody.with_locale(@locale) do @public_body = PublicBody.find_by_url_name_with_historic(params[:url_name]) - if @public_body.nil? - render :template => 'public/404.html' - return - end + raise ActiveRecord::RecordNotFound.new("None found") if @public_body.nil? if @public_body.url_name.nil? redirect_to :back return @@ -73,11 +70,8 @@ class PublicBodyController < ApplicationController def view_email @public_body = PublicBody.find_by_url_name_with_historic(params[:url_name]) - if @public_body.nil? - render :template => 'public/404.html' - return - end - + raise ActiveRecord::RecordNotFound.new("None found") if @public_body.nil? + PublicBody.with_locale(self.locale_from_params()) do if params[:submitted_view_email] if verify_recaptcha -- cgit v1.2.3