Refactor the TAGS management in MailTemplateConcern
This commit is contained in:
parent
0a842480c1
commit
5a59115df4
7 changed files with 29 additions and 51 deletions
|
@ -4,50 +4,23 @@ module MailTemplateConcern
|
|||
include Rails.application.routes.url_helpers
|
||||
include ActionView::Helpers::UrlHelper
|
||||
|
||||
TAGS = {
|
||||
numero_dossier: {
|
||||
description: "Permet d'afficher le numéro de dossier de l'utilisateur.",
|
||||
templates: [
|
||||
"initiated_mail",
|
||||
"received_mail",
|
||||
"closed_mail",
|
||||
"refused_mail",
|
||||
"without_continuation_mail"
|
||||
]
|
||||
},
|
||||
lien_dossier: {
|
||||
description: "Permet d'afficher un lien vers le dossier de l'utilisateur.",
|
||||
templates: [
|
||||
"initiated_mail",
|
||||
"received_mail",
|
||||
"closed_mail",
|
||||
"refused_mail",
|
||||
"without_continuation_mail"
|
||||
]
|
||||
},
|
||||
libelle_procedure: {
|
||||
description: "Permet d'afficher le libellé de la procédure.",
|
||||
templates: [
|
||||
"initiated_mail",
|
||||
"received_mail",
|
||||
"closed_mail",
|
||||
"refused_mail",
|
||||
"without_continuation_mail"
|
||||
]
|
||||
},
|
||||
date_de_decision: {
|
||||
description: "Permet d'afficher la date à laquelle la décision finale (acceptation, refus, classement sans suite) sur le dossier a été prise.",
|
||||
templates: [
|
||||
"closed_mail",
|
||||
"refused_mail",
|
||||
"without_continuation_mail"
|
||||
]
|
||||
}
|
||||
TAGS = []
|
||||
TAGS << TAG_NUMERO_DOSSIER = {
|
||||
name: "numero_dossier",
|
||||
description: "Permet d'afficher le numéro de dossier de l'utilisateur."
|
||||
}
|
||||
TAGS << TAG_LIEN_DOSSIER = {
|
||||
name: "lien_dossier",
|
||||
description: "Permet d'afficher un lien vers le dossier de l'utilisateur."
|
||||
}
|
||||
TAGS << TAG_LIBELLE_PROCEDURE = {
|
||||
name: "libelle_procedure",
|
||||
description: "Permet d'afficher le libellé de la procédure."
|
||||
}
|
||||
TAGS << TAG_DATE_DE_DECISION = {
|
||||
name: "date_de_decision",
|
||||
description: "Permet d'afficher la date à laquelle la décision finale (acceptation, refus, classement sans suite) sur le dossier a été prise."
|
||||
}
|
||||
|
||||
def self.tags_for_template(template)
|
||||
TAGS.select { |key, value| value[:templates].include?(template) }
|
||||
end
|
||||
|
||||
def object_for_dossier(dossier)
|
||||
replace_tags(object, dossier)
|
||||
|
@ -59,7 +32,7 @@ module MailTemplateConcern
|
|||
|
||||
def replace_tags(string, dossier)
|
||||
TAGS.inject(string) do |acc, tag|
|
||||
acc.gsub!("--#{tag.first}--", replace_tag(tag.first.to_sym, dossier)) || acc
|
||||
acc.gsub!("--#{tag[:name]}--", replace_tag(tag, dossier)) || acc
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -78,13 +51,13 @@ module MailTemplateConcern
|
|||
|
||||
def replace_tag(tag, dossier)
|
||||
case tag
|
||||
when :numero_dossier
|
||||
when TAG_NUMERO_DOSSIER
|
||||
dossier.id.to_s
|
||||
when :lien_dossier
|
||||
when TAG_LIEN_DOSSIER
|
||||
link_to users_dossier_recapitulatif_url(dossier), users_dossier_recapitulatif_url(dossier), target: '_blank'
|
||||
when :libelle_procedure
|
||||
when TAG_LIBELLE_PROCEDURE
|
||||
dossier.procedure.libelle
|
||||
when :date_de_decision
|
||||
when TAG_DATE_DE_DECISION
|
||||
dossier.processed_at.present? ? dossier.processed_at.localtime.strftime("%d/%m/%Y") : ""
|
||||
else
|
||||
'--BALISE_NON_RECONNUE--'
|
||||
|
|
|
@ -4,6 +4,7 @@ module Mails
|
|||
|
||||
DISPLAYED_NAME = "Accusé d'acceptation"
|
||||
DEFAULT_OBJECT = 'Votre dossier TPS nº --numero_dossier-- a été accepté'
|
||||
ALLOWED_TAGS = [TAG_NUMERO_DOSSIER, TAG_LIEN_DOSSIER, TAG_LIBELLE_PROCEDURE, TAG_DATE_DE_DECISION]
|
||||
|
||||
end
|
||||
end
|
||||
|
|
|
@ -4,6 +4,7 @@ module Mails
|
|||
|
||||
DISPLAYED_NAME = 'Accusé de réception'
|
||||
DEFAULT_OBJECT = 'Votre dossier TPS nº --numero_dossier-- a été bien reçu'
|
||||
ALLOWED_TAGS = [TAG_NUMERO_DOSSIER, TAG_LIEN_DOSSIER, TAG_LIBELLE_PROCEDURE]
|
||||
|
||||
end
|
||||
end
|
||||
|
|
|
@ -4,6 +4,7 @@ module Mails
|
|||
|
||||
DISPLAYED_NAME = 'Accusé de passage en instruction'
|
||||
DEFAULT_OBJECT = 'Votre dossier TPS nº --numero_dossier-- va être instruit'
|
||||
ALLOWED_TAGS = [TAG_NUMERO_DOSSIER, TAG_LIEN_DOSSIER, TAG_LIBELLE_PROCEDURE]
|
||||
|
||||
end
|
||||
end
|
||||
|
|
|
@ -4,6 +4,7 @@ module Mails
|
|||
|
||||
DISPLAYED_NAME = 'Accusé de rejet du dossier'
|
||||
DEFAULT_OBJECT = 'Votre dossier TPS nº --numero_dossier-- a été refusé'
|
||||
ALLOWED_TAGS = [TAG_NUMERO_DOSSIER, TAG_LIEN_DOSSIER, TAG_LIBELLE_PROCEDURE, TAG_DATE_DE_DECISION]
|
||||
|
||||
end
|
||||
end
|
||||
|
|
|
@ -4,6 +4,7 @@ module Mails
|
|||
|
||||
DISPLAYED_NAME = 'Accusé de classement sans suite'
|
||||
DEFAULT_OBJECT = 'Votre dossier TPS nº --numero_dossier-- a été classé sans suite'
|
||||
ALLOWED_TAGS = [TAG_NUMERO_DOSSIER, TAG_LIEN_DOSSIER, TAG_LIBELLE_PROCEDURE, TAG_DATE_DE_DECISION]
|
||||
|
||||
end
|
||||
end
|
||||
|
|
|
@ -22,9 +22,9 @@
|
|||
Balise
|
||||
%th
|
||||
Description
|
||||
- MailTemplateConcern.tags_for_template(@mail_template_name).each do |balise|
|
||||
- @mail_template.class.const_get(:ALLOWED_TAGS).each do |tag|
|
||||
%tr
|
||||
%td.center
|
||||
= "--#{balise.first}--"
|
||||
= "--#{tag[:name]}--"
|
||||
%td
|
||||
= balise.second[:description]
|
||||
= tag[:description]
|
||||
|
|
Loading…
Reference in a new issue