Add registrar language

#640
This commit is contained in:
Artur Beljajev 2017-11-23 07:09:16 +02:00
parent 92f33ad4d8
commit 77b24fdbd1
7 changed files with 54 additions and 1 deletions

View file

@ -78,7 +78,8 @@ module Admin
:billing_email, :billing_email,
:code, :code,
:test_registrar, :test_registrar,
:accounting_customer_code) :accounting_customer_code,
:language)
end end
end end
end end

View file

@ -16,8 +16,11 @@ class Registrar < ActiveRecord::Base
validates :name, :reg_no, :country_code, :email, :code, presence: true validates :name, :reg_no, :country_code, :email, :code, presence: true
validates :name, :reg_no, :reference_no, :code, uniqueness: true validates :name, :reg_no, :reference_no, :code, uniqueness: true
validates :accounting_customer_code, presence: true validates :accounting_customer_code, presence: true
validates :language, presence: true
validate :forbidden_codes validate :forbidden_codes
after_initialize :set_defaults
def forbidden_codes def forbidden_codes
return true unless ['CID'].include? code return true unless ['CID'].include? code
errors.add(:code, I18n.t(:forbidden_code)) errors.add(:code, I18n.t(:forbidden_code))
@ -163,4 +166,10 @@ class Registrar < ActiveRecord::Base
return true unless Setting.api_ip_whitelist_enabled return true unless Setting.api_ip_whitelist_enabled
white_ips.api.pluck(:ipv4, :ipv6).flatten.include?(ip) white_ips.api.pluck(:ipv4, :ipv6).flatten.include?(ip)
end end
private
def set_defaults
self.language = Setting.default_language unless language
end
end end

View file

@ -149,6 +149,7 @@
</div> </div>
</div> </div>
</div> </div>
<%= render 'admin/registrars/form/preferences', f: f %>
<hr/> <hr/>
<div class="row"> <div class="row">
<div class="col-md-8 text-right"> <div class="col-md-8 text-right">

View file

@ -0,0 +1,20 @@
<div class="row">
<div class="col-md-8">
<div class="panel panel-default">
<div class="panel-heading">
<%= t '.header' %>
</div>
<div class="panel-body">
<div class="form-group">
<div class="col-md-4 control-label">
<%= f.label :language %>
</div>
<div class="col-md-7">
<%= f.language_select :language, nil, {}, required: true, class: 'form-control' %>
</div>
</div>
</div>
</div>
</div>
</div>

View file

@ -24,3 +24,6 @@ en:
billing: billing:
header: Billing header: Billing
preferences:
header: Preferences

View file

@ -5,6 +5,7 @@ DEFAULTS: &DEFAULTS
email: acme@example.com email: acme@example.com
code: 1234 code: 1234
accounting_customer_code: ACCOUNT001 accounting_customer_code: ACCOUNT001
language: en
valid: valid:
<<: *DEFAULTS <<: *DEFAULTS

View file

@ -20,4 +20,22 @@ class RegistrarTest < ActiveSupport::TestCase
@registrar.validate @registrar.validate
assert @registrar.invalid? assert @registrar.invalid?
end end
def test_requires_language
@registrar.language = nil
@registrar.validate
assert @registrar.invalid?
end
def test_has_default_language
Setting.default_language = 'en'
registrar = Registrar.new
assert_equal 'en', registrar.language
end
def test_overrides_default_language
Setting.default_language = 'en'
registrar = Registrar.new(language: 'de')
assert_equal 'de', registrar.language
end
end end