aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Longair <mhl@pobox.com>2013-08-29 14:50:02 +0100
committerMark Longair <mhl@pobox.com>2013-09-10 15:00:05 +0100
commit9692b2069aa32e5663412c714a98192ac5d6e754 (patch)
tree348899a752738694aaccb4fa4c9f8d11c4ff6c0c
parent3fb80a12652792df9da06c22b4bb944ab80bf376 (diff)
Fix locales used to find public bodies in AdminPublicBodyController
The locale returned from locale_from_params may be dash-separated, (the I18n module convention) whereas those in the public_body_translations table are underscore-separated. The AdminPublicBodyController was looking for dash-separated locales in that table, so ensure that dashes are substituted for underscores before using them in a query.
-rw-r--r--app/controllers/admin_public_body_controller.rb5
1 files changed, 3 insertions, 2 deletions
diff --git a/app/controllers/admin_public_body_controller.rb b/app/controllers/admin_public_body_controller.rb
index ec2a08dbc..e0da234b0 100644
--- a/app/controllers/admin_public_body_controller.rb
+++ b/app/controllers/admin_public_body_controller.rb
@@ -14,6 +14,7 @@ class AdminPublicBodyController < AdminController
def _lookup_query_internal
@locale = self.locale_from_params()
+ underscore_locale = @locale.gsub '-', '_'
I18n.with_locale(@locale) do
@query = params[:query]
if @query == ""
@@ -23,10 +24,10 @@ class AdminPublicBodyController < AdminController
if @page == ""
@page = nil
end
- @public_bodies = PublicBody.joins(:translations).where(@query.nil? ? "public_body_translations.locale = '#{@locale}'" :
+ @public_bodies = PublicBody.joins(:translations).where(@query.nil? ? "public_body_translations.locale = '#{underscore_locale}'" :
["(lower(public_body_translations.name) like lower('%'||?||'%') or
lower(public_body_translations.short_name) like lower('%'||?||'%') or
- lower(public_body_translations.request_email) like lower('%'||?||'%' )) AND (public_body_translations.locale = '#{@locale}')", @query, @query, @query]).paginate :order => "public_body_translations.name", :page => @page, :per_page => 100
+ lower(public_body_translations.request_email) like lower('%'||?||'%' )) AND (public_body_translations.locale = '#{underscore_locale}')", @query, @query, @query]).paginate :order => "public_body_translations.name", :page => @page, :per_page => 100
end
@public_bodies_by_tag = PublicBody.find_by_tag(@query)
end