Envoi de mail aux modérateurs en cas de modification d'événement. Envoi de mail au soumetteur quand événement modéré
This commit is contained in:
parent
f8a4c06c07
commit
f600f58251
@ -81,7 +81,7 @@ class EventsController < ApplicationController
|
|||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
if @event.update event_params
|
if @event.update event_params
|
||||||
# Send an update mail to moderators
|
# Send an update mail to moderators
|
||||||
EventMailer.update(@event).deliver
|
ModerationMailer.update(@moderation, nil).deliver
|
||||||
|
|
||||||
format.html { redirect_to :root, notice: t('.ok') }
|
format.html { redirect_to :root, notice: t('.ok') }
|
||||||
format.json { head :no_content }
|
format.json { head :no_content }
|
||||||
|
@ -20,7 +20,7 @@ class ModerationsController < ApplicationController
|
|||||||
|
|
||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
if @moderation.update(moderation_params)
|
if @moderation.update(moderation_params)
|
||||||
# Send an update mail to its author
|
# Send an update mail to moderators
|
||||||
ModerationMailer.update(@moderation, current_user).deliver
|
ModerationMailer.update(@moderation, current_user).deliver
|
||||||
|
|
||||||
format.html { redirect_to moderations_path, notice: t('.ok') }
|
format.html { redirect_to moderations_path, notice: t('.ok') }
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
class EventMailer < ActionMailer::Base
|
class EventMailer < ActionMailer::Base
|
||||||
default from: 'moderateurs@agendadulibre.org'
|
default from: 'moderateurs@agendadulibre.org'
|
||||||
default to: 'moderateurs@agendadulibre.org'
|
|
||||||
|
|
||||||
def create(event)
|
def create(event)
|
||||||
@event = event
|
@event = event
|
||||||
@ -10,10 +9,12 @@ class EventMailer < ActionMailer::Base
|
|||||||
subject: t('event_mailer.create.subject', subject: event.title)
|
subject: t('event_mailer.create.subject', subject: event.title)
|
||||||
end
|
end
|
||||||
|
|
||||||
def update(event)
|
def accept(event, current_user)
|
||||||
@event = event
|
@event = event
|
||||||
|
@current_user = current_user
|
||||||
|
|
||||||
mail 'In-Reply-To' => "<event-#{event.id}@#{ActionMailer::Base.default_url_options[:host]}>",
|
mail 'Message-ID' => "<event-#{event.id}@#{ActionMailer::Base.default_url_options[:host]}>",
|
||||||
subject: t('event_mailer.update.subject', subject: event.title)
|
to: event.contact,
|
||||||
|
subject: t('event_mailer.accept.subject', subject: event.title)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
25
app/views/event_mailer/accept.text.haml
Normal file
25
app/views/event_mailer/accept.text.haml
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
=t '.title'
|
||||||
|
\
|
||||||
|
=t '.body', moderator: @current_user
|
||||||
|
= event_url @event
|
||||||
|
\
|
||||||
|
=t '.edit_link'
|
||||||
|
= edit_event_url @event, secret: @event.secret
|
||||||
|
\
|
||||||
|
=t '.delete_link'
|
||||||
|
= cancel_event_url @event, secret: @event.secret
|
||||||
|
\
|
||||||
|
=====================================================
|
||||||
|
#{Event.human_attribute_name :title}: #{@event.title}
|
||||||
|
#{Event.human_attribute_name :start_time}: #{l @event.start_time, format: :at}
|
||||||
|
#{Event.human_attribute_name :end_time}: #{l @event.end_time, format: :at}
|
||||||
|
#{Event.human_attribute_name :region}: #{@event.region}
|
||||||
|
#{Event.human_attribute_name :city}: #{@event.city}
|
||||||
|
#{Event.human_attribute_name :url}: #{@event.url}
|
||||||
|
#{Event.human_attribute_name :contact}: #{@event.contact}
|
||||||
|
#{Event.human_attribute_name :submitter}: #{@event.submitter}
|
||||||
|
#{Event.human_attribute_name :tags}: #{@event.tags}
|
||||||
|
#{Event.human_attribute_name :description}: #{raw @event.description}
|
||||||
|
=====================================================
|
||||||
|
\
|
||||||
|
=t '.signature'
|
@ -1,13 +0,0 @@
|
|||||||
=t '.title'
|
|
||||||
\
|
|
||||||
=t '.body', subject: @event.title
|
|
||||||
|
|
||||||
- Differ.format = :ascii
|
|
||||||
= raw Differ.diff(@event.description, @event.description_was).to_s |
|
|
||||||
.gsub(/\[31m/, '') |
|
|
||||||
.gsub(/\[32m/, '') |
|
|
||||||
.gsub(/\[0m/, '') |
|
|
||||||
\
|
|
||||||
= edit_moderation_url @event
|
|
||||||
\
|
|
||||||
=t '.signature'
|
|
@ -1,6 +1,6 @@
|
|||||||
=t '.title'
|
=t '.title'
|
||||||
\
|
\
|
||||||
=t '.body', subject: @event.title, author: @current_user
|
=t '.body', subject: @event.title, author: @current_user||t('.submitter')
|
||||||
|
|
||||||
- Differ.format = :ascii
|
- Differ.format = :ascii
|
||||||
= raw Differ.diff(@event.description, @event.description_was).to_s |
|
= raw Differ.diff(@event.description, @event.description_was).to_s |
|
||||||
|
@ -254,11 +254,13 @@ fr:
|
|||||||
\n\nPendant la modération et après celle-ci si votre évènement est validé, vous pouvez éditer votre évènement à l'adresse:"
|
\n\nPendant la modération et après celle-ci si votre évènement est validé, vous pouvez éditer votre évènement à l'adresse:"
|
||||||
delete_link: "et vous pouvez l'annuler en utilisant l'adresse:"
|
delete_link: "et vous pouvez l'annuler en utilisant l'adresse:"
|
||||||
signature: "Merci de votre participation!\n\n-- \nAgenda du Libre"
|
signature: "Merci de votre participation!\n\n-- \nAgenda du Libre"
|
||||||
update:
|
accept:
|
||||||
subject: "[Agenda du Libre] Édition de l'évènement '%{subject}'"
|
subject: "[Agenda du Libre] Évènement '%{subject}' modéré"
|
||||||
title: Bonjour,
|
title: Bonjour,
|
||||||
body: "L'évènement '%{subject}' a été modifié par le soumetteur de l'évènement\n\nModifications apportées:"
|
body: "L'évènement que vous avez soumis a été modéré par %{moderator}. Il est maintenant visible dans l'Agenda à l'adresse:"
|
||||||
signature: "Bonne journée\n\n-- \nL'équipe de modération"
|
edit_link: "Vous pouvez modifier cet évènement ultérieurement pour y ajouter des précisions en vous rendant à l'adresse:"
|
||||||
|
delete_link: "Vous pouvez également l'annuler en vous rendant à l'adresse:"
|
||||||
|
signature: "Merci de votre contribution à l'Agenda du Libre et à bientôt!\n\n-- \nL'équipe de modération"
|
||||||
moderation_mailer:
|
moderation_mailer:
|
||||||
create:
|
create:
|
||||||
subject: "[Agenda du Libre] Nouvel évènement à modérer: '%{subject}'"
|
subject: "[Agenda du Libre] Nouvel évènement à modérer: '%{subject}'"
|
||||||
@ -268,7 +270,8 @@ fr:
|
|||||||
update:
|
update:
|
||||||
subject: "[Agenda du Libre] Édition de l'évènement '%{subject}'"
|
subject: "[Agenda du Libre] Édition de l'évènement '%{subject}'"
|
||||||
title: Bonjour,
|
title: Bonjour,
|
||||||
body: "L'évènement '%{subject}' a été modifié par %{author}\n\nModifications apportées:"
|
body: "L'évènement '%{subject}' a été modifié par %{author}.\n\nModifications apportées:"
|
||||||
|
submitter: le soumetteur
|
||||||
signature: "Bonne journée\n\n-- \nL'équipe de modération"
|
signature: "Bonne journée\n\n-- \nL'équipe de modération"
|
||||||
accept:
|
accept:
|
||||||
subject: "[Agenda du Libre] Évènement '%{subject}' modéré"
|
subject: "[Agenda du Libre] Évènement '%{subject}' modéré"
|
||||||
|
@ -13,10 +13,10 @@ class EventMailerTest < ActionMailer::TestCase
|
|||||||
assert_match(/Bonjour.*/, mail.body.encoded)
|
assert_match(/Bonjour.*/, mail.body.encoded)
|
||||||
end
|
end
|
||||||
|
|
||||||
test 'update' do
|
test 'accept' do
|
||||||
mail = EventMailer.update Event.last
|
mail = EventMailer.accept Event.last
|
||||||
assert_match(/\[Agenda du Libre\] Édition de l'évènement .*/, mail.subject)
|
assert_match(/\[Agenda du Libre\] Évènement: .* modéré/, mail.subject)
|
||||||
assert_equal ['moderateurs@agendadulibre.org'], mail.to
|
assert_equal [Event.last.contact], mail.to
|
||||||
assert_equal ['moderateurs@agendadulibre.org'], mail.from
|
assert_equal ['moderateurs@agendadulibre.org'], mail.from
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -7,9 +7,9 @@ class EventMailerPreview < ActionMailer::Preview
|
|||||||
EventMailer.create Event.last
|
EventMailer.create Event.last
|
||||||
end
|
end
|
||||||
|
|
||||||
# Preview this email at http://localhost:3000/rails/mailers/event_mailer/update
|
# Preview this email at http://localhost:3000/rails/mailers/event_mailer/accept
|
||||||
def update
|
def accept
|
||||||
ActionMailer::Base.default_url_options[:host] = 'localhost:3000'
|
ActionMailer::Base.default_url_options[:host] = 'localhost:3000'
|
||||||
EventMailer.update Event.last
|
EventMailer.accept Event.last, User.last
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user