Starting to add email sending
This commit is contained in:
parent
b801f0dc19
commit
900bcb16d5
16 changed files with 248 additions and 21 deletions
|
|
@ -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
|
||||
|
|
|
|||
52
app/models/email_settings.rb
Normal file
52
app/models/email_settings.rb
Normal 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
|
||||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue