From f600f582515443473262622bb2bc77852f878f38 Mon Sep 17 00:00:00 2001 From: echarp Date: Tue, 1 Jul 2014 22:17:57 +0200 Subject: [PATCH] =?UTF-8?q?Envoi=20de=20mail=20aux=20mod=C3=A9rateurs=20en?= =?UTF-8?q?=20cas=20de=20modification=20d'=C3=A9v=C3=A9nement.=20Envoi=20d?= =?UTF-8?q?e=20mail=20au=20soumetteur=20quand=20=C3=A9v=C3=A9nement=20mod?= =?UTF-8?q?=C3=A9r=C3=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/events_controller.rb | 2 +- app/controllers/moderations_controller.rb | 2 +- app/mailers/event_mailer.rb | 9 ++++--- app/views/event_mailer/accept.text.haml | 25 +++++++++++++++++++ app/views/event_mailer/update.text.haml | 13 ---------- app/views/moderation_mailer/update.text.haml | 2 +- config/locales/fr.yml | 13 ++++++---- test/mailers/event_mailer_test.rb | 8 +++--- test/mailers/previews/event_mailer_preview.rb | 6 ++--- 9 files changed, 48 insertions(+), 32 deletions(-) create mode 100644 app/views/event_mailer/accept.text.haml delete mode 100644 app/views/event_mailer/update.text.haml diff --git a/app/controllers/events_controller.rb b/app/controllers/events_controller.rb index 3e7290b2..e82dbbe4 100644 --- a/app/controllers/events_controller.rb +++ b/app/controllers/events_controller.rb @@ -81,7 +81,7 @@ class EventsController < ApplicationController respond_to do |format| if @event.update event_params # Send an update mail to moderators - EventMailer.update(@event).deliver + ModerationMailer.update(@moderation, nil).deliver format.html { redirect_to :root, notice: t('.ok') } format.json { head :no_content } diff --git a/app/controllers/moderations_controller.rb b/app/controllers/moderations_controller.rb index 7f779a2b..f48278b0 100644 --- a/app/controllers/moderations_controller.rb +++ b/app/controllers/moderations_controller.rb @@ -20,7 +20,7 @@ class ModerationsController < ApplicationController respond_to do |format| if @moderation.update(moderation_params) - # Send an update mail to its author + # Send an update mail to moderators ModerationMailer.update(@moderation, current_user).deliver format.html { redirect_to moderations_path, notice: t('.ok') } diff --git a/app/mailers/event_mailer.rb b/app/mailers/event_mailer.rb index ef35bdc2..dceda4e3 100644 --- a/app/mailers/event_mailer.rb +++ b/app/mailers/event_mailer.rb @@ -1,6 +1,5 @@ class EventMailer < ActionMailer::Base default from: 'moderateurs@agendadulibre.org' - default to: 'moderateurs@agendadulibre.org' def create(event) @event = event @@ -10,10 +9,12 @@ class EventMailer < ActionMailer::Base subject: t('event_mailer.create.subject', subject: event.title) end - def update(event) + def accept(event, current_user) @event = event + @current_user = current_user - mail 'In-Reply-To' => "", - subject: t('event_mailer.update.subject', subject: event.title) + mail 'Message-ID' => "", + to: event.contact, + subject: t('event_mailer.accept.subject', subject: event.title) end end diff --git a/app/views/event_mailer/accept.text.haml b/app/views/event_mailer/accept.text.haml new file mode 100644 index 00000000..b1bbb08a --- /dev/null +++ b/app/views/event_mailer/accept.text.haml @@ -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' diff --git a/app/views/event_mailer/update.text.haml b/app/views/event_mailer/update.text.haml deleted file mode 100644 index 2931d630..00000000 --- a/app/views/event_mailer/update.text.haml +++ /dev/null @@ -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' diff --git a/app/views/moderation_mailer/update.text.haml b/app/views/moderation_mailer/update.text.haml index 30662a98..1ba5a915 100644 --- a/app/views/moderation_mailer/update.text.haml +++ b/app/views/moderation_mailer/update.text.haml @@ -1,6 +1,6 @@ =t '.title' \ -=t '.body', subject: @event.title, author: @current_user +=t '.body', subject: @event.title, author: @current_user||t('.submitter') - Differ.format = :ascii = raw Differ.diff(@event.description, @event.description_was).to_s | diff --git a/config/locales/fr.yml b/config/locales/fr.yml index 169161bf..13912534 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -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:" delete_link: "et vous pouvez l'annuler en utilisant l'adresse:" signature: "Merci de votre participation!\n\n-- \nAgenda du Libre" - update: - subject: "[Agenda du Libre] Édition de l'évènement '%{subject}'" + accept: + subject: "[Agenda du Libre] Évènement '%{subject}' modéré" title: Bonjour, - body: "L'évènement '%{subject}' a été modifié par le soumetteur de l'évènement\n\nModifications apportées:" - signature: "Bonne journée\n\n-- \nL'équipe de modération" + body: "L'évènement que vous avez soumis a été modéré par %{moderator}. Il est maintenant visible dans l'Agenda à l'adresse:" + 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: create: subject: "[Agenda du Libre] Nouvel évènement à modérer: '%{subject}'" @@ -268,7 +270,8 @@ fr: update: subject: "[Agenda du Libre] Édition de l'évènement '%{subject}'" 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" accept: subject: "[Agenda du Libre] Évènement '%{subject}' modéré" diff --git a/test/mailers/event_mailer_test.rb b/test/mailers/event_mailer_test.rb index 8b40d00d..8cdbe2e2 100644 --- a/test/mailers/event_mailer_test.rb +++ b/test/mailers/event_mailer_test.rb @@ -13,10 +13,10 @@ class EventMailerTest < ActionMailer::TestCase assert_match(/Bonjour.*/, mail.body.encoded) end - test 'update' do - mail = EventMailer.update Event.last - assert_match(/\[Agenda du Libre\] Édition de l'évènement .*/, mail.subject) - assert_equal ['moderateurs@agendadulibre.org'], mail.to + test 'accept' do + mail = EventMailer.accept Event.last + assert_match(/\[Agenda du Libre\] Évènement: .* modéré/, mail.subject) + assert_equal [Event.last.contact], mail.to assert_equal ['moderateurs@agendadulibre.org'], mail.from end end diff --git a/test/mailers/previews/event_mailer_preview.rb b/test/mailers/previews/event_mailer_preview.rb index 9178029b..3e03007f 100644 --- a/test/mailers/previews/event_mailer_preview.rb +++ b/test/mailers/previews/event_mailer_preview.rb @@ -7,9 +7,9 @@ class EventMailerPreview < ActionMailer::Preview EventMailer.create Event.last end - # Preview this email at http://localhost:3000/rails/mailers/event_mailer/update - def update + # Preview this email at http://localhost:3000/rails/mailers/event_mailer/accept + def accept ActionMailer::Base.default_url_options[:host] = 'localhost:3000' - EventMailer.update Event.last + EventMailer.accept Event.last, User.last end end