Mails: add refused, without_continuation, draft, closed, received mails object
This commit is contained in:
parent
7b336922cc
commit
695dc16b85
22 changed files with 295 additions and 73 deletions
13
app/models/closed_mail.rb
Normal file
13
app/models/closed_mail.rb
Normal file
|
@ -0,0 +1,13 @@
|
|||
class ClosedMail < ActiveRecord::Base
|
||||
include MailTemplateConcern
|
||||
|
||||
def name
|
||||
"Accusé d'acceptation"
|
||||
end
|
||||
|
||||
def self.default
|
||||
obj = "Votre dossier TPS N°--numero_dossier-- a été accepté"
|
||||
body = ActionController::Base.new.render_to_string(template: 'notification_mailer/closed_mail')
|
||||
ClosedMail.new(object: obj, body: body)
|
||||
end
|
||||
end
|
54
app/models/concerns/mail_template_concern.rb
Normal file
54
app/models/concerns/mail_template_concern.rb
Normal file
|
@ -0,0 +1,54 @@
|
|||
module MailTemplateConcern
|
||||
extend ActiveSupport::Concern
|
||||
|
||||
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."
|
||||
},
|
||||
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 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
|
||||
|
||||
module ClassMethods
|
||||
def slug
|
||||
self.name.underscore
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def replace_tag tag, dossier
|
||||
case tag
|
||||
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
|
|
@ -1,15 +1,13 @@
|
|||
class InitiatedMail < MailTemplate
|
||||
class InitiatedMail < ActiveRecord::Base
|
||||
include MailTemplateConcern
|
||||
|
||||
def name
|
||||
"E-mail d'accusé de réception"
|
||||
"Accusé de réception"
|
||||
end
|
||||
|
||||
def self.default
|
||||
obj = "[TPS] Accusé de réception pour votre dossier n°--numero_dossier--"
|
||||
obj = "Votre dossier TPS N°--numero_dossier-- a été bien reçu"
|
||||
body = ActionController::Base.new.render_to_string(template: 'notification_mailer/initiated_mail')
|
||||
InitiatedMail.new(object: obj, body: body)
|
||||
end
|
||||
|
||||
def self.slug
|
||||
self.name.parameterize
|
||||
end
|
||||
end
|
||||
|
|
13
app/models/received_mail.rb
Normal file
13
app/models/received_mail.rb
Normal file
|
@ -0,0 +1,13 @@
|
|||
class ReceivedMail < ActiveRecord::Base
|
||||
include MailTemplateConcern
|
||||
|
||||
def name
|
||||
"Accusé de passage en instruction"
|
||||
end
|
||||
|
||||
def self.default
|
||||
obj = "Votre dossier TPS N°--numero_dossier-- va être instruit"
|
||||
body = ActionController::Base.new.render_to_string(template: 'notification_mailer/received_mail')
|
||||
ReceivedMail.new(object: obj, body: body)
|
||||
end
|
||||
end
|
13
app/models/refused_mail.rb
Normal file
13
app/models/refused_mail.rb
Normal file
|
@ -0,0 +1,13 @@
|
|||
class RefusedMail < ApplicationRecord
|
||||
include MailTemplateConcern
|
||||
|
||||
def name
|
||||
"Accusé de rejet du dossier"
|
||||
end
|
||||
|
||||
def self.default
|
||||
obj = "Votre dossier TPS N°--numero_dossier-- a été refusé"
|
||||
body = ActionController::Base.new.render_to_string(template: 'notification_mailer/refused_mail')
|
||||
RefusedMail.new(object: obj, body: body)
|
||||
end
|
||||
end
|
13
app/models/without_continuation_mail.rb
Normal file
13
app/models/without_continuation_mail.rb
Normal file
|
@ -0,0 +1,13 @@
|
|||
class WithoutContinuationMail < ApplicationRecord
|
||||
include MailTemplateConcern
|
||||
|
||||
def name
|
||||
"Accusé de classement sans suite"
|
||||
end
|
||||
|
||||
def self.default
|
||||
obj = "Votre dossier TPS N°--numero_dossier-- a été classé sans suite"
|
||||
body = ActionController::Base.new.render_to_string(template: 'notification_mailer/without_continuation_mail')
|
||||
WithoutContinuationMail.new(object: obj, body: body)
|
||||
end
|
||||
end
|
17
app/views/notification_mailer/closed_mail.html.haml
Normal file
17
app/views/notification_mailer/closed_mail.html.haml
Normal file
|
@ -0,0 +1,17 @@
|
|||
Bonjour
|
||||
<br>
|
||||
<br>
|
||||
Votre dossier N°--numero_dossier-- a été accepté.
|
||||
<br>
|
||||
<br>
|
||||
A tout moment, vous pouvez consulter le contenu de vos dossiers et les éventuels commentaires de l'administration à cette adresse : --lien_dossier--
|
||||
<br>
|
||||
<br>
|
||||
Bonne journée
|
||||
<br>
|
||||
<br>
|
||||
\---
|
||||
<br>
|
||||
Merci de ne pas répondre à ce mail. Postez directement vos questions dans votre dossier sur la plateforme.
|
||||
<br>
|
||||
\---
|
|
@ -1,14 +0,0 @@
|
|||
Bonjour <%= @user.email %>
|
||||
|
||||
votre dossier N°<%=@dossier.id%> déposé auprès de <%= @dossier.procedure.organisation %> a été accepté ce jour à <%= @dossier.updated_at %>.
|
||||
|
||||
A tout moment, vous pouvez consulter le contenu de vos dossiers et les éventuels commentaires de l'administration à cette adresse : <%=users_dossier_recapitulatif_url(dossier_id: @dossier.id)%>
|
||||
|
||||
Bonne journée
|
||||
|
||||
---
|
||||
Merci de ne pas répondre à ce mail. Postez directement vos questions dans votre dossier sur la plateforme.
|
||||
---
|
||||
|
||||
---
|
||||
L'équide TPS - tps@apientreprise.fr
|
|
@ -1,14 +0,0 @@
|
|||
Bonjour <%= @user.email %>
|
||||
|
||||
votre dossier N°<%=@dossier.id%> déposé auprès de <%= @dossier.procedure.organisation %> a été refusé ce jour à <%= @dossier.updated_at %>.
|
||||
|
||||
Pour en savoir plus sur le motif du refus, vous pouvez consulter le contenu de vos dossiers et les éventuels commentaires de l'administration à cette adresse : <%=users_dossier_recapitulatif_url(dossier_id: @dossier.id)%>
|
||||
|
||||
Bonne journée,
|
||||
|
||||
---
|
||||
Merci de ne pas répondre à ce mail. Postez directement vos questions dans votre dossier sur la plateforme.
|
||||
---
|
||||
|
||||
---
|
||||
L'équide TPS - tps@apientreprise.fr
|
|
@ -1,12 +0,0 @@
|
|||
Bonjour <%= @user.email %>
|
||||
|
||||
Nous vous confirmons que votre dossier N°<%=@dossier.id%> a été déposé auprès de <%= @dossier.procedure.organisation %> avec succès ce jour à <%= @dossier.updated_at %>.
|
||||
|
||||
Bonne journée,
|
||||
|
||||
---
|
||||
Merci de ne pas répondre à ce mail. Postez directement vos questions dans votre dossier sur la plateforme.
|
||||
---
|
||||
|
||||
---
|
||||
L'équide TPS - tps@apientreprise.fr
|
|
@ -1,14 +0,0 @@
|
|||
Bonjour <%= @user.email %>
|
||||
|
||||
votre dossier N°<%=@dossier.id%> déposé auprès de <%= @dossier.procedure.organisation %> a été classé sans suite ce jour à <%= @dossier.updated_at %>.
|
||||
|
||||
Pour en savoir plus sur les raisons de ce classement sans suite, vous pouvez consulter le contenu de vos dossiers et les éventuels commentaires de l'administration à cette adresse : <%=users_dossier_recapitulatif_url(dossier_id: @dossier.id)%>
|
||||
|
||||
Bonne journée,
|
||||
|
||||
---
|
||||
Merci de ne pas répondre à ce mail. Postez directement vos questions dans votre dossier sur la plateforme.
|
||||
---
|
||||
|
||||
---
|
||||
L'équide TPS - tps@apientreprise.fr
|
|
@ -1,11 +0,0 @@
|
|||
Bonjour,
|
||||
<br>
|
||||
<br>
|
||||
Votre administration vous confirme la bonne réception de votre dossier n°--numero_dossier-- complet. Celui-ci sera instruit dans le délai légal déclaré par votre interlocuteur.<br>
|
||||
<br>
|
||||
En vous souhaitant une bonne journée,
|
||||
<br>
|
||||
<br>
|
||||
---
|
||||
<br>
|
||||
L'équipe TPS
|
17
app/views/notification_mailer/initiated_mail.html.haml
Normal file
17
app/views/notification_mailer/initiated_mail.html.haml
Normal file
|
@ -0,0 +1,17 @@
|
|||
Bonjour
|
||||
<br>
|
||||
<br>
|
||||
Votre administration vous confirme la bonne réception de votre dossier n°--numero_dossier--.
|
||||
<br>
|
||||
<br>
|
||||
A tout moment, vous pouvez consulter le contenu de vos dossiers et les éventuels commentaires de l'administration à cette adresse : --lien_dossier--
|
||||
<br>
|
||||
<br>
|
||||
Bonne journée
|
||||
<br>
|
||||
<br>
|
||||
\---
|
||||
<br>
|
||||
Merci de ne pas répondre à ce mail. Postez directement vos questions dans votre dossier sur la plateforme.
|
||||
<br>
|
||||
\---
|
14
app/views/notification_mailer/received_mail.html.haml
Normal file
14
app/views/notification_mailer/received_mail.html.haml
Normal file
|
@ -0,0 +1,14 @@
|
|||
Bonjour
|
||||
<br>
|
||||
<br>
|
||||
Votre administration vous confirme la bonne réception de votre dossier n°--numero_dossier--. Celui-ci sera instruit dans le délai légal déclaré par votre interlocuteur.
|
||||
<br>
|
||||
<br>
|
||||
Bonne journée
|
||||
<br>
|
||||
<br>
|
||||
\---
|
||||
<br>
|
||||
Merci de ne pas répondre à ce mail. Postez directement vos questions dans votre dossier sur la plateforme.
|
||||
<br>
|
||||
\---
|
17
app/views/notification_mailer/refused_mail.html.haml
Normal file
17
app/views/notification_mailer/refused_mail.html.haml
Normal file
|
@ -0,0 +1,17 @@
|
|||
Bonjour
|
||||
<br>
|
||||
<br>
|
||||
Votre dossier N°--numero_dossier-- a été refusé.
|
||||
<br>
|
||||
<br>
|
||||
Pour en savoir plus sur le motif du refus, vous pouvez consulter le contenu de vos dossiers et les éventuels commentaires de l'administration à cette adresse : --lien_dossier--
|
||||
<br>
|
||||
<br>
|
||||
Bonne journée
|
||||
<br>
|
||||
<br>
|
||||
\---
|
||||
<br>
|
||||
Merci de ne pas répondre à ce mail. Postez directement vos questions dans votre dossier sur la plateforme.
|
||||
<br>
|
||||
\---
|
|
@ -0,0 +1,17 @@
|
|||
Bonjour
|
||||
<br>
|
||||
<br>
|
||||
Votre dossier N°--numero_dossier-- a été classé sans suite.
|
||||
<br>
|
||||
<br>
|
||||
Pour en savoir plus sur les raisons de ce classement sans suite, vous pouvez consulter le contenu de vos dossiers et les éventuels commentaires de l'administration à cette adresse : --lien_dossier--
|
||||
<br>
|
||||
<br>
|
||||
Bonne journée
|
||||
<br>
|
||||
<br>
|
||||
\---
|
||||
<br>
|
||||
Merci de ne pas répondre à ce mail. Postez directement vos questions dans votre dossier sur la plateforme.
|
||||
<br>
|
||||
\---
|
11
db/migrate/20170306102116_create_received_mails.rb
Normal file
11
db/migrate/20170306102116_create_received_mails.rb
Normal file
|
@ -0,0 +1,11 @@
|
|||
class CreateReceivedMails < ActiveRecord::Migration[5.0]
|
||||
def change
|
||||
create_table :received_mails do |t|
|
||||
t.text :body
|
||||
t.text :object
|
||||
t.references :procedure, foreign_key: true
|
||||
|
||||
t.timestamps
|
||||
end
|
||||
end
|
||||
end
|
11
db/migrate/20170306102238_create_closed_mails.rb
Normal file
11
db/migrate/20170306102238_create_closed_mails.rb
Normal file
|
@ -0,0 +1,11 @@
|
|||
class CreateClosedMails < ActiveRecord::Migration[5.0]
|
||||
def change
|
||||
create_table :closed_mails do |t|
|
||||
t.text :body
|
||||
t.text :object
|
||||
t.belongs_to :procedure, index: true, unique: true, foreign_key: true
|
||||
|
||||
t.timestamps
|
||||
end
|
||||
end
|
||||
end
|
11
db/migrate/20170306102256_create_refused_mails.rb
Normal file
11
db/migrate/20170306102256_create_refused_mails.rb
Normal file
|
@ -0,0 +1,11 @@
|
|||
class CreateRefusedMails < ActiveRecord::Migration[5.0]
|
||||
def change
|
||||
create_table :refused_mails do |t|
|
||||
t.text :body
|
||||
t.text :object
|
||||
t.belongs_to :procedure, index: true, unique: true, foreign_key: true
|
||||
|
||||
t.timestamps
|
||||
end
|
||||
end
|
||||
end
|
|
@ -0,0 +1,11 @@
|
|||
class CreateWithoutContinuationMails < ActiveRecord::Migration[5.0]
|
||||
def change
|
||||
create_table :without_continuation_mails do |t|
|
||||
t.text :body
|
||||
t.text :object
|
||||
t.belongs_to :procedure, index: true, unique: true, foreign_key: true
|
||||
|
||||
t.timestamps
|
||||
end
|
||||
end
|
||||
end
|
42
db/schema.rb
42
db/schema.rb
|
@ -10,7 +10,7 @@
|
|||
#
|
||||
# It's strongly recommended that you check this file into your version control system.
|
||||
|
||||
ActiveRecord::Schema.define(version: 20170302105557) do
|
||||
ActiveRecord::Schema.define(version: 20170306102320) do
|
||||
|
||||
# These are extensions that must be enabled in order to support this database
|
||||
enable_extension "plpgsql"
|
||||
|
@ -104,6 +104,15 @@ ActiveRecord::Schema.define(version: 20170302105557) do
|
|||
t.index ["type_de_champ_id"], name: "index_champs_on_type_de_champ_id", using: :btree
|
||||
end
|
||||
|
||||
create_table "closed_mails", force: :cascade do |t|
|
||||
t.text "body"
|
||||
t.text "object"
|
||||
t.integer "procedure_id"
|
||||
t.datetime "created_at", null: false
|
||||
t.datetime "updated_at", null: false
|
||||
t.index ["procedure_id"], name: "index_closed_mails_on_procedure_id", using: :btree
|
||||
end
|
||||
|
||||
create_table "commentaires", force: :cascade do |t|
|
||||
t.string "email"
|
||||
t.datetime "created_at", null: false
|
||||
|
@ -343,6 +352,24 @@ ActiveRecord::Schema.define(version: 20170302105557) do
|
|||
t.integer "dossier_id"
|
||||
end
|
||||
|
||||
create_table "received_mails", force: :cascade do |t|
|
||||
t.text "body"
|
||||
t.text "object"
|
||||
t.integer "procedure_id"
|
||||
t.datetime "created_at", null: false
|
||||
t.datetime "updated_at", null: false
|
||||
t.index ["procedure_id"], name: "index_received_mails_on_procedure_id", using: :btree
|
||||
end
|
||||
|
||||
create_table "refused_mails", force: :cascade do |t|
|
||||
t.text "body"
|
||||
t.text "object"
|
||||
t.integer "procedure_id"
|
||||
t.datetime "created_at", null: false
|
||||
t.datetime "updated_at", null: false
|
||||
t.index ["procedure_id"], name: "index_refused_mails_on_procedure_id", using: :btree
|
||||
end
|
||||
|
||||
create_table "rna_informations", force: :cascade do |t|
|
||||
t.string "association_id"
|
||||
t.string "titre"
|
||||
|
@ -394,12 +421,25 @@ ActiveRecord::Schema.define(version: 20170302105557) do
|
|||
t.index ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true, using: :btree
|
||||
end
|
||||
|
||||
create_table "without_continuation_mails", force: :cascade do |t|
|
||||
t.text "body"
|
||||
t.text "object"
|
||||
t.integer "procedure_id"
|
||||
t.datetime "created_at", null: false
|
||||
t.datetime "updated_at", null: false
|
||||
t.index ["procedure_id"], name: "index_without_continuation_mails_on_procedure_id", using: :btree
|
||||
end
|
||||
|
||||
add_foreign_key "cerfas", "dossiers"
|
||||
add_foreign_key "closed_mails", "procedures"
|
||||
add_foreign_key "commentaires", "dossiers"
|
||||
add_foreign_key "dossiers", "users"
|
||||
add_foreign_key "initiated_mails", "procedures"
|
||||
add_foreign_key "procedure_paths", "administrateurs"
|
||||
add_foreign_key "procedure_paths", "procedures"
|
||||
add_foreign_key "received_mails", "procedures"
|
||||
add_foreign_key "refused_mails", "procedures"
|
||||
add_foreign_key "without_continuation_mails", "procedures"
|
||||
|
||||
create_view :searches, sql_definition: <<-SQL
|
||||
SELECT dossiers.id AS dossier_id,
|
||||
|
|
17
spec/models/concern/mail_template_concern_spec.rb
Normal file
17
spec/models/concern/mail_template_concern_spec.rb
Normal file
|
@ -0,0 +1,17 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe MailTemplateConcern do
|
||||
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--'
|
||||
expected =
|
||||
"[TPS] 1 Demande de subvention " +
|
||||
"<a target=\"_blank\" href=\"http://localhost:3000/users/dossiers/1/recapitulatif\">http://localhost:3000/users/dossiers/1/recapitulatif</a>"
|
||||
|
||||
expect(initiated_mail.object_for_dossier(dossier)).to eq(expected)
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue