2013-01-14 08:49:49 +01:00
|
|
|
class Mailbot < ActionMailer::Base
|
2014-08-18 21:54:43 +03:00
|
|
|
default from: 'no-reply@example.com'
|
2013-01-14 08:49:49 +01:00
|
|
|
|
2013-01-17 13:56:05 +01:00
|
|
|
def registration_mail(conference, person)
|
|
|
|
|
build_email(conference,
|
|
|
|
|
person.email,
|
|
|
|
|
conference.email_settings.registration_subject,
|
2015-10-06 11:32:40 +02:00
|
|
|
conference.email_settings.generate_email_on_conf_updates(conference, person, conference.email_settings.registration_body))
|
2013-01-14 08:49:49 +01:00
|
|
|
end
|
|
|
|
|
|
2013-01-17 13:56:05 +01:00
|
|
|
def acceptance_mail(event)
|
|
|
|
|
conference = event.conference
|
|
|
|
|
person = event.submitter
|
|
|
|
|
build_email(conference,
|
|
|
|
|
person.email,
|
|
|
|
|
conference.email_settings.accepted_subject,
|
2015-10-06 11:32:40 +02:00
|
|
|
conference.email_settings.generate_event_mail(event, conference.email_settings.accepted_body))
|
2013-01-14 08:49:49 +01:00
|
|
|
end
|
|
|
|
|
|
2013-01-17 13:56:05 +01:00
|
|
|
def rejection_mail(event)
|
|
|
|
|
conference = event.conference
|
|
|
|
|
person = event.submitter
|
|
|
|
|
build_email(conference,
|
|
|
|
|
person.email,
|
|
|
|
|
conference.email_settings.rejected_subject,
|
2015-10-06 11:32:40 +02:00
|
|
|
conference.email_settings.generate_event_mail(event, conference.email_settings.rejected_body))
|
2013-01-17 13:56:05 +01:00
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def confirm_reminder_mail(event)
|
|
|
|
|
conference = event.conference
|
|
|
|
|
person = event.submitter
|
|
|
|
|
build_email(conference,
|
|
|
|
|
person.email,
|
|
|
|
|
conference.email_settings.confirmed_without_registration_subject,
|
2015-10-06 11:32:40 +02:00
|
|
|
conference.email_settings.generate_event_mail(event, conference.email_settings.confirmed_without_registration_body))
|
2013-01-14 08:49:49 +01:00
|
|
|
end
|
|
|
|
|
|
2014-07-23 13:42:03 +02:00
|
|
|
def conference_date_update_mail(conference)
|
2014-07-25 13:13:35 +05:30
|
|
|
User.joins(:subscriptions).merge(conference.subscriptions) do |user|
|
2014-07-23 13:42:03 +02:00
|
|
|
build_email(conference,
|
2014-07-25 13:13:35 +05:30
|
|
|
user.email,
|
2015-10-14 15:34:23 +02:00
|
|
|
conference.email_settings.conference_dates_updated_subject,
|
|
|
|
|
conference.email_settings.generate_email_on_conf_updates(conference, user, conference.email_settings.conference_dates_updated_body))
|
2014-07-08 15:42:35 +05:30
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
2014-07-23 13:42:03 +02:00
|
|
|
def conference_registration_date_update_mail(conference)
|
2014-07-25 13:13:35 +05:30
|
|
|
User.joins(:subscriptions).merge(conference.subscriptions).uniq.joins('INNER JOIN registrations ON registrations.user_id != users.id').merge(conference.registrations) do |user|
|
2014-07-23 13:42:03 +02:00
|
|
|
build_email(conference,
|
2014-07-25 13:13:35 +05:30
|
|
|
user.email,
|
2015-10-14 15:34:23 +02:00
|
|
|
conference.email_settings.conference_registration_dates_updated_subject,
|
|
|
|
|
conference.email_settings.generate_email_on_conf_updates(conference, user, conference.email_settings.conference_registration_dates_updated_body))
|
2014-07-10 22:11:27 +05:30
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
2015-10-14 15:34:23 +02:00
|
|
|
def send_email_on_venue_updated(conference)
|
2014-07-25 13:13:35 +05:30
|
|
|
User.joins(:subscriptions).merge(conference.subscriptions) do |user|
|
2014-07-23 13:42:03 +02:00
|
|
|
build_email(conference,
|
2014-07-25 13:13:35 +05:30
|
|
|
user.email,
|
2015-10-14 15:34:23 +02:00
|
|
|
conference.email_settings.venue_updated_subject,
|
|
|
|
|
conference.email_settings.generate_email_on_conf_updates(conference, user, conference.email_settings.venue_updated_body))
|
2014-07-17 15:59:44 +05:30
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def send_on_schedule_public(conference)
|
2014-07-25 13:13:35 +05:30
|
|
|
User.joins(:subscriptions).merge(conference.subscriptions) do |user|
|
2014-07-17 15:59:44 +05:30
|
|
|
build_email(conference,
|
2014-07-25 13:13:35 +05:30
|
|
|
user.email,
|
2015-10-25 13:29:02 +02:00
|
|
|
conference.email_settings.program_schedule_public_subject,
|
|
|
|
|
conference.email_settings.generate_email_on_conf_updates(conference, user, conference.email_settings.program_schedule_public_body))
|
2014-07-17 15:59:44 +05:30
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
2015-10-25 13:29:02 +02:00
|
|
|
def send_on_cfp_dates_updates(conference)
|
2014-07-25 13:13:35 +05:30
|
|
|
User.joins(:subscriptions).merge(conference.subscriptions) do |user|
|
2014-07-17 15:59:44 +05:30
|
|
|
build_email(conference,
|
2014-07-25 13:13:35 +05:30
|
|
|
user.email,
|
2015-10-25 13:29:02 +02:00
|
|
|
conference.email_settings.cfp_dates_updated_subject,
|
|
|
|
|
conference.email_settings.generate_email_on_conf_updates(conference, user, conference.email_settings.cfp_dates_updated_body))
|
2014-07-15 19:07:22 +05:30
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
2015-07-17 18:55:47 +02:00
|
|
|
def send_notification_email_for_comment(comment)
|
|
|
|
|
@comment = comment
|
|
|
|
|
@event = @comment.commentable
|
|
|
|
|
@conference = @event.conference
|
|
|
|
|
recipients = User.comment_notifiable(@conference) # with scope
|
|
|
|
|
recipients.each do |user|
|
|
|
|
|
@user = user
|
|
|
|
|
mail(to: @user.email,
|
|
|
|
|
from: @conference.contact.email,
|
|
|
|
|
reply_to: @conference.contact.email,
|
|
|
|
|
template_path: 'admin/emails',
|
|
|
|
|
template_name: 'comment_template',
|
|
|
|
|
subject: "New comment has been posted for #{@event.title}")
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
2013-01-17 13:56:05 +01:00
|
|
|
def build_email(conference, to, subject, body)
|
2014-07-21 14:49:05 +02:00
|
|
|
mail(to: to,
|
2014-07-31 20:09:38 +02:00
|
|
|
from: conference.contact.email,
|
|
|
|
|
reply_to: conference.contact.email,
|
2014-07-21 14:49:05 +02:00
|
|
|
subject: subject,
|
|
|
|
|
body: body)
|
2013-01-14 08:49:49 +01:00
|
|
|
end
|
|
|
|
|
end
|