diff --git a/app/mailers/admin_mailer.rb b/app/mailers/admin_mailer.rb new file mode 100644 index 0000000..302673a --- /dev/null +++ b/app/mailers/admin_mailer.rb @@ -0,0 +1,16 @@ +# frozen_string_literal: true + +class AdminMailer < ApplicationMailer + def attendance_change_email + @guest = Guest.find(params[:guest_id]) + + mail( + to: @guest.wedding.users.pluck(:email), + subject: I18n.t( + 'admin_mailer.attendance_change_email.subject', + name: @guest.name, + status: I18n.t("active_record.attributes.guest/status.#{@guest.status}") + ) + ) + end +end diff --git a/app/models/wedding.rb b/app/models/wedding.rb index 36e3ca8..f2b34f6 100644 --- a/app/models/wedding.rb +++ b/app/models/wedding.rb @@ -23,5 +23,6 @@ class Wedding < ApplicationRecord has_many :guests, dependent: :delete_all has_many :groups, dependent: :delete_all has_many :invitations, dependent: :delete_all + has_many :users, dependent: :delete_all has_one :website, dependent: :destroy end diff --git a/app/views/admin_mailer/attendance_change_email.html.erb b/app/views/admin_mailer/attendance_change_email.html.erb new file mode 100644 index 0000000..bac5c40 --- /dev/null +++ b/app/views/admin_mailer/attendance_change_email.html.erb @@ -0,0 +1,15 @@ +
<%= I18n.t('admin_mailer.greeting') %>,
+ ++ <%= I18n.t('admin_mailer.attendance_change_email.paragraph_1', name: @guest.name) %> +
+ ++ <%= I18n.t("admin_mailer.attendance_change_email.notify_on_updates") %> +
\ No newline at end of file diff --git a/app/views/admin_mailer/attendance_change_email.text.erb b/app/views/admin_mailer/attendance_change_email.text.erb new file mode 100644 index 0000000..120e824 --- /dev/null +++ b/app/views/admin_mailer/attendance_change_email.text.erb @@ -0,0 +1,7 @@ +<%= I18n.t('admin_mailer.greeting') %>, + +<%= I18n.t('admin_mailer.attendance_change_email.paragraph_1', name: @guest.name) %> + +- <%= I18n.t("active_record.attributes.guest.status") %>: <%= I18n.t("active_record.attributes.guest/status.#{@guest.status}") %> + +<%= I18n.t("admin_mailer.attendance_change_email.notify_on_updates") %> \ No newline at end of file diff --git a/config/locales/en.yml b/config/locales/en.yml index 6c349ae..b85268e 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1,31 +1,19 @@ -# Files in the config/locales directory are used for internationalization and -# are automatically loaded by Rails. If you want to use locales other than -# English, add the necessary files in this directory. -# -# To use the locales, use `I18n.t`: -# -# I18n.t "hello" -# -# In views, this is aliased to just `t`: -# -# <%= t("hello") %> -# -# To use a different locale, set it with `I18n.locale`: -# -# I18n.locale = :es -# -# This would use the information in config/locales/es.yml. -# -# To learn more about the API, please read the Rails Internationalization guide -# at https://guides.rubyonrails.org/i18n.html. -# -# Be aware that YAML interprets the following case-insensitive strings as -# booleans: `true`, `false`, `on`, `off`, `yes`, `no`. Therefore, these strings -# must be quoted to be interpreted as strings. For example: -# -# en: -# "yes": yup -# enabled: "ON" - en: hello: "Hello world" + active_record: + attributes: + guest: + status: Status + guest/status: + considered: Considered + invited: Invited + confirmed: Confirmed + declined: Declined + tentative: Tentative + + admin_mailer: + greeting: "Dear user" + attendance_change_email: + subject: "%{name} has changed their attendance status: %{status}" + paragraph_1: "The guest %{name} has changed their attendance for the wedding." + notify_on_updates: "You will be notified of any further changes to their attendance status."