diff --git a/app/controllers/admin/contact_versions_controller.rb b/app/controllers/admin/contact_versions_controller.rb index d066f698e..e64a86774 100644 --- a/app/controllers/admin/contact_versions_controller.rb +++ b/app/controllers/admin/contact_versions_controller.rb @@ -1,5 +1,7 @@ module Admin class ContactVersionsController < BaseController + include ObjectVersionsHelper + load_and_authorize_resource def index diff --git a/app/helpers/object_versions_helper.rb b/app/helpers/object_versions_helper.rb new file mode 100644 index 000000000..c8b2d8de9 --- /dev/null +++ b/app/helpers/object_versions_helper.rb @@ -0,0 +1,10 @@ +module ObjectVersionsHelper + def attach_existing_fields(version, new_object) + version.object_changes.to_h.each do |k, v| + method_name = "#{k}=".to_sym + if new_object.respond_to?(method_name) + new_object.public_send(method_name, v.last) + end + end + end +end diff --git a/app/views/admin/domain_versions/archive.haml b/app/views/admin/domain_versions/archive.haml index 4137064a2..3f5258653 100644 --- a/app/views/admin/domain_versions/archive.haml +++ b/app/views/admin/domain_versions/archive.haml @@ -56,10 +56,7 @@ - @versions.each do |version| - if version - domain = Domain.new(version.object.to_h) - - version.object_changes.to_h.each do |k, v| - - method_name = "#{k}=".to_sym - - if domain.respond_to?(method_name) - - domain.public_send("#{k}=", v.last) + - attach_existing_fields(version, domain) %tr %td= link_to(domain.name, admin_domain_version_path(version.id)) diff --git a/app/views/admin/domain_versions/show.haml b/app/views/admin/domain_versions/show.haml index 9071feafb..3cce3e14c 100644 --- a/app/views/admin/domain_versions/show.haml +++ b/app/views/admin/domain_versions/show.haml @@ -1,8 +1,5 @@ - domain = Domain.new(@version.object.to_h) -- @version.object_changes.to_h.each do |k, v| - - method_name = "#{k}=".to_sym - - if domain.respond_to?(method_name) - - domain.public_send("#{k}=", v.last) +- attach_existing_fields(@version, domain) - if @version - children = HashWithIndifferentAccess.new(@version.children)