osem-fcy/app/models/email_settings.rb

81 lines
3.4 KiB
Ruby
Raw Normal View History

2013-01-14 08:49:49 +01:00
class EmailSettings < ActiveRecord::Base
2014-06-24 12:14:53 +03:00
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,
:send_on_updated_conference_dates, :updated_conference_dates_subject,
:updated_conference_dates_template, :send_on_updated_conference_registration_dates,
2014-07-15 19:07:22 +05:30
:updated_conference_registration_dates_subject, :updated_conference_registration_dates_template,
:send_on_venue_update, :venue_update_subject, :venue_update_template,
:send_on_call_for_papers_dates_updates, :send_on_call_for_papers_schedule_public,
:call_for_papers_schedule_public_subject, :call_for_papers_dates_updates_subject,
:call_for_papers_schedule_public_template, :call_for_papers_dates_updates_template
2013-01-14 08:49:49 +01:00
2014-06-23 19:07:50 +03:00
def get_values(conference, user, event = nil)
2013-01-14 08:49:49 +01:00
h = {
2014-06-26 15:43:24 +03:00
'email' => user.email,
'name' => user.name,
'conference' => conference.title,
'conference_start_date' => conference.start_date,
'conference_end_date' => conference.end_date,
2015-02-27 13:37:40 +01:00
'registrationlink' => Rails.application.routes.url_helpers.conference_conference_registrations_url(
conference.short_title, host: CONFIG['url_for_emails']),
'conference_splash_link' => Rails.application.routes.url_helpers.conference_url(
conference.short_title, host: CONFIG['url_for_emails']),
2014-12-17 14:28:31 +01:00
2014-11-27 14:31:44 +01:00
'schedule_link' => Rails.application.routes.url_helpers.schedule_conference_url(
conference.short_title, host: CONFIG['url_for_emails'])
2013-01-14 08:49:49 +01:00
}
2014-12-17 14:28:31 +01:00
if conference.call_for_paper
h['cfp_start_date'] = conference.call_for_paper.start_date
h['cfp_end_date'] = conference.call_for_paper.end_date
else
h['cfp_start_date'] = 'Unknown'
h['cfp_end_date'] = 'Unknown'
end
if conference.venue
h['venue'] = conference.venue.name
h['venue_address'] = conference.venue.address
else
h['venue'] = 'Unknown'
h['venue_address'] = 'Unknown'
end
if conference.registration_period
h['registration_start_date'] = conference.registration_period.start_date
h['registration_end_date'] = conference.registration_period.end_date
end
2013-01-14 08:49:49 +01:00
if !event.nil?
2014-06-24 12:14:53 +03:00
h['eventtitle'] = event.title
2015-02-27 13:37:40 +01:00
h['proposalslink'] = Rails.application.routes.url_helpers.conference_proposal_index_url(
conference.short_title, host: CONFIG['url_for_emails'])
2013-01-14 08:49:49 +01:00
end
h
end
def generate_event_mail(event, event_template)
values = get_values(event.conference, event.submitter, event)
parse_template(event_template, values)
2013-01-14 08:49:49 +01:00
end
def generate_email_on_conf_updates(conference, user, conf_update_template)
values = get_values(conference, user)
parse_template(conf_update_template, values)
end
2013-01-14 08:49:49 +01:00
def parse_template(text, values)
values.each do |key, value|
if value.kind_of?(Date)
text = text.gsub "{#{key}}", value.strftime('%Y-%m-%d') unless text.blank?
else
text = text.gsub "{#{key}}", value unless text.blank? || value.blank?
end
2013-01-14 08:49:49 +01:00
end
text
end
2013-02-18 20:36:21 +01:00
end