Commit cb16e304d333aa1d7ff93b4197df7231e815a230
1 parent
407767bb
Exists in
master
and in
22 other branches
[language-selection] Making languages only save the language abbreviation
Showing
2 changed files
with
13 additions
and
13 deletions
Show diff stats
app/models/environment.rb
@@ -777,7 +777,11 @@ class Environment < ActiveRecord::Base | @@ -777,7 +777,11 @@ class Environment < ActiveRecord::Base | ||
777 | validate :languages_available | 777 | validate :languages_available |
778 | 778 | ||
779 | def locales | 779 | def locales |
780 | - languages || Noosfero.locales | 780 | + if languages.present? |
781 | + languages.inject({}) {|r, l| r.merge({l => Noosfero.locales[l]})} | ||
782 | + else | ||
783 | + Noosfero.locales | ||
784 | + end | ||
781 | end | 785 | end |
782 | 786 | ||
783 | def default_locale | 787 | def default_locale |
@@ -803,8 +807,8 @@ class Environment < ActiveRecord::Base | @@ -803,8 +807,8 @@ class Environment < ActiveRecord::Base | ||
803 | 807 | ||
804 | def languages_available | 808 | def languages_available |
805 | if languages.present? | 809 | if languages.present? |
806 | - languages.each do |key, value| | ||
807 | - if Noosfero.locales[key] != value | 810 | + languages.each do |language| |
811 | + if !Noosfero.available_locales.include?(language) | ||
808 | errors.add(:languages, _('have unsupported languages.')) | 812 | errors.add(:languages, _('have unsupported languages.')) |
809 | break | 813 | break |
810 | end | 814 | end |
test/unit/environment_test.rb
@@ -1246,17 +1246,12 @@ class EnvironmentTest < ActiveSupport::TestCase | @@ -1246,17 +1246,12 @@ class EnvironmentTest < ActiveSupport::TestCase | ||
1246 | 1246 | ||
1247 | should 'allow only languages there are defined in locales' do | 1247 | should 'allow only languages there are defined in locales' do |
1248 | environment = Environment.default | 1248 | environment = Environment.default |
1249 | - Noosfero.stubs(:locales).returns({'en' => 'English'}) | ||
1250 | 1249 | ||
1251 | - environment.languages = {'pt' => 'Português'} | 1250 | + environment.languages = ['zz'] |
1252 | environment.valid? | 1251 | environment.valid? |
1253 | assert environment.errors.invalid?(:languages) | 1252 | assert environment.errors.invalid?(:languages) |
1254 | 1253 | ||
1255 | - environment.languages = {'en' => 'Bli blo'} | ||
1256 | - environment.valid? | ||
1257 | - assert environment.errors.invalid?(:languages) | ||
1258 | - | ||
1259 | - environment.languages = {'en' => 'English'} | 1254 | + environment.languages = ['en'] |
1260 | environment.valid? | 1255 | environment.valid? |
1261 | assert !environment.errors.invalid?(:languages) | 1256 | assert !environment.errors.invalid?(:languages) |
1262 | end | 1257 | end |
@@ -1267,9 +1262,10 @@ class EnvironmentTest < ActiveSupport::TestCase | @@ -1267,9 +1262,10 @@ class EnvironmentTest < ActiveSupport::TestCase | ||
1267 | environment.save! | 1262 | environment.save! |
1268 | assert_equal Noosfero.locales, environment.locales | 1263 | assert_equal Noosfero.locales, environment.locales |
1269 | 1264 | ||
1270 | - environment.languages = {'en' => 'English'} | 1265 | + environment.languages = ['en'] |
1271 | environment.save! | 1266 | environment.save! |
1272 | - assert_equal environment.languages, environment.locales | 1267 | + hash = {'en' => 'English'} |
1268 | + assert_equal hash, environment.locales | ||
1273 | end | 1269 | end |
1274 | 1270 | ||
1275 | should 'define available_locales or use the config available_locales' do | 1271 | should 'define available_locales or use the config available_locales' do |
@@ -1278,7 +1274,7 @@ class EnvironmentTest < ActiveSupport::TestCase | @@ -1278,7 +1274,7 @@ class EnvironmentTest < ActiveSupport::TestCase | ||
1278 | environment.save! | 1274 | environment.save! |
1279 | assert_equal Noosfero.available_locales, environment.available_locales | 1275 | assert_equal Noosfero.available_locales, environment.available_locales |
1280 | 1276 | ||
1281 | - environment.languages = {'pt' => 'Português', 'en' => 'English'} | 1277 | + environment.languages = ['pt', 'en'] |
1282 | environment.save! | 1278 | environment.save! |
1283 | assert_equal ['en', 'pt'], environment.available_locales | 1279 | assert_equal ['en', 'pt'], environment.available_locales |
1284 | end | 1280 | end |