Le rajout de note à un evt en modération génère un mail à destination des modérateurs
This commit is contained in:
parent
4ba60cbcbc
commit
2cacc6b444
@ -15,10 +15,11 @@ class NotesController < ApplicationController
|
|||||||
if @note.save
|
if @note.save
|
||||||
if params[:envoiParMail] == 'oui'
|
if params[:envoiParMail] == 'oui'
|
||||||
# Send an update mail to its author
|
# Send an update mail to its author
|
||||||
NoteMailer.create(@note).deliver
|
NoteMailer.notify(@note).deliver
|
||||||
@note.contents = t '.sendByMailWrap', contents: @note.contents
|
@note.contents = t '.sendByMailWrap', contents: @note.contents
|
||||||
@note.save
|
@note.save
|
||||||
end
|
end
|
||||||
|
NoteMailer.create(@note).deliver
|
||||||
|
|
||||||
format.html { redirect_to moderations_url, notice: t('.ok') }
|
format.html { redirect_to moderations_url, notice: t('.ok') }
|
||||||
format.json { render action: 'show', status: :created, location: @event }
|
format.json { render action: 'show', status: :created, location: @event }
|
||||||
|
@ -1,10 +1,16 @@
|
|||||||
class NoteMailer < ActionMailer::Base
|
class NoteMailer < ActionMailer::Base
|
||||||
def create(note)
|
def notify(note)
|
||||||
@note = note
|
@note = note
|
||||||
|
|
||||||
mail 'In-Reply-To' => "<event-#{note.event.id}@#{ActionMailer::Base.default_url_options[:host]}>",
|
mail 'In-Reply-To' => "<event-#{note.event.id}@#{ActionMailer::Base.default_url_options[:host]}>",
|
||||||
to: note.event.submitter,
|
to: note.event.submitter,
|
||||||
cc: AgendaDuLibreRails::Application.config.action_mailer.default_options[:from],
|
subject: t('note_mailer.notify.subject', subject: note.event.title)
|
||||||
|
end
|
||||||
|
|
||||||
|
def create(note)
|
||||||
|
@note = note
|
||||||
|
|
||||||
|
mail 'In-Reply-To' => "<mod-#{note.event.id}@#{ActionMailer::Base.default_url_options[:host]}>",
|
||||||
subject: t('note_mailer.create.subject', subject: note.event.title)
|
subject: t('note_mailer.create.subject', subject: note.event.title)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -2,12 +2,8 @@
|
|||||||
\
|
\
|
||||||
=t '.body', subject: @note.event.title, contents: @note.contents
|
=t '.body', subject: @note.event.title, contents: @note.contents
|
||||||
\
|
\
|
||||||
= sanitize @note.contents.html_safe,
|
= strip_tags @note.contents
|
||||||
tags: %w(p br table tr td ul ol li a strong b em i img),
|
\
|
||||||
attributes: %w(href src width height)
|
= moderations_url
|
||||||
\
|
\
|
||||||
=t '.edit_link'
|
|
||||||
\
|
|
||||||
= edit_event_url @note.event, secret: @note.event.secret
|
|
||||||
\
|
|
||||||
=t '.signature'
|
=t '.signature'
|
||||||
|
13
app/views/note_mailer/notify.text.haml
Normal file
13
app/views/note_mailer/notify.text.haml
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
=t '.title'
|
||||||
|
\
|
||||||
|
=t '.body', subject: @note.event.title, contents: @note.contents
|
||||||
|
\
|
||||||
|
= sanitize @note.contents.html_safe,
|
||||||
|
tags: %w(p br table tr td ul ol li a strong b em i img),
|
||||||
|
attributes: %w(href src width height)
|
||||||
|
\
|
||||||
|
=t '.edit_link'
|
||||||
|
\
|
||||||
|
= edit_event_url @note.event, secret: @note.event.secret
|
||||||
|
\
|
||||||
|
=t '.signature'
|
@ -229,7 +229,7 @@ Exemple: `%{daylimit}`"
|
|||||||
back: Modération
|
back: Modération
|
||||||
title: Ajout d'une note de modération
|
title: Ajout d'une note de modération
|
||||||
create:
|
create:
|
||||||
sendByMailWrap: "<p>Demande d'informations complémentaires:</p><pre>%{contents}</pre>"
|
sendByMailWrap: "<p>Demande d'informations complémentaires:</p> <pre>%{contents}</pre>"
|
||||||
ok: La note a bien été ajoutée, merci!
|
ok: La note a bien été ajoutée, merci!
|
||||||
form:
|
form:
|
||||||
title: Rédaction du message
|
title: Rédaction du message
|
||||||
@ -298,7 +298,7 @@ Exemple: `%{daylimit}`"
|
|||||||
reminder: "Pour rappel, l'événement:"
|
reminder: "Pour rappel, l'événement:"
|
||||||
signature: "-- \nL'équipe des modérateurs de l'Agenda du Libre"
|
signature: "-- \nL'équipe des modérateurs de l'Agenda du Libre"
|
||||||
note_mailer:
|
note_mailer:
|
||||||
create:
|
notify:
|
||||||
subject: "[Agenda du Libre] Demande d'informations sur l'événement '%{subject}'"
|
subject: "[Agenda du Libre] Demande d'informations sur l'événement '%{subject}'"
|
||||||
title: Bonjour,
|
title: Bonjour,
|
||||||
body: "Nous avons bien reçu votre proposition d'événement '%{subject}',
|
body: "Nous avons bien reçu votre proposition d'événement '%{subject}',
|
||||||
@ -308,3 +308,8 @@ Exemple: `%{daylimit}`"
|
|||||||
edit_link: "Nous vous invitons à ajouter ces informations en éditant directement
|
edit_link: "Nous vous invitons à ajouter ces informations en éditant directement
|
||||||
\nl'événement à l'adresse suivante:"
|
\nl'événement à l'adresse suivante:"
|
||||||
signature: "Avec tous nos remerciements pour votre contribution,\n\n-- \nL'équipe des modérateurs de l'Agenda du Libre"
|
signature: "Avec tous nos remerciements pour votre contribution,\n\n-- \nL'équipe des modérateurs de l'Agenda du Libre"
|
||||||
|
create:
|
||||||
|
subject: "[Agenda du Libre] Une note a été rajoutée à l'événement '%{subject}'"
|
||||||
|
title: Bonjour,
|
||||||
|
body: "Une note a été rajoutée à '%{subject}':"
|
||||||
|
signature: "-- \nL'équipe de modération"
|
||||||
|
@ -5,10 +5,17 @@ class NoteMailerTest < ActionMailer::TestCase
|
|||||||
ActionMailer::Base.default_url_options[:host] = 'localhost:3000'
|
ActionMailer::Base.default_url_options[:host] = 'localhost:3000'
|
||||||
end
|
end
|
||||||
|
|
||||||
test 'create' do
|
test 'notify' do
|
||||||
mail = NoteMailer.create Note.last
|
mail = NoteMailer.notify Note.last
|
||||||
assert_match(/\[Agenda du Libre\] Demande d'informations sur l'événement .*/, mail.subject)
|
assert_match(/\[Agenda du Libre\] Demande d'informations sur l'événement .*/, mail.subject)
|
||||||
assert_equal [Note.last.event.contact], mail.to
|
assert_equal [Note.last.event.contact], mail.to
|
||||||
assert_equal ["moderateurs@agendadulibre.org"], mail.from
|
assert_equal ["moderateurs@agendadulibre.org"], mail.from
|
||||||
end
|
end
|
||||||
|
|
||||||
|
test 'create' do
|
||||||
|
mail = NoteMailer.create Note.last
|
||||||
|
assert_match(/\[Agenda du Libre\] Une note a été rajoutée à l'événement .*/, mail.subject)
|
||||||
|
assert_not_equal [Note.last.event.contact], mail.to
|
||||||
|
assert_equal ["moderateurs@agendadulibre.org"], mail.from
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
@ -1,5 +1,11 @@
|
|||||||
# Preview all emails at http://localhost:3000/rails/mailers/note_mailer
|
# Preview all emails at http://localhost:3000/rails/mailers/note_mailer
|
||||||
class NoteMailerPreview < ActionMailer::Preview
|
class NoteMailerPreview < ActionMailer::Preview
|
||||||
|
# Preview this email at http://localhost:3000/rails/mailers/note_mailer/notify
|
||||||
|
def notify
|
||||||
|
ActionMailer::Base.default_url_options[:host] = 'localhost:3000'
|
||||||
|
NoteMailer.notify Note.last
|
||||||
|
end
|
||||||
|
|
||||||
# Preview this email at http://localhost:3000/rails/mailers/note_mailer/create
|
# Preview this email at http://localhost:3000/rails/mailers/note_mailer/create
|
||||||
def create
|
def create
|
||||||
ActionMailer::Base.default_url_options[:host] = 'localhost:3000'
|
ActionMailer::Base.default_url_options[:host] = 'localhost:3000'
|
||||||
|
Loading…
Reference in New Issue
Block a user