New customizable mail : mail_validated, new balise --lien_dossier--
This commit is contained in:
parent
83616f77db
commit
b40193e7b5
21 changed files with 134 additions and 58 deletions
|
@ -1,31 +1,45 @@
|
|||
class MailTemplate < ActiveRecord::Base
|
||||
include Rails.application.routes.url_helpers
|
||||
include ActionView::Helpers::UrlHelper
|
||||
|
||||
belongs_to :procedure
|
||||
|
||||
enum tags: {
|
||||
numero_dossier: {
|
||||
description: "Permet d'afficher le numéro de dossier de l'utilisateur."
|
||||
},
|
||||
libelle_procedure: {
|
||||
description: "Permet d'afficher le libellé de la procédure."
|
||||
}
|
||||
}
|
||||
TAGS = {
|
||||
numero_dossier: {
|
||||
description: "Permet d'afficher le numéro de dossier de l'utilisateur."
|
||||
},
|
||||
lien_dossier: {
|
||||
description: "Permet d'afficher un lien vers le dossier de l'utilisateur."
|
||||
},
|
||||
libelle_procedure: {
|
||||
description: "Permet d'afficher le libellé de la procédure."
|
||||
}
|
||||
}
|
||||
|
||||
def self.replace_tags string, dossier
|
||||
@dossier = dossier
|
||||
def object_for_dossier dossier
|
||||
replace_tags(object, dossier)
|
||||
end
|
||||
|
||||
tags.inject(string) do |acc, tag|
|
||||
acc.gsub!("--#{tag.first}--", replace_tag(tag.first.to_sym)) || acc
|
||||
def body_for_dossier dossier
|
||||
replace_tags(body, dossier)
|
||||
end
|
||||
|
||||
def replace_tags string, dossier
|
||||
TAGS.inject(string) do |acc, tag|
|
||||
acc.gsub!("--#{tag.first}--", replace_tag(tag.first.to_sym, dossier)) || acc
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def self.replace_tag tag
|
||||
def replace_tag tag, dossier
|
||||
case tag
|
||||
when :numero_dossier
|
||||
@dossier.id.to_s
|
||||
dossier.id.to_s
|
||||
when :lien_dossier
|
||||
link_to users_dossier_recapitulatif_url(dossier), users_dossier_recapitulatif_url(dossier), target: '_blank'
|
||||
when :libelle_procedure
|
||||
@dossier.procedure.libelle
|
||||
dossier.procedure.libelle
|
||||
else
|
||||
'--BALISE_NON_RECONNUE--'
|
||||
end
|
||||
|
|
18
app/models/mail_validated.rb
Normal file
18
app/models/mail_validated.rb
Normal file
|
@ -0,0 +1,18 @@
|
|||
class MailValidated < MailTemplate
|
||||
before_save :default_values
|
||||
|
||||
def default_values
|
||||
self.object ||= "[TPS] Votre dossier TPS N°--numero_dossier-- a été validé"
|
||||
self.body ||= "Bonjour,<br>
|
||||
<br>
|
||||
Votre dossier N°--numero_dossier-- est prêt à être déposé pour instruction.<br>
|
||||
<br>
|
||||
Afin de finaliser son dépôt, merci de vous rendre sur --lien_dossier--.,<br>
|
||||
<br>
|
||||
Bonne journée,<br>
|
||||
---<br>
|
||||
Merci de ne pas répondre à ce mail. Postez directement vos questions dans votre dossier sur la plateforme.<br>
|
||||
---<br>
|
||||
L'équipe TPS"
|
||||
end
|
||||
end
|
|
@ -4,7 +4,7 @@ class Procedure < ActiveRecord::Base
|
|||
has_many :types_de_champ_private, dependent: :destroy
|
||||
has_many :dossiers
|
||||
has_many :mail_templates
|
||||
has_one :mail_received
|
||||
|
||||
|
||||
has_one :procedure_path, dependent: :destroy
|
||||
|
||||
|
@ -32,7 +32,8 @@ class Procedure < ActiveRecord::Base
|
|||
after_save :build_default_mails, if: Proc.new { id_changed? }
|
||||
|
||||
def build_default_mails
|
||||
MailReceived.create(procedure: self)
|
||||
mail_templates << MailReceived.create unless mail_received
|
||||
mail_templates << MailValidated.create unless mail_validated
|
||||
end
|
||||
|
||||
def path
|
||||
|
@ -109,4 +110,12 @@ class Procedure < ActiveRecord::Base
|
|||
def total_dossier
|
||||
self.dossiers.where.not(state: :draft).size
|
||||
end
|
||||
|
||||
def mail_validated
|
||||
mail_templates.where(type: :MailValidated).first
|
||||
end
|
||||
|
||||
def mail_received
|
||||
mail_templates.where(type: :MailReceived).first
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue