From 6792700d11127fb48b77734b74bc4763dd7b1a9b Mon Sep 17 00:00:00 2001 From: Priit Tark Date: Wed, 9 Sep 2015 18:54:56 +0300 Subject: [PATCH 1/2] Update contact link status for new domain #2907 --- app/models/domain.rb | 3 ++- app/models/domain_contact.rb | 2 +- app/models/epp/domain.rb | 13 +++++++++++-- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/app/models/domain.rb b/app/models/domain.rb index 3a7b401a9..683592e0d 100644 --- a/app/models/domain.rb +++ b/app/models/domain.rb @@ -10,12 +10,13 @@ class Domain < ActiveRecord::Base belongs_to :registrar belongs_to :registrant - has_many :domain_contacts, dependent: :destroy has_many :admin_domain_contacts accepts_nested_attributes_for :admin_domain_contacts, allow_destroy: true has_many :tech_domain_contacts accepts_nested_attributes_for :tech_domain_contacts, allow_destroy: true + # NB! contacts, admin_contacts, tech_contacts are empty for a new record + has_many :domain_contacts, dependent: :destroy has_many :contacts, through: :domain_contacts, source: :contact has_many :admin_contacts, through: :admin_domain_contacts, source: :contact has_many :tech_contacts, through: :tech_domain_contacts, source: :contact diff --git a/app/models/domain_contact.rb b/app/models/domain_contact.rb index 097681f2c..b433cd3dc 100644 --- a/app/models/domain_contact.rb +++ b/app/models/domain_contact.rb @@ -17,7 +17,7 @@ class DomainContact < ActiveRecord::Base end def name - return 'Tech' if type == 'TechDomainContact' + return 'Tech' if type == 'TechDomainContact' return 'Admin' if type == 'AdminDomainContact' '' end diff --git a/app/models/epp/domain.rb b/app/models/epp/domain.rb index 83a62d1e9..0c8116bf0 100644 --- a/app/models/epp/domain.rb +++ b/app/models/epp/domain.rb @@ -19,7 +19,16 @@ class Epp::Domain < Domain before_save :link_contacts def link_contacts # Based on bullet report - unlinked_contacts = contacts.select { |c| !c.linked? } # speed up a bit + if new_record? + # new record does not have correct instance contacts entries thanks to epp + unlinked_contacts = [registrant] + unlinked_contacts << admin_domain_contacts.map(&:contact) + unlinked_contacts << tech_domain_contacts.map(&:contact) + unlinked_contacts.flatten! + else + unlinked_contacts = contacts.select { |c| !c.linked? } # speed up a bit + end + unlinked_contacts.each do |uc| uc.domains_present = true # no need to fetch domains again uc.save(validate: false) @@ -114,7 +123,7 @@ class Epp::Domain < Domain def attach_default_contacts return if registrant.blank? regt = Registrant.find(registrant.id) # temp for bullet - tech_contacts << regt if tech_domain_contacts.blank? + tech_contacts << regt if tech_domain_contacts.blank? admin_contacts << regt if admin_domain_contacts.blank? && regt.priv? end From 180c159ed42de969595679190cec5ca2e2ddc677 Mon Sep 17 00:00:00 2001 From: Priit Tark Date: Thu, 10 Sep 2015 10:39:42 +0300 Subject: [PATCH 2/2] rubocop update --- app/models/epp/domain.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/epp/domain.rb b/app/models/epp/domain.rb index 9df18afc9..27c88cd59 100644 --- a/app/models/epp/domain.rb +++ b/app/models/epp/domain.rb @@ -123,7 +123,7 @@ class Epp::Domain < Domain def attach_default_contacts return if registrant.blank? regt = Registrant.find(registrant.id) # temp for bullet - tech_contacts << regt if tech_domain_contacts.blank? + tech_contacts << regt if tech_domain_contacts.blank? admin_contacts << regt if admin_domain_contacts.blank? && regt.priv? end