diff --git a/app/controllers/admin/mass_actions_controller.rb b/app/controllers/admin/mass_actions_controller.rb index b342a9ef1..a8b4ed04e 100644 --- a/app/controllers/admin/mass_actions_controller.rb +++ b/app/controllers/admin/mass_actions_controller.rb @@ -4,14 +4,14 @@ module Admin class MassActionsController < BaseController authorize_resource - # GET /admin/disputes + # GET /admin/mass_actions def index; end - # POST /admin/disputes + # POST /admin/mass_actions def create res = MassAction.process(params[:mass_action], params[:entry_list].path) - backlog = "#{params[:mass_action]} done for #{res[:ok].join(',')}.\n" \ - "Failed: objects: #{res[:fail].join(',')}" + backlog = "#{params[:mass_action]} completed for #{res[:ok]}.\n" \ + "Failed: objects: #{res[:fail]}" redirect_to(admin_mass_actions_path, notice: backlog) end diff --git a/app/models/concerns/domain/force_delete.rb b/app/models/concerns/domain/force_delete.rb index d62c1f9a1..6cf883c51 100644 --- a/app/models/concerns/domain/force_delete.rb +++ b/app/models/concerns/domain/force_delete.rb @@ -42,12 +42,12 @@ module Concerns::Domain::ForceDelete # rubocop:disable Metrics/ModuleLength force_delete_start + Setting.expire_warning_period.days <= valid_to end - def schedule_force_delete(type: :fast_track, notify: false) + def schedule_force_delete(type: :fast_track, reason: nil) if discarded? raise StandardError, 'Force delete procedure cannot be scheduled while a domain is discarded' end - type == :fast_track ? force_delete_fast_track : force_delete_soft(notify: notify) + type == :fast_track ? force_delete_fast_track : force_delete_soft(reason: reason) end def add_force_delete_type(force_delete_type) @@ -65,7 +65,7 @@ module Concerns::Domain::ForceDelete # rubocop:disable Metrics/ModuleLength save(validate: false) end - def force_delete_soft(notify: false) + def force_delete_soft(reason: nil) preserve_current_statuses_for_force_delete add_force_delete_statuses add_force_delete_type(:soft) @@ -73,7 +73,7 @@ module Concerns::Domain::ForceDelete # rubocop:disable Metrics/ModuleLength stop_all_pending_actions allow_deletion save(validate: false) - notify_parties if notify + notify_parties(reason) if reason end def clear_force_delete_data @@ -150,8 +150,11 @@ module Concerns::Domain::ForceDelete # rubocop:disable Metrics/ModuleLength Time.zone.today + Setting.expire_warning_period.days + Setting.redemption_grace_period.days end - def notify_parties - self.template_name = registrant.org? ? 'legal_person' : 'private_person' + def notify_parties(reason) + ent = registrant.org? ? 'legal_person' : 'private_person' if reason == 'ENTITY_BURIED' + ent ||= reason.downcase + self.template_name = ent + save(validate: false) registrar.notifications.create!(text: I18n.t('force_delete_set_on_domain', domain_name: name, diff --git a/app/models/mass_action.rb b/app/models/mass_action.rb index 73c0d024d..e0ad113a4 100644 --- a/app/models/mass_action.rb +++ b/app/models/mass_action.rb @@ -12,7 +12,7 @@ class MassAction dn = Domain.find_by(name_puny: e['domain_name']) log[:fail] << e['domain_name'] and next unless dn - dn.schedule_force_delete(type: :soft, notify: true) + dn.schedule_force_delete(type: :soft, reason: e['delete_reason']) log[:ok] << dn.name end diff --git a/app/views/admin/mass_actions/index.html.erb b/app/views/admin/mass_actions/index.html.erb index 54c108ccb..4e500f86b 100644 --- a/app/views/admin/mass_actions/index.html.erb +++ b/app/views/admin/mass_actions/index.html.erb @@ -6,7 +6,7 @@
Bulk Domain Force Delete

Triggers soft force delete procedure for uploaded domain list. List must be in CSV format. Each domain entry must be on separate line. Line must include domain_name (puny) followed with delete_reason, separated by comma.

-

Allowed delete reasons: IDENT_BURIED | PHONE | EMAIL

+

Allowed delete reasons: ENTITY_BURIED | PHONE | EMAIL

<%= form_tag admin_mass_actions_path, multipart: true do %> <%= file_field_tag :entry_list, accept: 'text/csv' %> <%= hidden_field_tag :mass_action, 'force_delete' %>