Story#105842700 - found some way how to load historical objects. Data will be extracted

This commit is contained in:
Vladimir Krylov 2016-03-22 11:43:24 +02:00
parent 71e3db611b
commit 779a47c80f
2 changed files with 39 additions and 51 deletions

View file

@ -1,18 +1,8 @@
class Admin::DomainVersionsController < AdminController class Admin::DomainVersionsController < AdminController
load_and_authorize_resource load_and_authorize_resource
# rubocop:disable Style/GuardClause
def index def index
@domain = Domain.where(id: params[:domain_id]).includes({versions: :item}).first @domain = Domain.where(id: params[:domain_id]).includes(versions: :item).first
@versions = @domain.versions @versions = @domain.versions
# Depricated it had to load legal document. We may do it by parsing and adding link.
# if @domain.pending_json.present?
# frame = Nokogiri::XML(@domain.pending_json['frame'])
# @pending_user = User.find(@domain.pending_json['current_user_id'])
# @pending_domain = Epp::Domain.find(@domain.id)
# @pending_domain.update(frame, @pending_user, false)
# end
end end
# rubocop:enable Style/GuardClause
end end

View file

@ -5,20 +5,21 @@
- if domain.present? - if domain.present?
- if version # normal history - if version # normal history
- children = HashWithIndifferentAccess.new(version.children) - children = HashWithIndifferentAccess.new(version.children)
- nameservers = Nameserver.where(id: children[:nameservers]) - nameservers = NameserverVersion.where(item_id: children[:nameservers]).order(:item_id).preceding(version.created_at + 1, true).select("distinct on (item_id) #{NameserverVersion.table_name}.*").map{|ver| o=Nameserver.new(ver.object); ver.object_changes.to_h.each{|k,v| o[k]=v[-1] };o }
- tech_contacts = Contact.where(id: children[:tech_contacts]) -#- nameservers = children[:nameservers].map{|id| Nameserver.new(id: id).safe_version_at(version.created_at)}
- admin_contacts = Contact.where(id: children[:admin_contacts]) - tech_contacts = Contact.where(id: children[:tech_contacts]).map{|o| o.safe_version_at(version.created_at)}
- registrant = Contact.where(id: children[:registrant]) - admin_contacts = Contact.where(id: children[:admin_contacts]).map{|o| o.safe_version_at(version.created_at)}
- event = version.event - registrant = Contact.where(id: children[:registrant]).map{|o| o.safe_version_at(version.created_at)}
- creator = plain_username(version.terminator) - event = version.event
- creator = plain_username(version.terminator)
- else # pending history - else # pending history
- nameservers = domain.nameservers - nameservers = domain.nameservers
- tech_contacts = domain.tech_contacts - tech_contacts = domain.tech_contacts
- admin_contacts = domain.admin_contacts - admin_contacts = domain.admin_contacts
- registrant = [domain.registrant] - registrant = [domain.registrant]
- creator = pending_user.try(:username) - creator = pending_user.try(:username)
- event = 'pending' - event = 'pending'
%td %td
%p.nowrap %p.nowrap
@ -55,43 +56,40 @@
= "#{l(domain.valid_to, format: :date)}" = "#{l(domain.valid_to, format: :date)}"
%td %td
- if registrant - Array(registrant).each do |r|
- registrant.each do |r| %p
%p = r[:name]
= r[:name] = r[:phone]
= r[:phone] = r[:email]
= r[:email] %p
%p = r[:code]
= r[:code]
%td %td
- if admin_contacts - Array(admin_contacts).each do |ac|
- admin_contacts.each do |ac| %p
%p = ac[:name]
= ac[:name] = ac[:phone]
= ac[:phone] = ac[:email]
= ac[:email] %p
%p = ac[:code]
= ac[:code]
%td %td
- if tech_contacts - Array(tech_contacts).each do |tc|
- tech_contacts.each do |tc| %p
%p = tc[:name]
= tc[:name] = tc[:phone]
= tc[:phone] = tc[:email]
= tc[:email] %p
%p = tc[:code]
= tc[:code]
%td %td
%p %p
- if nameservers - Array(nameservers).each do |ns|
- nameservers.each do |ns| = ns[:hostname]
= ns[:hostname] %br
%br = ns[:ipv4]
= ns[:ipv4] = ns[:ipv6]
= ns[:ipv6] %br
%td %td
%p %p