From a3760b57b87a8865ff1d1bd2c5aed671bf9a6079 Mon Sep 17 00:00:00 2001 From: echarp Date: Sun, 17 Aug 2014 22:43:54 +0200 Subject: [PATCH] Utilisation d'un suffixe pour les mails, par exemple [AdL], qui perme de modifier par instance --- app/admin/translation.rb | 3 ++- app/mailers/event_mailer.rb | 9 ++++++--- app/mailers/moderation_mailer.rb | 12 ++++++++---- app/mailers/note_mailer.rb | 6 ++++-- config/locales/fr.yml | 18 +++++++++--------- db/seeds.rb | 2 ++ test/mailers/moderation_mailer_test.rb | 8 ++++---- test/mailers/note_mailer_test.rb | 4 ++-- 8 files changed, 37 insertions(+), 25 deletions(-) diff --git a/app/admin/translation.rb b/app/admin/translation.rb index 6b493cda..cdc70c22 100644 --- a/app/admin/translation.rb +++ b/app/admin/translation.rb @@ -1,8 +1,9 @@ ActiveAdmin.register I18n::Backend::ActiveRecord::Translation do - permit_params :key, :value + permit_params :locale, :key, :value form do |f| f.inputs do + f.input :locale f.input :key f.input :value, as: :pagedown_text f.actions diff --git a/app/mailers/event_mailer.rb b/app/mailers/event_mailer.rb index 21ed2863..a5b1f555 100644 --- a/app/mailers/event_mailer.rb +++ b/app/mailers/event_mailer.rb @@ -8,7 +8,8 @@ class EventMailer < ActionMailer::Base mail 'Message-ID' => "", to: event.submitter, - subject: t('event_mailer.create.subject', subject: event.title) + subject: t('mail_suffix') + + t('event_mailer.create.subject', subject: event.title) end def accept(event, current_user) @@ -18,7 +19,8 @@ class EventMailer < ActionMailer::Base mail 'In-Reply-To' => "", to: event.submitter, - subject: t('event_mailer.accept.subject', subject: event.title) + subject: t('mail_suffix') + + t('event_mailer.accept.subject', subject: event.title) end def destroy(event, current_user, reason) @@ -29,6 +31,7 @@ class EventMailer < ActionMailer::Base mail 'In-Reply-To' => "", to: event.submitter, - subject: t('event_mailer.destroy.subject', subject: event.title) + subject: t('mail_suffix') + + t('event_mailer.destroy.subject', subject: event.title) end end diff --git a/app/mailers/moderation_mailer.rb b/app/mailers/moderation_mailer.rb index 31c0aeb8..72b80230 100644 --- a/app/mailers/moderation_mailer.rb +++ b/app/mailers/moderation_mailer.rb @@ -7,7 +7,8 @@ class ModerationMailer < ActionMailer::Base mail 'Message-ID' => "", - subject: t('moderation_mailer.create.subject', subject: event.title) + subject: t('mail_suffix') + + t('moderation_mailer.create.subject', subject: event.title) end def update(older_event, event, current_user) @@ -17,7 +18,8 @@ class ModerationMailer < ActionMailer::Base mail 'In-Reply-To' => "", - subject: t('moderation_mailer.update.subject', subject: event.title) + subject: t('mail_suffix') + + t('moderation_mailer.update.subject', subject: event.title) end def accept(event, current_user) @@ -26,7 +28,8 @@ class ModerationMailer < ActionMailer::Base mail 'In-Reply-To' => "", - subject: t('moderation_mailer.accept.subject', subject: event.title) + subject: t('mail_suffix') + + t('moderation_mailer.accept.subject', subject: event.title) end def destroy(event, current_user, reason) @@ -36,6 +39,7 @@ class ModerationMailer < ActionMailer::Base mail 'In-Reply-To' => "", - subject: t('moderation_mailer.destroy.subject', subject: event.title) + subject: t('mail_suffix') + + t('moderation_mailer.destroy.subject', subject: event.title) end end diff --git a/app/mailers/note_mailer.rb b/app/mailers/note_mailer.rb index 80ea9972..1613f792 100644 --- a/app/mailers/note_mailer.rb +++ b/app/mailers/note_mailer.rb @@ -9,7 +9,8 @@ class NoteMailer < ActionMailer::Base "", to: note.event.submitter, - subject: t('note_mailer.notify.subject', subject: note.event.title) + subject: t('mail_suffix') + + t('note_mailer.notify.subject', subject: note.event.title) end def create(note) @@ -17,6 +18,7 @@ class NoteMailer < ActionMailer::Base mail 'In-Reply-To' => "", - subject: t('note_mailer.create.subject', subject: note.event.title) + subject: t('mail_suffix') + + t('note_mailer.create.subject', subject: note.event.title) end end diff --git a/config/locales/fr.yml b/config/locales/fr.yml index b93c6387..c3c2cfc2 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -304,7 +304,7 @@ Exemple: `%{daylimit}`" event_mailer: create: - subject: "[Agenda du Libre] Votre événement: '%{subject}' est en attente + subject: "Votre événement: '%{subject}' est en attente de modération" title: Bonjour, body: "Votre événement intitulé '%{subject}', @@ -316,7 +316,7 @@ 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" accept: - subject: "[Agenda du Libre] Événement '%{subject}' modéré" + subject: "Événement '%{subject}' modéré" title: Bonjour, body: "L'événement que vous avez soumis a été modéré par %{moderator}. Il est maintenant visible dans l'Agenda à l'adresse:" @@ -327,7 +327,7 @@ pouvez éditer votre événement à l'adresse:" signature: "Merci de votre contribution à l'Agenda du Libre et à bientôt!\n\n-- \nL'équipe de modération" destroy: - subject: "[Agenda du Libre] Événement '%{subject}' refusé" + subject: "Événement '%{subject}' refusé" title: Bonjour, body: Vous avez soumis l'événement suivant dans l'Agenda du Libre, et nous vous remercions de cette contribution. @@ -338,25 +338,25 @@ pouvez éditer votre événement à l'adresse:" \nL'équipe de modération" moderation_mailer: create: - subject: "[Agenda du Libre] Nouvel événement à modérer: '%{subject}'" + subject: "Nouvel événement à modérer: '%{subject}'" title: Bonjour, body: Un nouvel événement est à modérer sur signature: "Merci!\n\n-- \nAgenda du Libre" update: - subject: "[Agenda du Libre] Édition de l'événement '%{subject}'" + subject: "Édition de l'événement '%{subject}'" title: Bonjour, 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é" + subject: "Événement '%{subject}' modéré" title: Bonjour, body: L'événement a été modéré par %{author}. access: "Vous pouvez le consulter ici:" signature: "-- \nL'équipe de modération" destroy: - subject: "[Agenda du Libre] Événement '%{subject}' refusé" + subject: "Événement '%{subject}' refusé" title: Bonjour, body: "L'événement '%{subject}' a été rejeté par %{author} pour la raison suivante:\n\n" @@ -364,7 +364,7 @@ pouvez éditer votre événement à l'adresse:" signature: "-- \nL'équipe des modérateurs de l'Agenda du Libre" note_mailer: notify: - subject: "[Agenda du Libre] Demande d'informations sur l'événement '%{subject}'" + subject: "Demande d'informations sur l'événement '%{subject}'" title: Bonjour, body: "Nous avons bien reçu votre proposition d'événement '%{subject}', \net celui-ci a toute sa place dans l'Agenda du Libre. Néanmoins, avant @@ -375,7 +375,7 @@ pouvez éditer votre événement à l'adresse:" 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}'" + subject: "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" diff --git a/db/seeds.rb b/db/seeds.rb index 45ce7908..7e565ef9 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -20,6 +20,8 @@ AdminUser.create email: 'admin@example.com', password: 'password' # rubocop:disable Metrics/LineLength I18n::Backend::ActiveRecord::Translation.create([ + { locale: 'fr', key: 'mail_suffix', value: '[AdL] ' }, + { locale: 'fr', key: 'layouts.application.subtitle', value: 'Les événements du Libre en France' }, diff --git a/test/mailers/moderation_mailer_test.rb b/test/mailers/moderation_mailer_test.rb index ef1cdac9..cd55efb5 100644 --- a/test/mailers/moderation_mailer_test.rb +++ b/test/mailers/moderation_mailer_test.rb @@ -8,7 +8,7 @@ class ModerationMailerTest < ActionMailer::TestCase test 'create' do mail = ModerationMailer.create Event.unscoped.last - assert_match(/\[Agenda du Libre\] Nouvel événement à modérer: .*/, + assert_match(/Nouvel événement à modérer: .*/, mail.subject) assert_equal ['moderateurs@agendadulibre.org'], mail.to assert_equal ['moderateurs@agendadulibre.org'], mail.from @@ -24,7 +24,7 @@ class ModerationMailerTest < ActionMailer::TestCase hello world' mail = ModerationMailer.update older_event, event, User.last - assert_match(/\[Agenda du Libre\] Édition de l'événement .*/, mail.subject) + assert_match(/Édition de l'événement .*/, mail.subject) assert_equal ['moderateurs@agendadulibre.org'], mail.to assert_equal ['moderateurs@agendadulibre.org'], mail.from assert_match(/^{/, mail.body.to_s) @@ -32,7 +32,7 @@ hello world' test 'accept' do mail = ModerationMailer.accept Event.unscoped.last, User.last - assert_match(/\[Agenda du Libre\] Événement .* modéré/, mail.subject) + assert_match(/Événement .* modéré/, mail.subject) assert_equal ['moderateurs@agendadulibre.org'], mail.to assert_equal ['moderateurs@agendadulibre.org'], mail.from end @@ -40,7 +40,7 @@ hello world' test 'destroy' do mail = ModerationMailer.destroy Event.unscoped.last, User.last, 'hello world' - assert_match(/\[Agenda du Libre\] Événement .* refusé/, mail.subject) + assert_match(/Événement .* refusé/, mail.subject) assert_equal ['moderateurs@agendadulibre.org'], mail.to assert_equal ['moderateurs@agendadulibre.org'], mail.from end diff --git a/test/mailers/note_mailer_test.rb b/test/mailers/note_mailer_test.rb index 96892b1b..34951a75 100644 --- a/test/mailers/note_mailer_test.rb +++ b/test/mailers/note_mailer_test.rb @@ -9,7 +9,7 @@ class NoteMailerTest < ActionMailer::TestCase test 'notify' do mail = NoteMailer.notify Note.last - assert_match(/\[Agenda du Libre\] Demande d'informations sur l'événement.*/, + assert_match(/Demande d'informations sur l'événement.*/, mail.subject) assert_equal [Note.last.event.contact], mail.to assert_equal ['moderateurs@agendadulibre.org'], mail.from @@ -17,7 +17,7 @@ class NoteMailerTest < ActionMailer::TestCase test 'create' do mail = NoteMailer.create Note.last - assert_match(/\[Agenda du Libre\] Une note a été rajoutée à l'événement.*/, + assert_match(/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