From 5baeee9ee87ac50af9178c0e2d424af7f54ce339 Mon Sep 17 00:00:00 2001 From: Gopesh Tulsyan Date: Tue, 15 Jul 2014 19:07:22 +0530 Subject: [PATCH] Venue update notifications done --- app/controllers/admin/venue_controller.rb | 10 +++++++++- app/mailers/mailbot.rb | 9 +++++++++ app/models/email_settings.rb | 2 +- 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/app/controllers/admin/venue_controller.rb b/app/controllers/admin/venue_controller.rb index 4c8696d6..9c7d8359 100644 --- a/app/controllers/admin/venue_controller.rb +++ b/app/controllers/admin/venue_controller.rb @@ -6,7 +6,15 @@ class Admin::VenueController < ApplicationController def update @venue = @conference.venue - if @venue.update_attributes!(params[:venue]) + @venue.assign_attributes(params[:venue]) + unless @venue.name.blank? || @venue.address.blank? || @conference.registrations.blank? + if @venue.name_changed? || @venue.address_changed? && @conference.email_settings.send_on_venue_update + venue_notify = Mailbot.send_email_on_venue_update(@conference) + end + end + + if @venue.update_attributes(params[:venue]) + venue_notify.deliver unless venue_notify.blank? redirect_to(admin_conference_venue_info_path(conference_id: @conference.short_title), notice: 'Venue was successfully updated.') else diff --git a/app/mailers/mailbot.rb b/app/mailers/mailbot.rb index a7bd0807..51918d34 100644 --- a/app/mailers/mailbot.rb +++ b/app/mailers/mailbot.rb @@ -56,6 +56,15 @@ class Mailbot < ActionMailer::Base end end + def send_email_on_venue_update(conference) + subject = conference.email_settings.venue_update_subject.blank? ? "#{conference.title} location has been changed" : conference.email_settings.venue_update_subject + partial = "#{conference.title} new location is: #{conference.venue.name}.\n Address: #{conference.venue.address}\n. For more information please visit #{Rails.application.routes.url_helpers.conference_path(conference.short_title, host: CONFIG['url_for_emails'])}" + body = conference.email_settings.venue_update_template.blank? ? partial : "#{conference.email_settings.venue_update_template}\n #{partial}" + conference.registrations.each do |u| + build_email(conference, u.email, subject, body) + end + end + def build_email(conference, to, subject, body) mail(:to => to, :from => conference.contact_email, diff --git a/app/models/email_settings.rb b/app/models/email_settings.rb index f2d1c203..f22c2102 100644 --- a/app/models/email_settings.rb +++ b/app/models/email_settings.rb @@ -6,7 +6,7 @@ class EmailSettings < ActiveRecord::Base :confirmed_without_registration_subject, :send_on_updated_conference_dates, :updated_conference_dates_subject, :updated_conference_dates_template, :send_on_updated_conference_registration_dates, - :updated_conference_registration_dates_subject, :updated_conference_registration_dates_template + :updated_conference_registration_dates_subject, :updated_conference_registration_dates_template, :send_on_venue_update, :venue_update_subject, :venue_update_template