diff --git a/app/models/mail_template.rb b/app/models/mail_template.rb deleted file mode 100644 index ca7f752ae..000000000 --- a/app/models/mail_template.rb +++ /dev/null @@ -1,58 +0,0 @@ -class MailTemplate < ActiveRecord::Base - include Rails.application.routes.url_helpers - include ActionView::Helpers::UrlHelper - - belongs_to :procedure - - 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." - }, - email: { - description: "Permet d'afficher l'email du porteur de projet." - }, - nom_organisation: { - description: "Permet d'afficher le nom de l'organisation." - } - } - - def object_for_dossier dossier - replace_tags(object, dossier) - end - - 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 replace_tag tag, dossier - case tag - when :email - dossier.user.email.to_s - when :nom_organisation - dossier.procedure.organisation.to_s - when :numero_dossier - dossier.id.to_s - when :lien_dossier - # TPS::Application::URL # quickfix - link_to users_dossier_recapitulatif_url(dossier), users_dossier_recapitulatif_url(dossier), target: '_blank' - when :libelle_procedure - dossier.procedure.libelle - else - '--BALISE_NON_RECONNUE--' - end - end -end diff --git a/app/views/admin/mail_templates/edit.html.haml b/app/views/admin/mail_templates/edit.html.haml index 010f3a82f..4e1aa67ba 100644 --- a/app/views/admin/mail_templates/edit.html.haml +++ b/app/views/admin/mail_templates/edit.html.haml @@ -2,7 +2,8 @@ %h3 = @mail_template.name - = simple_form_for @mail_template.becomes(MailTemplate), + = simple_form_for @mail_template, + as: 'mail_template', url: admin_procedure_mail_template_path(@procedure, @mail_template.class.slug), method: :put do |f| .row @@ -21,7 +22,7 @@ Balise %th Description - - MailTemplate::TAGS.each do |balise| + - MailTemplateConcern::TAGS.each do |balise| %tr %td.center = "--#{balise.first}--" diff --git a/db/migrate/20170223170808_delete_all_mail_validated_in_db.rb b/db/migrate/20170223170808_delete_all_mail_validated_in_db.rb index 74d89af2a..dbd8860d1 100644 --- a/db/migrate/20170223170808_delete_all_mail_validated_in_db.rb +++ b/db/migrate/20170223170808_delete_all_mail_validated_in_db.rb @@ -1,5 +1,6 @@ class DeleteAllMailValidatedInDb < ActiveRecord::Migration[5.0] def change - MailTemplate.where(type: "MailValidated").delete_all + mail_template_exist = Object.const_get(:MailTemplate).is_a?(Class) rescue false + MailTemplate.where(type: "MailValidated").delete_all if mail_template_exist end end diff --git a/spec/models/mail_template_spec.rb b/spec/models/mail_template_spec.rb deleted file mode 100644 index 6b05056bf..000000000 --- a/spec/models/mail_template_spec.rb +++ /dev/null @@ -1,23 +0,0 @@ -require 'spec_helper' - -describe MailTemplate do - it { is_expected.to have_db_column(:body) } - it { is_expected.to have_db_column(:type) } - - it { is_expected.to belong_to(:procedure) } - - describe '.replace_tags' do - let(:dossier) { create :dossier } - let(:initiated_mail) { InitiatedMail.default } - - it 'works' do - initiated_mail.object = '[TPS] --numero_dossier-- --libelle_procedure-- --lien_dossier-- --email-- --nom_organisation--' - expected = - "[TPS] 1 Demande de subvention " + - "http://localhost:3000/users/dossiers/1/recapitulatif " + - "#{dossier.user.email} Orga SGMAP" - - expect(initiated_mail.object_for_dossier(dossier)).to eq(expected) - end - end -end