demarches-normaliennes/spec/mailers/previews/dossier_mailer_preview.rb

143 lines
4.7 KiB
Ruby
Raw Normal View History

2018-05-29 12:16:22 +02:00
# Preview all emails at http://localhost:3000/rails/mailers/dossier_mailer
class DossierMailerPreview < ActionMailer::Preview
def notify_new_draft
DossierMailer.with(dossier: draft).notify_new_draft
end
def notify_new_answer
DossierMailer.with(commentaire: commentaire(on: draft)).notify_new_answer
end
def notify_pending_correction
commentaire = commentaire(on: dossier_en_construction(sva_svr_decision: :sva)).tap { _1.build_dossier_correction(kind: :correction) }
DossierMailer.with(commentaire:).notify_pending_correction
end
def notify_pending_correction_sva_correction
commentaire = commentaire(on: dossier_en_construction(sva_svr_decision: :sva)).tap { _1.build_dossier_correction(kind: :correction) }
DossierMailer.with(commentaire:).notify_pending_correction
end
2019-12-03 15:51:16 +01:00
def notify_brouillon_near_deletion
2020-03-19 09:49:25 +01:00
DossierMailer.notify_brouillon_near_deletion([dossier], usager_email)
2019-12-03 15:51:16 +01:00
end
def notify_brouillons_near_deletion
2020-03-19 09:49:25 +01:00
DossierMailer.notify_brouillon_near_deletion([dossier, dossier], usager_email)
end
def notify_en_construction_near_deletion_to_user
2020-04-01 17:08:50 +02:00
DossierMailer.notify_near_deletion_to_user([dossier_en_construction], usager_email)
2020-03-19 09:49:25 +01:00
end
def notify_en_construction_near_deletion_to_administration
2020-04-01 17:08:50 +02:00
DossierMailer.notify_near_deletion_to_administration([dossier_en_construction, dossier_en_construction], administration_email)
2019-12-03 15:51:16 +01:00
end
2019-11-28 18:03:23 +01:00
def notify_termine_near_deletion_to_user
DossierMailer.notify_near_deletion_to_user([dossier_accepte], usager_email)
end
def notify_termine_near_deletion_to_user_multiple
DossierMailer.notify_near_deletion_to_user([dossier_accepte, dossier_accepte], usager_email)
end
def notify_termine_near_deletion_to_administration
DossierMailer.notify_near_deletion_to_administration([dossier_accepte, dossier_accepte], administration_email)
end
2019-11-28 18:03:23 +01:00
def notify_brouillon_deletion
2020-03-19 09:49:25 +01:00
DossierMailer.notify_brouillon_deletion([dossier.hash_for_deletion_mail], usager_email)
2019-11-28 18:03:23 +01:00
end
def notify_brouillons_deletion
dossier_hashes = [dossier, dossier].map(&:hash_for_deletion_mail)
2020-03-19 09:49:25 +01:00
DossierMailer.notify_brouillon_deletion(dossier_hashes, usager_email)
end
def notify_deletion_to_administration
2024-06-17 16:33:19 +02:00
DossierMailer.notify_deletion_to_administration(dossier, administration_email)
2019-11-28 18:03:23 +01:00
end
2020-03-05 17:17:58 +01:00
def notify_automatic_deletion_to_user
2024-06-17 16:33:19 +02:00
DossierMailer.notify_automatic_deletion_to_user([dossier, dossier], usager_email)
2020-03-05 17:17:58 +01:00
end
def notify_automatic_deletion_to_administration
2024-06-17 16:33:19 +02:00
DossierMailer.notify_automatic_deletion_to_administration([dossier, dossier], administration_email)
2020-03-05 17:17:58 +01:00
end
2020-03-19 03:46:12 +01:00
def notify_brouillon_not_submitted
DossierMailer.notify_brouillon_not_submitted(draft)
end
2020-03-05 17:17:58 +01:00
def notify_transfer
DossierMailer.notify_transfer(transfer)
end
private
2020-03-19 09:49:25 +01:00
def usager_email
"usager@example.com"
end
def administration_email
"administration@example.com"
end
def user
User.new(email: "usager@example.com", locale: I18n.locale)
end
def deleted_dossier
DeletedDossier.new(dossier_id: 1, procedure: procedure)
end
def draft
Dossier.new(id: 47882, state: :brouillon, procedure: procedure, user: user)
end
def dossier
Dossier.new(id: 47882, state: :en_instruction, procedure: procedure, user: user)
end
def dossier_en_construction(sva_svr_decision: nil)
local_procedure = procedure
dossier = Dossier.new(id: 47882, state: :en_construction, procedure: local_procedure, user: user)
if sva_svr_decision
local_procedure.sva_svr = { decision: sva_svr_decision, period: 2, unit: :months }
dossier.sva_svr_decision_on = 10.days.from_now.to_date
end
dossier
2020-04-01 17:08:50 +02:00
end
def dossier_accepte
Dossier.new(id: 47882, state: :accepte, procedure: procedure, user: user)
end
def procedure
Procedure.new(id: 1234, libelle: 'Dotation dÉquipement des Territoires Ruraux - Exercice 2019', service: service, logo: Rack::Test::UploadedFile.new('spec/fixtures/files/logo_test_procedure.png', 'image/png'), auto_archive_on: Time.zone.today + Dossier::REMAINING_DAYS_BEFORE_CLOSING.days)
end
def service
Service.new(
nom: 'Direction du Territoire des Vosges',
email: 'prms@ddt.vosges.gouv.fr',
telephone: '01 34 22 33 85',
horaires: 'Du lundi au vendredi, de 9 h à 18 h'
)
2018-05-29 12:16:22 +02:00
end
def transfer
DossierTransfer.new(email: usager_email, dossiers: [dossier, dossier_accepte])
end
def commentaire(on:)
dossier = on
Commentaire.new(id: 7726, body: "Bonjour, Vous avez commencé le dépôt dun dossier pour une subvention DETR /DSIL. Dans le cas où votre opération naurait pas connu un commencement dexécution, vous êtes encouragé(e) à redéposer un nouveau dossier sur le formulaire de cette année.\nLa DDT", dossier: dossier)
end
2018-05-29 12:16:22 +02:00
end