Send email to organizers whenever a guest changes their attendance status #290
							
								
								
									
										16
									
								
								app/mailers/admin_mailer.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								app/mailers/admin_mailer.rb
									
									
									
									
									
										Normal file
									
								
							| @ -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 | ||||||
| @ -23,5 +23,6 @@ class Wedding < ApplicationRecord | |||||||
|   has_many :guests, dependent: :delete_all |   has_many :guests, dependent: :delete_all | ||||||
|   has_many :groups, dependent: :delete_all |   has_many :groups, dependent: :delete_all | ||||||
|   has_many :invitations, dependent: :delete_all |   has_many :invitations, dependent: :delete_all | ||||||
|  |   has_many :users, dependent: :delete_all | ||||||
|   has_one :website, dependent: :destroy |   has_one :website, dependent: :destroy | ||||||
| end | end | ||||||
|  | |||||||
							
								
								
									
										15
									
								
								app/views/admin_mailer/attendance_change_email.html.erb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								app/views/admin_mailer/attendance_change_email.html.erb
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,15 @@ | |||||||
|  | <p><%= I18n.t('admin_mailer.greeting') %>,</p> | ||||||
|  | 
 | ||||||
|  | <p> | ||||||
|  |   <%= I18n.t('admin_mailer.attendance_change_email.paragraph_1', name: @guest.name) %> | ||||||
|  | </p> | ||||||
|  | 
 | ||||||
|  | <ul> | ||||||
|  |   <li> | ||||||
|  |     <strong><%= I18n.t("active_record.attributes.guest.status") %>:</strong> <%= I18n.t("active_record.attributes.guest/status.#{@guest.status}") %> | ||||||
|  |   </li> | ||||||
|  | </ul> | ||||||
|  | 
 | ||||||
|  | <p> | ||||||
|  |   <%= I18n.t("admin_mailer.attendance_change_email.notify_on_updates") %> | ||||||
|  | </p> | ||||||
							
								
								
									
										7
									
								
								app/views/admin_mailer/attendance_change_email.text.erb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								app/views/admin_mailer/attendance_change_email.text.erb
									
									
									
									
									
										Normal file
									
								
							| @ -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") %> | ||||||
| @ -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: | en: | ||||||
|   hello: "Hello world" |   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." | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user