Honor legacy contact codes

This commit is contained in:
Priit Tark 2015-05-04 13:43:11 +03:00
parent 8b22c58eec
commit 834d638423
6 changed files with 74 additions and 47 deletions

View file

@ -51,12 +51,15 @@ class Epp::Contact < Contact
def new(frame, registrar)
return super if frame.blank?
custom_code =
if frame.css('id').text.present?
"#{registrar.code}:#{frame.css('id').text.parameterize}"
else
nil
custom_code = frame.css('id').text
# add prefix when needed
if custom_code.present?
prefix, custom = custom_code.split(':')
if prefix != registrar.code && custom != registrar.code
custom_code = "#{registrar.code}:#{custom_code}"
end
end
super(
attrs_from(frame).merge(

View file

@ -13,8 +13,7 @@ class Registrar < ActiveRecord::Base
belongs_to :country_deprecated, foreign_key: :country_id
validates :name, :reg_no, :country_code, :email, :code, presence: true
validates :name, :reg_no, :reference_no, uniqueness: true
validate :set_code, if: :new_record?
validates :name, :reg_no, :reference_no, :code, uniqueness: true
before_validation :generate_iso_11649_reference_no
def generate_iso_11649_reference_no
@ -141,24 +140,4 @@ class Registrar < ActiveRecord::Base
def code=(code)
self[:code] = code.upcase if new_record? && code.present?
end
def contact_prefix
"CID:#{code}:"
end
private
def set_code
return false if name.blank?
new_code = name.parameterize
# ensure code is always uniq automatically for a new record
seq = 1
while self.class.find_by_code(new_code)
new_code += seq.to_s
seq += 1
end
self.code = new_code
end
end

View file

@ -81,7 +81,7 @@
.col-md-4.control-label
= f.label :code
.col-md-7
= f.text_field(:code, class: 'form-control')
= f.text_field(:code, class: 'form-control', disabled: !f.object.new_record?)
%hr
.row