Merge pull request #338 from gopesht/notify_on_cfp_update
Notify on cfp update
This commit is contained in:
commit
4a552c9623
8 changed files with 101 additions and 40 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
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +7,10 @@ class EmailSettings < ActiveRecord::Base
|
|||
:send_on_updated_conference_dates, :updated_conference_dates_subject,
|
||||
:updated_conference_dates_template, :send_on_updated_conference_registration_dates,
|
||||
:updated_conference_registration_dates_subject, :updated_conference_registration_dates_template,
|
||||
:send_on_venue_update, :venue_update_subject, :venue_update_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
|
||||
|
||||
def get_values(conference, user, event = nil)
|
||||
h = {
|
||||
|
|
@ -38,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
|
||||
|
|
@ -62,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"}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,10 @@
|
|||
class AddCallForPapersUpdatesToEmailSettings < ActiveRecord::Migration
|
||||
def change
|
||||
add_column :email_settings, :send_on_call_for_papers_dates_updates, :boolean, default: false
|
||||
add_column :email_settings, :send_on_call_for_papers_schedule_public, :boolean, default: false
|
||||
add_column :email_settings, :call_for_papers_schedule_public_subject, :string
|
||||
add_column :email_settings, :call_for_papers_dates_updates_subject, :string
|
||||
add_column :email_settings, :call_for_papers_schedule_public_template, :text
|
||||
add_column :email_settings, :call_for_papers_dates_updates_template, :text
|
||||
end
|
||||
end
|
||||
30
db/schema.rb
30
db/schema.rb
|
|
@ -11,7 +11,7 @@
|
|||
#
|
||||
# It's strongly recommended that you check this file into your version control system.
|
||||
|
||||
ActiveRecord::Schema.define(version: 20140719160903) do
|
||||
ActiveRecord::Schema.define(version: 20140724113107) do
|
||||
|
||||
create_table "ahoy_events", force: true do |t|
|
||||
t.uuid "visit_id"
|
||||
|
|
@ -167,10 +167,10 @@ ActiveRecord::Schema.define(version: 20140719160903) do
|
|||
|
||||
create_table "email_settings", force: true do |t|
|
||||
t.integer "conference_id"
|
||||
t.boolean "send_on_registration", default: false
|
||||
t.boolean "send_on_accepted", default: false
|
||||
t.boolean "send_on_rejected", default: false
|
||||
t.boolean "send_on_confirmed_without_registration", default: false
|
||||
t.boolean "send_on_registration", default: false
|
||||
t.boolean "send_on_accepted", default: false
|
||||
t.boolean "send_on_rejected", default: false
|
||||
t.boolean "send_on_confirmed_without_registration", default: false
|
||||
t.text "registration_email_template"
|
||||
t.text "accepted_email_template"
|
||||
t.text "rejected_email_template"
|
||||
|
|
@ -181,15 +181,21 @@ ActiveRecord::Schema.define(version: 20140719160903) do
|
|||
t.string "accepted_subject"
|
||||
t.string "rejected_subject"
|
||||
t.string "confirmed_without_registration_subject"
|
||||
t.boolean "send_on_updated_conference_dates", default: false
|
||||
t.boolean "send_on_updated_conference_dates", default: false
|
||||
t.string "updated_conference_dates_subject"
|
||||
t.text "updated_conference_dates_template"
|
||||
t.boolean "send_on_updated_conference_registration_dates", default: false
|
||||
t.boolean "send_on_updated_conference_registration_dates", default: false
|
||||
t.string "updated_conference_registration_dates_subject"
|
||||
t.text "updated_conference_registration_dates_template"
|
||||
t.boolean "send_on_venue_update", default: false
|
||||
t.boolean "send_on_venue_update", default: false
|
||||
t.string "venue_update_subject"
|
||||
t.text "venue_update_template"
|
||||
t.boolean "send_on_call_for_papers_dates_updates", default: false
|
||||
t.boolean "send_on_call_for_papers_schedule_public", default: false
|
||||
t.string "call_for_papers_schedule_public_subject"
|
||||
t.string "call_for_papers_dates_updates_subject"
|
||||
t.text "call_for_papers_schedule_public_template"
|
||||
t.text "call_for_papers_dates_updates_template"
|
||||
end
|
||||
|
||||
create_table "event_attachments", force: true do |t|
|
||||
|
|
@ -481,8 +487,8 @@ ActiveRecord::Schema.define(version: 20140719160903) do
|
|||
|
||||
create_table "venues", force: true do |t|
|
||||
t.string "guid"
|
||||
t.text "name"
|
||||
t.text "address"
|
||||
t.text "name", limit: 255
|
||||
t.text "address", limit: 255
|
||||
t.string "website"
|
||||
t.text "description"
|
||||
t.string "offline_map_url"
|
||||
|
|
@ -493,8 +499,8 @@ ActiveRecord::Schema.define(version: 20140719160903) do
|
|||
t.string "photo_content_type"
|
||||
t.integer "photo_file_size"
|
||||
t.datetime "photo_updated_at"
|
||||
t.boolean "include_venue_in_splash", default: false
|
||||
t.boolean "include_lodgings_in_splash", default: false
|
||||
t.boolean "include_venue_in_splash", default: false
|
||||
t.boolean "include_lodgings_in_splash", default: false
|
||||
end
|
||||
|
||||
create_table "versions", force: true do |t|
|
||||
|
|
|
|||
|
|
@ -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