From 07d6805aa60ce1c493dbfbe4e819f018ed4234c3 Mon Sep 17 00:00:00 2001 From: Stas Date: Tue, 19 Jan 2016 16:51:19 +0200 Subject: [PATCH] 111864739-legal_doc_for_pt --- app/models/domain.rb | 3 +++ app/models/epp/domain.rb | 1 + lib/tasks/documents.rake | 41 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 45 insertions(+) create mode 100644 lib/tasks/documents.rake diff --git a/app/models/domain.rb b/app/models/domain.rb index e4882473a..8f2010a5e 100644 --- a/app/models/domain.rb +++ b/app/models/domain.rb @@ -7,6 +7,8 @@ class Domain < ActiveRecord::Base attr_accessor :roles + attr_accessor :legal_document_id + # TODO: whois requests ip whitelist for full info for own domains and partial info for other domains # TODO: most inputs should be trimmed before validatation, probably some global logic? @@ -821,6 +823,7 @@ class Domain < ActiveRecord::Base log[:admin_contacts] = admin_contact_ids log[:tech_contacts] = tech_contact_ids log[:nameservers] = nameserver_ids + log[:legal_documents]= [legal_document_id] log[:registrant] = [registrant_id] log[:domain_statuses] = domain_status_ids log diff --git a/app/models/epp/domain.rb b/app/models/epp/domain.rb index 15e16163a..6cda7712f 100644 --- a/app/models/epp/domain.rb +++ b/app/models/epp/domain.rb @@ -476,6 +476,7 @@ class Epp::Domain < Domain if doc = attach_legal_document(Epp::Domain.parse_legal_document_from_frame(frame)) frame.css("legalDocument").first.content = doc.path if doc && doc.persisted? + self.legal_document_id = doc.id end at_add = attrs_from(frame.css('add'), current_user, 'add') diff --git a/lib/tasks/documents.rake b/lib/tasks/documents.rake new file mode 100644 index 000000000..51ba49108 --- /dev/null +++ b/lib/tasks/documents.rake @@ -0,0 +1,41 @@ +namespace :documents do + + + desc 'Generate all' + task all: :environment do + Rake::Task['documents:log'].invoke + end + + desc 'Generate legaldoc versions' + task log: :environment do + start = Time.zone.now.to_f + puts '-----> Adding documets id for PaperTrail log...' + count = 0 + + LegalDocument.all.each do |x| + + next if x.documentable_id.blank? + + dc = DomainVersion.where(item_id: x.documentable_id) + + dc.each do |y| + + if x.created_at < (y.created_at + (2*60)) && + x.created_at > (y.created_at - (2*60)) + + y.children[:legal_documents] = [x.id] + y.save + count =+1 + + else + + y.children[:legal_documents] = [] + y.save + + end + end + end + puts "-----> Log changed for #{count} rows in #{(Time.zone.now.to_f - start).round(2)} seconds" + end +end +