diff options
author | Mark Longair <mhl@pobox.com> | 2013-08-29 14:50:02 +0100 |
---|---|---|
committer | Mark Longair <mhl@pobox.com> | 2013-09-10 15:00:05 +0100 |
commit | 9692b2069aa32e5663412c714a98192ac5d6e754 (patch) | |
tree | 348899a752738694aaccb4fa4c9f8d11c4ff6c0c | |
parent | 3fb80a12652792df9da06c22b4bb944ab80bf376 (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.rb | 5 |
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 |