mirror of
https://github.com/internetee/registry.git
synced 2025-05-20 19:29:39 +02:00
Story#115762063 - all contacts are using the same versions logic
This commit is contained in:
parent
779a47c80f
commit
028aa31232
2 changed files with 24 additions and 7 deletions
|
@ -55,4 +55,22 @@ module Versions
|
|||
domains.each(&:touch_with_version)
|
||||
end
|
||||
end
|
||||
|
||||
module ClassMethods
|
||||
def all_versions_for(ids, time)
|
||||
ver_klass = paper_trail_version_class
|
||||
from_history = ver_klass.where(item_id: ids).
|
||||
order(:item_id).
|
||||
preceding(time + 1, true).
|
||||
select("distinct on (item_id) #{ver_klass.table_name}.*").
|
||||
map do |ver|
|
||||
o = new(ver.object)
|
||||
ver.object_changes.to_h.each { |k, v| o[k]=v[-1] }
|
||||
o
|
||||
end
|
||||
not_in_history = where(id: (ids - from_history.map(&:id)))
|
||||
|
||||
from_history + not_in_history
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -6,11 +6,10 @@
|
|||
- if domain.present?
|
||||
- if version # normal history
|
||||
- children = HashWithIndifferentAccess.new(version.children)
|
||||
- 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 }
|
||||
-#- nameservers = children[:nameservers].map{|id| Nameserver.new(id: id).safe_version_at(version.created_at)}
|
||||
- tech_contacts = Contact.where(id: children[:tech_contacts]).map{|o| o.safe_version_at(version.created_at)}
|
||||
- admin_contacts = Contact.where(id: children[:admin_contacts]).map{|o| o.safe_version_at(version.created_at)}
|
||||
- registrant = Contact.where(id: children[:registrant]).map{|o| o.safe_version_at(version.created_at)}
|
||||
- nameservers = Nameserver.all_versions_for(children[:nameservers], version.created_at)
|
||||
- tech_contacts = Contact.all_versions_for(children[:tech_contacts], version.created_at)
|
||||
- admin_contacts = Contact.all_versions_for(children[:admin_contacts], version.created_at)
|
||||
- registrant = Contact.all_versions_for(children[:registrant], version.created_at)
|
||||
- event = version.event
|
||||
- creator = plain_username(version.terminator)
|
||||
- else # pending history
|
||||
|
@ -87,8 +86,8 @@
|
|||
- Array(nameservers).each do |ns|
|
||||
= ns[:hostname]
|
||||
%br
|
||||
= ns[:ipv4]
|
||||
= ns[:ipv6]
|
||||
= ns[:ipv4].presence
|
||||
= ns[:ipv6].presence
|
||||
%br
|
||||
|
||||
%td
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue