mirror of
https://github.com/openSUSE/osem.git
synced 2026-08-13 19:54:02 +00:00
Email notification on cfp dates updates and schedule made public
This commit is contained in:
parent
8cdf48c7df
commit
f5c53f77cf
6 changed files with 69 additions and 27 deletions
|
|
@ -10,7 +10,21 @@ class Admin::CallforpapersController < ApplicationController
|
|||
|
||||
def update
|
||||
@cfp = @conference.call_for_papers
|
||||
@cfp.assign_attributes(params[:call_for_papers])
|
||||
notify_on_schedule_public = @cfp.schedule_public_changed? && @cfp.schedule_public\
|
||||
&& @conference.email_settings.send_on_call_for_papers_schedule_public\
|
||||
&& !@conference.email_settings.call_for_papers_schedule_public_subject.blank?\
|
||||
&& !@conference.email_settings.call_for_papers_schedule_public_template.blank?
|
||||
|
||||
notify_on_cfp_date_update = !@cfp.end_date.blank? && !@cfp.start_date.blank?\
|
||||
&& (@cfp.start_date_changed? || @cfp.end_date_changed?)\
|
||||
&& @conference.email_settings.send_on_call_for_papers_dates_updates\
|
||||
&& !@conference.email_settings.call_for_papers_dates_updates_subject.blank?\
|
||||
&& !@conference.email_settings.call_for_papers_dates_updates_template.blank?
|
||||
|
||||
if @cfp.update_attributes(params[:call_for_papers])
|
||||
Mailbot.delay.send_on_call_for_papers_dates_updates(@conference) if notify_on_cfp_date_update
|
||||
Mailbot.delay.send_on_schedule_public(@conference) if notify_on_schedule_public
|
||||
redirect_to(admin_conference_callforpapers_path(
|
||||
id: @conference.short_title),
|
||||
notice: 'Call for Papers was successfully updated.')
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ class Mailbot < ActionMailer::Base
|
|||
build_email(conference,
|
||||
person.email,
|
||||
conference.email_settings.registration_subject,
|
||||
conference.email_settings.generate_registration_email(conference, person))
|
||||
conference.email_settings.generate_email_on_conf_updates(conference, person, conference.email_settings.registration_email_template))
|
||||
end
|
||||
|
||||
def acceptance_mail(event)
|
||||
|
|
@ -41,7 +41,7 @@ class Mailbot < ActionMailer::Base
|
|||
build_email(conference,
|
||||
user.user.email,
|
||||
conference.email_settings.updated_conference_dates_subject,
|
||||
conference.email_settings.generate_conference_date_update_mail(conference, user))
|
||||
conference.email_settings.generate_email_on_conf_updates(conference, user, conference.email_settings.updated_conference_dates_template))
|
||||
end
|
||||
end
|
||||
|
||||
|
|
@ -50,16 +50,34 @@ class Mailbot < ActionMailer::Base
|
|||
build_email(conference,
|
||||
user.user.email,
|
||||
conference.email_settings.updated_conference_registration_dates_subject,
|
||||
conference.email_settings.generate_conference_registration_date_update_mail(conference, user))
|
||||
conference.email_settings.generate_email_on_conf_updates(conference, user, conference.email_settings.updated_conference_registration_dates_template))
|
||||
end
|
||||
end
|
||||
|
||||
def send_email_on_venue_update(conference)
|
||||
conference.registrations.each do |user|
|
||||
build_email(conference,
|
||||
user.email,
|
||||
user.user.email,
|
||||
conference.email_settings.venue_update_subject,
|
||||
conference.email_settings.generate_send_email_on_venue_update(conference, user))
|
||||
conference.email_settings.generate_email_on_conf_updates(conference, user, conference.email_settings.venue_update_template))
|
||||
end
|
||||
end
|
||||
|
||||
def send_on_schedule_public(conference)
|
||||
conference.registrations.each do |user|
|
||||
build_email(conference,
|
||||
user.user.email,
|
||||
conference.email_settings.call_for_papers_schedule_public_subject,
|
||||
conference.email_settings.generate_email_on_conf_updates(conference, user, conference.email_settings.call_for_papers_schedule_public_template))
|
||||
end
|
||||
end
|
||||
|
||||
def send_on_call_for_papers_dates_updates(conference)
|
||||
conference.registrations.each do |user|
|
||||
build_email(conference,
|
||||
user.user.email,
|
||||
conference.email_settings.call_for_papers_dates_updates_subject,
|
||||
conference.email_settings.generate_email_on_conf_updates(conference, user, conference.email_settings.call_for_papers_dates_updates_template))
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -41,12 +41,6 @@ class EmailSettings < ActiveRecord::Base
|
|||
h
|
||||
end
|
||||
|
||||
def generate_registration_email(conference, user)
|
||||
values = get_values(conference, user)
|
||||
template = registration_email_template
|
||||
parse_template(template, values)
|
||||
end
|
||||
|
||||
def generate_accepted_email(event)
|
||||
values = get_values(event.conference, event.submitter, event)
|
||||
template = accepted_email_template
|
||||
|
|
@ -65,21 +59,9 @@ class EmailSettings < ActiveRecord::Base
|
|||
parse_template(template, values)
|
||||
end
|
||||
|
||||
def generate_conference_date_update_mail(conference, user)
|
||||
def generate_email_on_conf_updates(conference, user, conf_update_template)
|
||||
values = get_values(conference, user)
|
||||
template = updated_conference_dates_template
|
||||
parse_template(template, values)
|
||||
end
|
||||
|
||||
def generate_conference_registration_date_update_mail(conference, user)
|
||||
values = get_values(conference, user)
|
||||
template = updated_conference_registration_dates_template
|
||||
parse_template(template, values)
|
||||
end
|
||||
|
||||
def generate_send_email_on_venue_update(conference, user)
|
||||
values = get_values(conference, user)
|
||||
template = venue_update_template
|
||||
template = conf_update_template
|
||||
parse_template(template, values)
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -52,6 +52,20 @@
|
|||
"data-name"=>"email_settings_venue_update_template"} Load Template
|
||||
%a.btn.btn-link.control_label.template_help_link{"data-name"=>"updated_venue_help"} Show Help
|
||||
= render partial: 'help', locals: {id: 'updated_venue_help', show_event_variables: false}
|
||||
= f.input :send_on_call_for_papers_schedule_public, hint: "This will notify all participants when the dates are updated or when the schedule is made public"
|
||||
= f.input :call_for_papers_schedule_public_subject, hint: "This subject will used whenever dates are updated or when the schedule is made public"
|
||||
= f.input :call_for_papers_schedule_public_template, :input_html => { :rows => 10, :cols => 20 }
|
||||
%a.btn.btn-link.control_label.load_template{"data-template"=>"Dear {name},\n\nThe Conference Call for Papers Details of {conference} has changed.The schedule is being made public.\n Link to Schedule {schedule_link} \n\nBest wishes\n\n{conference} Team",
|
||||
"data-name"=>"email_settings_call_for_papers_schedule_public_template"} Load Template
|
||||
%a.btn.btn-link.control_label.template_help_link{"data-name"=>"updated_cfp_help"} Show Help
|
||||
= render partial: 'help', locals: {id: 'updated_cfp_help', show_event_variables: false}
|
||||
= f.input :send_on_call_for_papers_dates_updates, hint: "This will notify all participants when the dates are updated or when the schedule is made public"
|
||||
= f.input :call_for_papers_dates_updates_subject, hint: "This subject will used whenever dates are updated or when the schedule is made public"
|
||||
= f.input :call_for_papers_dates_updates_template, :input_html => { :rows => 10, :cols => 20 }
|
||||
%a.btn.btn-link.control_label.load_template{"data-template"=>"Dear {name},\n\nThe Conference Call for Papers Details of {conference} has changed.\nNew Dates : {cfp_start_date} - {cfp_end_date}.\n Link to Schedule {schedule_link} \n\nBest wishes\n\n{conference} Team",
|
||||
"data-name"=>"email_settings_call_for_papers_dates_updates_template"} Load Template
|
||||
%a.btn.btn-link.control_label.template_help_link{"data-name"=>"updated_cfp_help"} Show Help
|
||||
= render partial: 'help', locals: {id: 'updated_cfp_help', show_event_variables: false}
|
||||
.row
|
||||
.col-md-12
|
||||
= f.action :submit, :as => :button, :button_html => {:class => "btn btn-primary"}
|
||||
|
|
|
|||
|
|
@ -8,6 +8,8 @@ FactoryGirl.define do
|
|||
send_on_confirmed_without_registration false
|
||||
send_on_updated_conference_dates true
|
||||
send_on_updated_conference_registration_dates true
|
||||
send_on_call_for_papers_schedule_public true
|
||||
send_on_call_for_papers_dates_updates true
|
||||
updated_conference_dates_template 'Sample Conference\n New Dates: January 17 - 21 2014'
|
||||
updated_conference_dates_subject 'Conference dates have been updated'
|
||||
updated_conference_registration_dates_subject 'Conference registration dates have been updated'
|
||||
|
|
@ -17,5 +19,9 @@ FactoryGirl.define do
|
|||
venue_update_template "Venue has been Updated to Sample Location"
|
||||
registration_subject 'Lorem Ipsum Dolsum'
|
||||
registration_email_template 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit'
|
||||
call_for_papers_dates_updates_subject "Call for Papers dates have been updated"
|
||||
call_for_papers_dates_updates_template "Please checkout the new updates to submit your proposal for Sample Conference"
|
||||
call_for_papers_schedule_public_subject "Sample Conference Cfp schedule is Public"
|
||||
call_for_papers_schedule_public_template "Call for Papers schedule is Public.Checkout the link"
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -8,9 +8,9 @@ describe 'admin/emails/index' do
|
|||
assign :settings, @settings
|
||||
render
|
||||
expect(rendered).
|
||||
to have_selector("input[type='checkbox'][value='1']", count: 7)
|
||||
to have_selector("input[type='checkbox'][value='1']", count: 9)
|
||||
expect(rendered).
|
||||
to have_selector("input[checked='checked'][type='checkbox'][value='1']", count: 4)
|
||||
to have_selector("input[checked='checked'][type='checkbox'][value='1']", count: 6)
|
||||
expect(rendered).to include('Lorem Ipsum Dolsum')
|
||||
expect(rendered).
|
||||
to include('Lorem ipsum dolor sit amet, consectetuer adipiscing elit')
|
||||
|
|
@ -20,5 +20,13 @@ describe 'admin/emails/index' do
|
|||
to include('Conference registration dates have been updated')
|
||||
expect(rendered).to include("Venue has been updated")
|
||||
expect(rendered).to include("Venue has been Updated to Sample Location")
|
||||
expect(rendered).
|
||||
to include("Call for Papers dates have been updated")
|
||||
expect(rendered).
|
||||
to include("Please checkout the new updates to submit your proposal for Sample Conference")
|
||||
expect(rendered).
|
||||
to include("Sample Conference Cfp schedule is Public")
|
||||
expect(rendered).
|
||||
to include("Call for Papers schedule is Public.Checkout the link")
|
||||
end
|
||||
end
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue