From 7d6d53e4207df8e62ac390beb7a519444d578f2f Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Mon, 2 Nov 2020 15:47:00 +0500 Subject: [PATCH 1/2] Auto-select email template Chooses template based on domain registrant ident_type. Closes #442 --- .../admin/domains/force_delete_controller.rb | 8 +++++-- .../domains/_force_delete_dialog.html.erb | 6 ----- app/views/admin/domains/edit.html.erb | 2 +- .../admin_area/domains/force_delete_test.rb | 22 +++++++++++++++++++ 4 files changed, 29 insertions(+), 9 deletions(-) diff --git a/app/controllers/admin/domains/force_delete_controller.rb b/app/controllers/admin/domains/force_delete_controller.rb index c61f050d2..e64012de7 100644 --- a/app/controllers/admin/domains/force_delete_controller.rb +++ b/app/controllers/admin/domains/force_delete_controller.rb @@ -22,7 +22,7 @@ module Admin send_email domain.update(contact_notification_sent_date: Time.zone.today) else - domain.update(template_name: params[:template_name]) + domain.update(template_name: template_name) end end @@ -34,6 +34,10 @@ module Admin private + def template_name + domain.registrant.org? ? 'legal_person' : 'private_person' + end + def domain @domain ||= Domain.find(params[:domain_id]) end @@ -46,7 +50,7 @@ module Admin DomainDeleteMailer.forced(domain: domain, registrar: domain.registrar, registrant: domain.registrant, - template_name: params[:template_name]).deliver_now + template_name: template_name).deliver_now end def force_delete_type diff --git a/app/views/admin/domains/_force_delete_dialog.html.erb b/app/views/admin/domains/_force_delete_dialog.html.erb index a76c14edd..932a3f75c 100644 --- a/app/views/admin/domains/_force_delete_dialog.html.erb +++ b/app/views/admin/domains/_force_delete_dialog.html.erb @@ -33,12 +33,6 @@ -
- -
- <%= select_tag 'template_name', options_for_select(templates), class: 'form-control' %> -
-
<% end %> <%= render 'form' %> -<%= render 'force_delete_dialog', domain: @domain, templates: force_delete_templates %> +<%= render 'force_delete_dialog', domain: @domain %> diff --git a/test/system/admin_area/domains/force_delete_test.rb b/test/system/admin_area/domains/force_delete_test.rb index 4ccc10923..6aa53be6c 100644 --- a/test/system/admin_area/domains/force_delete_test.rb +++ b/test/system/admin_area/domains/force_delete_test.rb @@ -42,6 +42,22 @@ class AdminAreaDomainForceDeleteTest < ApplicationSystemTestCase find(:css, '#soft_delete').set(true) click_link_or_button 'Force delete domain' end + + @domain.reload + assert_equal template_name, @domain.template_name + end + + def test_uses_legal_template_if_registrant_org + @domain.registrant.update(ident_type: 'org') + + assert_emails 0 do + visit edit_admin_domain_url(@domain) + find(:css, '#soft_delete').set(true) + click_link_or_button 'Force delete domain' + end + + @domain.reload + assert_equal template_name, @domain.template_name end def test_allows_to_skip_notifying_registrant_and_admin_contacts_by_email @@ -71,4 +87,10 @@ class AdminAreaDomainForceDeleteTest < ApplicationSystemTestCase assert_no_button 'Schedule force delete' assert_no_link 'Schedule force delete' end + + private + + def template_name + @domain.registrant.org? ? 'legal_person' : 'private_person' + end end From a6702267e58482dc56a812e71a2b730ecdb3fb24 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Wed, 4 Nov 2020 17:11:46 +0500 Subject: [PATCH 2/2] Move template decision method to FD concern --- app/controllers/admin/domains/force_delete_controller.rb | 8 ++------ app/models/concerns/domain/force_delete.rb | 4 ++++ 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/app/controllers/admin/domains/force_delete_controller.rb b/app/controllers/admin/domains/force_delete_controller.rb index e64012de7..6a111926f 100644 --- a/app/controllers/admin/domains/force_delete_controller.rb +++ b/app/controllers/admin/domains/force_delete_controller.rb @@ -22,7 +22,7 @@ module Admin send_email domain.update(contact_notification_sent_date: Time.zone.today) else - domain.update(template_name: template_name) + domain.update(template_name: domain.notification_template) end end @@ -34,10 +34,6 @@ module Admin private - def template_name - domain.registrant.org? ? 'legal_person' : 'private_person' - end - def domain @domain ||= Domain.find(params[:domain_id]) end @@ -50,7 +46,7 @@ module Admin DomainDeleteMailer.forced(domain: domain, registrar: domain.registrar, registrant: domain.registrant, - template_name: template_name).deliver_now + template_name: domain.notification_template).deliver_now end def force_delete_type diff --git a/app/models/concerns/domain/force_delete.rb b/app/models/concerns/domain/force_delete.rb index 9b75d1e92..bf619c65f 100644 --- a/app/models/concerns/domain/force_delete.rb +++ b/app/models/concerns/domain/force_delete.rb @@ -19,6 +19,10 @@ module Concerns::Domain::ForceDelete # rubocop:disable Metrics/ModuleLength end end + def notification_template + registrant.org? ? 'legal_person' : 'private_person' + end + def force_delete_scheduled? statuses.include?(DomainStatus::FORCE_DELETE) end