[feat] Refactor mailbot.rb and support displaying conf/org/default logo
This commit is contained in:
parent
ba4de34fa7
commit
ac4fb8a757
3 changed files with 50 additions and 51 deletions
|
|
@ -3,23 +3,26 @@
|
||||||
SNAPCON_BCC_ADDRESS = 'messages@snap.berkeley.edu'
|
SNAPCON_BCC_ADDRESS = 'messages@snap.berkeley.edu'
|
||||||
EMAIL_TEMPLATE = 'email_template'
|
EMAIL_TEMPLATE = 'email_template'
|
||||||
YTLF_TICKET_ID = 50
|
YTLF_TICKET_ID = 50
|
||||||
|
DEFAULT_LOGO = 'snapcon_logo.png'
|
||||||
|
|
||||||
class Mailbot < ActionMailer::Base
|
class Mailbot < ActionMailer::Base
|
||||||
|
default bcc: -> { SNAPCON_BCC_ADDRESS },
|
||||||
|
template_name: -> { EMAIL_TEMPLATE }
|
||||||
|
|
||||||
def registration_mail(conference, user)
|
def registration_mail(conference, user)
|
||||||
@email_body = conference.email_settings.generate_email_on_conf_updates(conference, user, conference.email_settings.registration_body)
|
@email_body = conference.email_settings.generate_email_on_conf_updates(conference, user, conference.email_settings.registration_body)
|
||||||
@logo = conference.picture.thumb.url
|
@logo_url = logo_url(conference)
|
||||||
|
|
||||||
mail(to: user.email,
|
mail(to: user.email,
|
||||||
bcc: SNAPCON_BCC_ADDRESS,
|
|
||||||
from: conference.contact.email,
|
from: conference.contact.email,
|
||||||
subject: conference.email_settings.registration_subject,
|
subject: conference.email_settings.registration_subject)
|
||||||
template_name: EMAIL_TEMPLATE)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def ticket_confirmation_mail(ticket_purchase)
|
def ticket_confirmation_mail(ticket_purchase)
|
||||||
@ticket_purchase = ticket_purchase
|
@ticket_purchase = ticket_purchase
|
||||||
@conference = ticket_purchase.conference
|
@conference = ticket_purchase.conference
|
||||||
@user = ticket_purchase.user
|
@user = ticket_purchase.user
|
||||||
|
@logo_url = logo_url(@conference)
|
||||||
|
|
||||||
PhysicalTicket.last(ticket_purchase.quantity).each do |physical_ticket|
|
PhysicalTicket.last(ticket_purchase.quantity).each do |physical_ticket|
|
||||||
pdf = TicketPdf.new(@conference, @user, physical_ticket, @conference.ticket_layout.to_sym, "ticket_for_#{@conference.short_title}_#{physical_ticket.id}")
|
pdf = TicketPdf.new(@conference, @user, physical_ticket, @conference.ticket_layout.to_sym, "ticket_for_#{@conference.short_title}_#{physical_ticket.id}")
|
||||||
|
|
@ -32,7 +35,6 @@ class Mailbot < ActionMailer::Base
|
||||||
end
|
end
|
||||||
|
|
||||||
mail(to: @user.email,
|
mail(to: @user.email,
|
||||||
bcc: SNAPCON_BCC_ADDRESS,
|
|
||||||
from: @conference.contact.email,
|
from: @conference.contact.email,
|
||||||
template_name: template_name,
|
template_name: template_name,
|
||||||
subject: "#{@conference.title} | Ticket Confirmation and PDF!")
|
subject: "#{@conference.title} | Ticket Confirmation and PDF!")
|
||||||
|
|
@ -41,128 +43,114 @@ class Mailbot < ActionMailer::Base
|
||||||
def acceptance_mail(event)
|
def acceptance_mail(event)
|
||||||
conference = event.program.conference
|
conference = event.program.conference
|
||||||
|
|
||||||
@logo = conference.picture.thumb.url
|
@logo_url = logo_url(conference)
|
||||||
@email_body = conference.email_settings.generate_event_mail(event, conference.email_settings.accepted_body)
|
@email_body = conference.email_settings.generate_event_mail(event, conference.email_settings.accepted_body)
|
||||||
|
|
||||||
mail(to: event.submitter.email,
|
mail(to: event.submitter.email,
|
||||||
bcc: SNAPCON_BCC_ADDRESS,
|
|
||||||
from: conference.contact.email,
|
from: conference.contact.email,
|
||||||
subject: conference.email_settings.accepted_subject,
|
subject: conference.email_settings.accepted_subject)
|
||||||
template_name: EMAIL_TEMPLATE)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def submitted_proposal_mail(event)
|
def submitted_proposal_mail(event)
|
||||||
conference = event.program.conference
|
conference = event.program.conference
|
||||||
|
|
||||||
@logo = conference.picture.thumb.url
|
@logo_url = logo_url(conference)
|
||||||
@email_body = conference.email_settings.generate_event_mail(event, conference.email_settings.submitted_proposal_body)
|
@email_body = conference.email_settings.generate_event_mail(event, conference.email_settings.submitted_proposal_body)
|
||||||
|
|
||||||
mail(to: event.submitter.email,
|
mail(to: event.submitter.email,
|
||||||
bcc: SNAPCON_BCC_ADDRESS,
|
|
||||||
from: conference.contact.email,
|
from: conference.contact.email,
|
||||||
subject: conference.email_settings.submitted_proposal_subject,
|
subject: conference.email_settings.submitted_proposal_subject)
|
||||||
template_name: EMAIL_TEMPLATE)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def rejection_mail(event)
|
def rejection_mail(event)
|
||||||
conference = event.program.conference
|
conference = event.program.conference
|
||||||
|
|
||||||
@logo = conference.picture.thumb.url
|
@logo_url = logo_url(conference)
|
||||||
@email_body = conference.email_settings.generate_event_mail(event, conference.email_settings.rejected_body)
|
@email_body = conference.email_settings.generate_event_mail(event, conference.email_settings.rejected_body)
|
||||||
|
|
||||||
mail(to: event.submitter.email,
|
mail(to: event.submitter.email,
|
||||||
bcc: SNAPCON_BCC_ADDRESS,
|
|
||||||
from: conference.contact.email,
|
from: conference.contact.email,
|
||||||
subject: conference.email_settings.rejected_subject,
|
subject: conference.email_settings.rejected_subject)
|
||||||
template_name: EMAIL_TEMPLATE)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def confirm_reminder_mail(event)
|
def confirm_reminder_mail(event)
|
||||||
conference = event.program.conference
|
conference = event.program.conference
|
||||||
|
|
||||||
@logo = conference.picture.thumb.url
|
@logo_url = logo_url(conference)
|
||||||
@email_body = conference.email_settings.generate_event_mail(event, conference.email_settings.confirmed_without_registration_body)
|
@email_body = conference.email_settings.generate_event_mail(event, conference.email_settings.confirmed_without_registration_body)
|
||||||
|
|
||||||
mail(to: event.submitter.email,
|
mail(to: event.submitter.email,
|
||||||
bcc: SNAPCON_BCC_ADDRESS,
|
|
||||||
from: conference.contact.email,
|
from: conference.contact.email,
|
||||||
subject: conference.email_settings.confirmed_without_registration_subject,
|
subject: conference.email_settings.confirmed_without_registration_subject)
|
||||||
template_name: EMAIL_TEMPLATE)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def conference_date_update_mail(conference, user)
|
def conference_date_update_mail(conference, user)
|
||||||
@logo = conference.picture.thumb.url
|
@logo_url = logo_url(conference)
|
||||||
@email_body = conference.email_settings.generate_email_on_conf_updates(conference, user, conference.email_settings.conference_dates_updated_body)
|
@email_body = conference.email_settings.generate_email_on_conf_updates(conference, user, conference.email_settings.conference_dates_updated_body)
|
||||||
|
|
||||||
mail(to: user.email,
|
mail(to: user.email,
|
||||||
bcc: SNAPCON_BCC_ADDRESS,
|
|
||||||
from: conference.contact.email,
|
from: conference.contact.email,
|
||||||
subject: conference.email_settings.conference_dates_updated_subject,
|
subject: conference.email_settings.conference_dates_updated_subject)
|
||||||
template_name: EMAIL_TEMPLATE)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def conference_registration_date_update_mail(conference, user)
|
def conference_registration_date_update_mail(conference, user)
|
||||||
@logo = conference.picture.thumb.url
|
@logo_url = logo_url(conference)
|
||||||
@email_body = conference.email_settings.generate_email_on_conf_updates(conference, user, conference.email_settings.conference_registration_dates_updated_body)
|
@email_body = conference.email_settings.generate_email_on_conf_updates(conference, user, conference.email_settings.conference_registration_dates_updated_body)
|
||||||
|
|
||||||
mail(to: user.email,
|
mail(to: user.email,
|
||||||
bcc: SNAPCON_BCC_ADDRESS,
|
|
||||||
from: conference.contact.email,
|
from: conference.contact.email,
|
||||||
subject: conference.email_settings.conference_registration_dates_updated_subject,
|
subject: conference.email_settings.conference_registration_dates_updated_subject)
|
||||||
template_name: EMAIL_TEMPLATE)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def conference_venue_update_mail(conference, user)
|
def conference_venue_update_mail(conference, user)
|
||||||
@logo = conference.picture.thumb.url
|
@logo_url = logo_url(conference)
|
||||||
@email_body = conference.email_settings.generate_email_on_conf_updates(conference, user, conference.email_settings.venue_updated_body)
|
@email_body = conference.email_settings.generate_email_on_conf_updates(conference, user, conference.email_settings.venue_updated_body)
|
||||||
|
|
||||||
mail(to: user.email,
|
mail(to: user.email,
|
||||||
bcc: SNAPCON_BCC_ADDRESS,
|
|
||||||
from: conference.contact.email,
|
from: conference.contact.email,
|
||||||
subject: conference.email_settings.venue_updated_subject,
|
subject: conference.email_settings.venue_updated_subject)
|
||||||
template_name: EMAIL_TEMPLATE)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def conference_schedule_update_mail(conference, user)
|
def conference_schedule_update_mail(conference, user)
|
||||||
@logo = conference.picture.thumb.url
|
@logo_url = logo_url(conference)
|
||||||
@email_body = conference.email_settings.generate_email_on_conf_updates(conference, user, conference.email_settings.program_schedule_public_body)
|
@email_body = conference.email_settings.generate_email_on_conf_updates(conference, user, conference.email_settings.program_schedule_public_body)
|
||||||
|
|
||||||
mail(to: user.email,
|
mail(to: user.email,
|
||||||
|
bcc: nil,
|
||||||
from: conference.contact.email,
|
from: conference.contact.email,
|
||||||
subject: conference.email_settings.program_schedule_public_subject,
|
subject: conference.email_settings.program_schedule_public_subject)
|
||||||
template_name: EMAIL_TEMPLATE)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def conference_cfp_update_mail(conference, user)
|
def conference_cfp_update_mail(conference, user)
|
||||||
@logo = conference.picture.thumb.url
|
@logo_url = logo_url(conference)
|
||||||
@email_body = conference.email_settings.generate_email_on_conf_updates(conference, user, conference.email_settings.cfp_dates_updated_body)
|
@email_body = conference.email_settings.generate_email_on_conf_updates(conference, user, conference.email_settings.cfp_dates_updated_body)
|
||||||
|
|
||||||
mail(to: user.email,
|
mail(to: user.email,
|
||||||
|
bcc: nil,
|
||||||
from: conference.contact.email,
|
from: conference.contact.email,
|
||||||
subject: conference.email_settings.cfp_dates_updated_subject,
|
subject: conference.email_settings.cfp_dates_updated_subject)
|
||||||
template_name: EMAIL_TEMPLATE)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def conference_booths_acceptance_mail(booth)
|
def conference_booths_acceptance_mail(booth)
|
||||||
conference = booth.conference
|
conference = booth.conference
|
||||||
@logo = conference.picture.thumb.url
|
@logo_url = logo_url(conference)
|
||||||
@email_body = conference.email_settings.generate_booth_mail(booth, conference.email_settings.booths_acceptance_body)
|
@email_body = conference.email_settings.generate_booth_mail(booth, conference.email_settings.booths_acceptance_body)
|
||||||
|
|
||||||
mail(to: booth.submitter.email,
|
mail(to: booth.submitter.email,
|
||||||
|
bcc: nil,
|
||||||
from: conference.contact.email,
|
from: conference.contact.email,
|
||||||
subject: conference.email_settings.booths_acceptance_subject,
|
subject: conference.email_settings.booths_acceptance_subject)
|
||||||
template_name: EMAIL_TEMPLATE)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def conference_booths_rejection_mail(booth)
|
def conference_booths_rejection_mail(booth)
|
||||||
conference = booth.conference
|
conference = booth.conference
|
||||||
@logo = conference.picture.thumb.url
|
@logo_url = logo_url(conference)
|
||||||
@email_body = conference.email_settings.generate_booth_mail(booth, conference.email_settings.booths_rejection_body)
|
@email_body = conference.email_settings.generate_booth_mail(booth, conference.email_settings.booths_rejection_body)
|
||||||
|
|
||||||
mail(to: booth.submitter.email,
|
mail(to: booth.submitter.email,
|
||||||
|
bcc: nil,
|
||||||
from: conference.contact.email,
|
from: conference.contact.email,
|
||||||
subject: conference.email_settings.booths_rejection_subject,
|
subject: conference.email_settings.booths_rejection_subject)
|
||||||
template_name: EMAIL_TEMPLATE)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def event_comment_mail(comment, user)
|
def event_comment_mail(comment, user)
|
||||||
|
|
@ -170,10 +158,24 @@ class Mailbot < ActionMailer::Base
|
||||||
@event = @comment.commentable
|
@event = @comment.commentable
|
||||||
@conference = @event.program.conference
|
@conference = @event.program.conference
|
||||||
@user = user
|
@user = user
|
||||||
|
@logo_url = logo_url(@conference)
|
||||||
|
|
||||||
mail(to: @user.email,
|
mail(to: @user.email,
|
||||||
|
bcc: nil,
|
||||||
from: @conference.contact.email,
|
from: @conference.contact.email,
|
||||||
template_name: 'comment_template',
|
template_name: 'comment_template',
|
||||||
subject: "New comment has been posted for #{@event.title}")
|
subject: "New comment has been posted for #{@event.title}")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def logo_url(conference)
|
||||||
|
if conference.picture.present?
|
||||||
|
return conference.picture.thumb.url
|
||||||
|
elsif conference.organization.picture.present?
|
||||||
|
return conference.organization.picture.thumb.url
|
||||||
|
else
|
||||||
|
return DEFAULT_LOGO
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -69,7 +69,7 @@ class Registration < ApplicationRecord
|
||||||
|
|
||||||
def send_registration_mail
|
def send_registration_mail
|
||||||
if conference.email_settings.send_on_registration?
|
if conference.email_settings.send_on_registration?
|
||||||
Mailbot.registration_mail(conference, user).deliver_now
|
Mailbot.registration_mail(conference, user).deliver_later
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -13,13 +13,10 @@
|
||||||
<div id="border">
|
<div id="border">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-2">
|
<div class="col-md-2">
|
||||||
<% if @logo.present? %>
|
<% if @logo_url.present? %>
|
||||||
<%= image_tag(@logo, style: "display:block", alt: 'conference logo') %>
|
<%= image_tag(@logo_url, style: "display:block;height:70px;width:auto;", alt: 'conference logo') %>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-10">
|
|
||||||
<h1>Snap!Con -- A conference all about Snap!, a programing language from UC Berkeley.</h1>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="content">
|
<div id="content">
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue