Refactor registrars

- Reorganize views
- Improve database structure
- Use default translations
- Combine tests
This commit is contained in:
Artur Beljajev 2019-05-10 13:13:19 +03:00
parent 59e9b16dfa
commit efb63399b2
27 changed files with 287 additions and 353 deletions

View file

@ -58,12 +58,12 @@ module Admin
def registrar_params
params.require(:registrar).permit(:name,
:reg_no,
:street,
:city,
:state,
:zip,
:country_code,
:email,
:address_street,
:address_zip,
:address_city,
:address_state,
:address_country_code,
:phone,
:website,
:code,

View file

@ -13,7 +13,7 @@ class Registrar < ActiveRecord::Base
delegate :balance, to: :cash_account, allow_nil: true
validates :name, :reg_no, :country_code, :email, :code, presence: true
validates :name, :reg_no, :address_country_code, :email, :code, presence: true
validates :name, :code, uniqueness: true
validates :accounting_customer_code, presence: true
validates :language, presence: true
@ -73,11 +73,11 @@ class Registrar < ActiveRecord::Base
buyer: self,
buyer_name: name,
buyer_reg_no: reg_no,
buyer_country_code: country_code,
buyer_state: state,
buyer_street: street,
buyer_city: city,
buyer_zip: zip,
buyer_country_code: address_country_code,
buyer_state: address_state,
buyer_street: address_street,
buyer_city: address_city,
buyer_zip: address_zip,
buyer_phone: phone,
buyer_url: website,
buyer_email: email,
@ -104,7 +104,7 @@ class Registrar < ActiveRecord::Base
end
def address
[street, city, state, zip].reject(&:blank?).compact.join(', ')
[address_street, address_city, address_state, address_zip].reject(&:blank?).compact.join(', ')
end
def to_s
@ -112,7 +112,7 @@ class Registrar < ActiveRecord::Base
end
def country
Country.new(country_code)
Country.new(address_country_code)
end
def code=(code)

View file

@ -59,64 +59,7 @@
</div>
</div>
<div class="row">
<div class="col-md-8">
<div class="panel panel-default">
<div class="panel-heading clearfix">
<div class="pull-left">
<%= t(:address) %>
</div>
</div>
<div class="panel-body">
<div class="form-group">
<div class="col-md-4 control-label">
<%= f.label :street %>
</div>
<div class="col-md-7">
<%= f.text_field(:street, class: 'form-control') %>
</div>
</div>
<div class="form-group">
<div class="col-md-4 control-label">
<%= f.label :city %>
</div>
<div class="col-md-7">
<%= f.text_field(:city, class: 'form-control') %>
</div>
</div>
<div class="form-group">
<div class="col-md-4 control-label">
<%= f.label :state %>
</div>
<div class="col-md-7">
<%= f.text_field(:state, class: 'form-control') %>
</div>
</div>
<div class="form-group">
<div class="col-md-4 control-label">
<%= f.label :zip %>
</div>
<div class="col-md-7">
<%= f.text_field(:zip, class: 'form-control') %>
</div>
</div>
<div class="form-group">
<div class="col-md-4 control-label">
<%= f.label :country_code, t(:country) %>
</div>
<div class="col-md-7">
<%= f.select(:country_code, SortedCountry.all_options(f.object.country_code), {}, class: 'form-control') %>
</div>
</div>
</div>
</div>
</div>
</div>
<%= render 'admin/registrars/form/address', f: f %>
<%= render 'admin/registrars/form/billing', f: f %>
<div class="row">

View file

@ -0,0 +1,59 @@
<div class="row">
<div class="col-md-8">
<div class="panel panel-default">
<div class="panel-heading clearfix">
<div class="pull-left">
<%= t '.header' %>
</div>
</div>
<div class="panel-body">
<div class="form-group">
<div class="col-md-4 control-label">
<%= f.label :street %>
</div>
<div class="col-md-7">
<%= f.text_field :address_street, class: 'form-control' %>
</div>
</div>
<div class="form-group">
<div class="col-md-4 control-label">
<%= f.label :city %>
</div>
<div class="col-md-7">
<%= f.text_field :address_city, class: 'form-control' %>
</div>
</div>
<div class="form-group">
<div class="col-md-4 control-label">
<%= f.label :state %>
</div>
<div class="col-md-7">
<%= f.text_field :address_state, class: 'form-control' %>
</div>
</div>
<div class="form-group">
<div class="col-md-4 control-label">
<%= f.label :zip %>
</div>
<div class="col-md-7">
<%= f.text_field :address_zip, class: 'form-control' %>
</div>
</div>
<div class="form-group">
<div class="col-md-4 control-label">
<%= f.label :address_country_code, t(:country) %>
</div>
<div class="col-md-7">
<%= f.select :address_country_code, SortedCountry.all_options(f.object.address_country_code), {}, class: 'form-control' %>
</div>
</div>
<p class="text-muted"><%= t '.hint' %></p>
</div>
</div>
</div>
</div>

View file

@ -28,23 +28,23 @@
<div class="row">
<div class="col-md-6">
<%= render 'details', registrar: @registrar %>
<%= render 'admin/registrars/show/details', registrar: @registrar %>
</div>
<div class="col-md-6">
<%= render 'contacts', registrar: @registrar %>
<%= render 'billing', registrar: @registrar %>
<%= render 'preferences', registrar: registrar %>
<%= render 'admin/registrars/show/contacts', registrar: @registrar %>
<%= render 'admin/registrars/show/billing', registrar: @registrar %>
<%= render 'admin/registrars/show/preferences', registrar: registrar %>
</div>
</div>
<div class="row">
<div class="col-md-12">
<%= render 'users', registrar: @registrar %>
<%= render 'admin/registrars/show/users', registrar: @registrar %>
</div>
</div>
<div class="row">
<div class="col-md-12">
<%= render 'white_ips', registrar: @registrar %>
<%= render 'admin/registrars/show/white_ips', registrar: @registrar %>
</div>
</div>

View file

@ -21,4 +21,4 @@
<dd><%= registrar.reference_no %></dd>
</dl>
</div>
</div>
</div>

View file

@ -5,17 +5,17 @@
<div class="panel-body">
<dl class="dl-horizontal">
<dt><%= t(:country) %></dt>
<dt><%= Registrar.human_attribute_name :country %></dt>
<dd><%= @registrar.country %></dd>
<dt><%= t(:address) %></dt>
<dt><%= Registrar.human_attribute_name :address %></dt>
<dd><%= @registrar.address %></dd>
<dt><%= t(:contact_phone) %></dt>
<dt><%= Registrar.human_attribute_name :phone %></dt>
<dd><%= @registrar.phone %></dd>
<dt><%= t(:contact_email) %></dt>
<dt><%= Registrar.human_attribute_name :email %></dt>
<dd><%= @registrar.email %></dd>
</dl>
</div>
</div>
</div>

View file

@ -15,7 +15,7 @@
<dd><%= registrar.code %></dd>
<dt><%= Registrar.human_attribute_name :balance %></dt>
<dd><%= registrar.balance %></dd>
<dd><%= number_to_currency registrar.balance %></dd>
<dt><%= Registrar.human_attribute_name :website %></dt>
<dd><%= registrar.website %></dd>

View file

@ -13,7 +13,7 @@
%h3.panel-title= t(:general)
.panel-body
%dl.dl-horizontal
%dt= t(:name)
%dt= Registrar.human_attribute_name :name
%dd= @registrar.name
%dt= Registrar.human_attribute_name :reg_no
@ -22,7 +22,7 @@
%dt= Registrar.human_attribute_name :vat_no
%dd= @registrar.vat_no
%dt= t(:id)
%dt= Registrar.human_attribute_name :code
%dd= @registrar.code
.col-md-6
@ -31,14 +31,14 @@
%h3.panel-title= t(:contact)
.panel-body
%dl.dl-horizontal
%dt= t(:country)
%dt= Registrar.human_attribute_name :country
%dd= @registrar.country
%dt= t(:address)
%dt= Registrar.human_attribute_name :address
%dd= @registrar.address
%dt= t(:contact_phone)
%dt= Registrar.human_attribute_name :phone
%dd= @registrar.phone
%dt= t(:contact_email)
%dt= Registrar.human_attribute_name :email
%dd= @registrar.email