aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/models/public_body.rb31
-rw-r--r--spec/models/public_body_spec.rb12
2 files changed, 28 insertions, 15 deletions
diff --git a/app/models/public_body.rb b/app/models/public_body.rb
index 36ea29dd5..b35c56018 100644
--- a/app/models/public_body.rb
+++ b/app/models/public_body.rb
@@ -309,22 +309,23 @@ class PublicBody < ActiveRecord::Base
# The "internal admin" is a special body for internal use.
def PublicBody.internal_admin_body
- pb = PublicBody.find_by_url_name("internal_admin_authority")
- if pb.nil?
- pb = PublicBody.new(
- :name => 'Internal admin authority',
- :short_name => "",
- :request_email => MySociety::Config.get("CONTACT_EMAIL", 'contact@localhost'),
- :home_page => "",
- :notes => "",
- :publication_scheme => "",
- :last_edit_editor => "internal_admin",
- :last_edit_comment => "Made by PublicBody.internal_admin_body"
- )
- pb.save!
+ PublicBody.with_locale(I18n.default_locale) do
+ pb = PublicBody.find_by_url_name("internal_admin_authority")
+ if pb.nil?
+ pb = PublicBody.new(
+ :name => 'Internal admin authority',
+ :short_name => "",
+ :request_email => MySociety::Config.get("CONTACT_EMAIL", 'contact@localhost'),
+ :home_page => "",
+ :notes => "",
+ :publication_scheme => "",
+ :last_edit_editor => "internal_admin",
+ :last_edit_comment => "Made by PublicBody.internal_admin_body"
+ )
+ pb.save!
+ end
+ return pb
end
-
- return pb
end
diff --git a/spec/models/public_body_spec.rb b/spec/models/public_body_spec.rb
index 09edb395f..07e8f291d 100644
--- a/spec/models/public_body_spec.rb
+++ b/spec/models/public_body_spec.rb
@@ -226,6 +226,18 @@ describe PublicBody, "when searching" do
end
end
+describe PublicBody, " when dealing public body locales" do
+ it "shouldn't fail if it internal_admin_body was created in a locale other than the default" do
+ # first time, do it with the non-default locale
+ PublicBody.with_locale(:es) do
+ PublicBody.internal_admin_body
+ end
+
+ # second time
+ lambda {PublicBody.internal_admin_body }.should_not raise_error(ActiveRecord::RecordInvalid)
+ end
+end
+
describe PublicBody, " when loading CSV files" do
before(:each) do
# InternalBody is created the first time it's accessed, which happens sometimes during imports,