diff --git a/app/models/concerns/contact/archivable.rb b/app/models/concerns/contact/archivable.rb index 8218dedaf..ae9fdf053 100644 --- a/app/models/concerns/contact/archivable.rb +++ b/app/models/concerns/contact/archivable.rb @@ -17,16 +17,23 @@ module Concerns inactive end - def archive(verified: false) + def archive(verified: false, notify: true) unless verified raise 'Contact cannot be archived' unless archivable?(post: true) end + notify_registrar_about_archivation if notify destroy! end private + def notify_registrar_about_archivation + registrar.notifications.create!(text: I18n.t('contact_has_been_archived', + contact_code: code, + orphan_months: Setting.orphans_contacts_in_months)) + end + def inactive? if DomainVersion.contact_unlinked_more_than?(contact_id: id, period: inactivity_period) return true diff --git a/config/locales/en.yml b/config/locales/en.yml index 27299072e..6c9877de4 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -643,6 +643,7 @@ en: cant_match_version: 'Impossible match version with request' user_not_authenticated: "user not authenticated" actions: Actions + contact_has_been_archived: 'Contact with code %{contact_code} has been archieved because it has been orphaned for longer than %{orphan_months} months.' number: currency: