Starting to add email sending

This commit is contained in:
Matt Barringer 2013-01-14 08:49:49 +01:00
parent b801f0dc19
commit 900bcb16d5
16 changed files with 248 additions and 21 deletions

View file

@ -5,6 +5,7 @@ class Conference < ActiveRecord::Base
has_paper_trail
has_one :email_settings, :dependent => :destroy
has_one :call_for_papers, :dependent => :destroy
has_many :events, :dependent => :destroy
has_many :event_types, :dependent => :destroy
@ -18,6 +19,7 @@ class Conference < ActiveRecord::Base
accepts_nested_attributes_for :tracks, :reject_if => proc {|r| r["name"].blank?}, :allow_destroy => true
accepts_nested_attributes_for :venue
accepts_nested_attributes_for :event_types, :allow_destroy => true
accepts_nested_attributes_for :email_settings
validates_presence_of :title,
:short_title,
@ -26,7 +28,7 @@ class Conference < ActiveRecord::Base
validates_format_of :short_title, :with => /^[a-zA-Z0-9_-]*$/
before_create :generate_guid
before_create :create_venue
before_create :create_email_settings
def self.current
self.order("created_at DESC").first
@ -88,6 +90,10 @@ class Conference < ActiveRecord::Base
true
end
def create_email_settings
build_email_settings
true
end
def generate_guid
begin
guid = SecureRandom.urlsafe_base64

View file

@ -0,0 +1,52 @@
class EmailSettings < ActiveRecord::Base
attr_accessible :send_on_registration, :send_on_accepted, :send_on_rejected, :send_on_confirmed_without_registration,
:registration_email_template, :accepted_email_template, :rejected_email_template, :confirmed_email_template,
:registration_subject, :accepted_subject, :rejected_subject, :confirmed_without_registration_subject
def get_values(host, conference, person, event)
h = {
"email" => person.email,
"name" => person.public_name,
"conference" => conference.title,
"proposalslink" => Rails.application.routes.url_helpers.conference_proposal_index_url(conference.short_title, :host => host),
"registrationlink" => Rails.application.routes.url_helpers.register_conference_url(conference.short_title, :host => host)
}
if !event.nil?
h["eventtitle"] = event.title
end
h
end
def generate_registration_email(host, conference, person)
values = get_values(host, conference, person, nil)
template = self.registration_email_template
parse_template(template, values)
end
def generate_accepted_email(host, conference, person, event)
values = get_values(host, conference, person, event)
template = self.accepted_email_template
parse_template(template, values)
end
def generate_rejected_email(host, conference, person, event)
values = get_values(host, conference, person, event)
template = self.rejected_email_template
parse_template(template, values)
end
def confirmed_but_not_registered_email(host, conference, person, event)
values = get_values(host, conference, person, event)
template = self.confirmed_email_template
parse_template(template, values)
end
def parse_template(text, values)
values.each do |key, value|
text = text.sub"{#{key}}", value
end
text
end
end

View file

@ -88,12 +88,8 @@ class Event < ActiveRecord::Base
end
def process_acceptance(options)
# if options[:send_mail]
# self.event_people.presenter.each do |event_person|
# event_person.generate_token!
# SelectionNotification.acceptance_notification(event_person).deliver
# end
# end
#if options[:send_mail]
#end
end