added more consistency for email_settings

This commit is contained in:
raluka 2015-10-14 15:34:23 +02:00
parent 002f8b1bcd
commit 3d57203727
11 changed files with 107 additions and 99 deletions

View file

@ -29,10 +29,10 @@ module Admin
@cfp.assign_attributes(params[:call_for_paper])
send_mail_on_schedule_public = @cfp.notify_on_schedule_public?
send_mail_on_cfp_dates_updates = @cfp.notify_on_cfp_date_update?
send_mail_on_cfp_dates_updated = @cfp.notify_on_cfp_date_update?
if @cfp.update_attributes(params[:call_for_paper])
Mailbot.delay.send_on_call_for_papers_dates_updates(@conference) if send_mail_on_cfp_dates_updates
Mailbot.delay.send_on_call_for_papers_dates_updated(@conference) if send_mail_on_cfp_dates_updated
Mailbot.delay.send_on_schedule_public(@conference) if send_mail_on_schedule_public
redirect_to(admin_conference_call_for_paper_path(@conference.short_title),
notice: 'Call for papers successfully updated.')

View file

@ -39,8 +39,8 @@ class Mailbot < ActionMailer::Base
User.joins(:subscriptions).merge(conference.subscriptions) do |user|
build_email(conference,
user.email,
conference.email_settings.updated_conference_dates_subject,
conference.email_settings.generate_email_on_conf_updates(conference, user, conference.email_settings.updated_conference_dates_body))
conference.email_settings.conference_dates_updated_subject,
conference.email_settings.generate_email_on_conf_updates(conference, user, conference.email_settings.conference_dates_updated_body))
end
end
@ -48,17 +48,17 @@ class Mailbot < ActionMailer::Base
User.joins(:subscriptions).merge(conference.subscriptions).uniq.joins('INNER JOIN registrations ON registrations.user_id != users.id').merge(conference.registrations) do |user|
build_email(conference,
user.email,
conference.email_settings.updated_conference_registration_dates_subject,
conference.email_settings.generate_email_on_conf_updates(conference, user, conference.email_settings.updated_conference_registration_dates_body))
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))
end
end
def send_email_on_venue_update(conference)
def send_email_on_venue_updated(conference)
User.joins(:subscriptions).merge(conference.subscriptions) do |user|
build_email(conference,
user.email,
conference.email_settings.venue_update_subject,
conference.email_settings.generate_email_on_conf_updates(conference, user, conference.email_settings.venue_update_body))
conference.email_settings.venue_updated_subject,
conference.email_settings.generate_email_on_conf_updates(conference, user, conference.email_settings.venue_updated_body))
end
end
@ -71,12 +71,12 @@ class Mailbot < ActionMailer::Base
end
end
def send_on_call_for_papers_dates_updates(conference)
def send_on_call_for_papers_dates_updated(conference)
User.joins(:subscriptions).merge(conference.subscriptions) do |user|
build_email(conference,
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_body))
conference.email_settings.call_for_papers_dates_updated_subject,
conference.email_settings.generate_email_on_conf_updates(conference, user, conference.email_settings.call_for_papers_dates_updated_body))
end
end

View file

@ -45,9 +45,9 @@ class CallForPaper < ActiveRecord::Base
def notify_on_cfp_date_update?
!self.end_date.blank? && !self.start_date.blank?\
&& (self.start_date_changed? || self.end_date_changed?)\
&& self.conference.email_settings.send_on_call_for_papers_dates_updates\
&& !self.conference.email_settings.call_for_papers_dates_updates_subject.blank?\
&& !self.conference.email_settings.call_for_papers_dates_updates_body.blank?
&& self.conference.email_settings.send_on_call_for_papers_dates_updated\
&& !self.conference.email_settings.call_for_papers_dates_updated_subject.blank?\
&& !self.conference.email_settings.call_for_papers_dates_updated_body.blank?
end
##
# Checks whether cfp dates is updated
@ -58,9 +58,9 @@ class CallForPaper < ActiveRecord::Base
def notify_on_schedule_public?
!self.end_date.blank? && !self.start_date.blank?\
&& (self.start_date_changed? || self.end_date_changed?)\
&& self.conference.email_settings.send_on_call_for_papers_dates_updates\
&& !self.conference.email_settings.call_for_papers_dates_updates_subject.blank?\
&& !self.conference.email_settings.call_for_papers_dates_updates_body.blank?
&& self.conference.email_settings.send_on_call_for_papers_dates_updated\
&& !self.conference.email_settings.call_for_papers_dates_updated_subject.blank?\
&& !self.conference.email_settings.call_for_papers_dates_updated_body.blank?
end
def remaining_days(date = Date.today)

View file

@ -570,9 +570,9 @@ class Conference < ActiveRecord::Base
# * +False+ -> Either conference is not updated or one or more parameter is not set
def notify_on_dates_changed?
(self.start_date_changed? || self.end_date_changed?) &&
self.email_settings.send_on_updated_conference_dates &&
!self.email_settings.updated_conference_dates_subject.blank? &&
self.email_settings.updated_conference_dates_body
self.email_settings.send_on_conference_dates_updated &&
!self.email_settings.conference_dates_updated_subject.blank? &&
self.email_settings.conference_dates_updated_body
end
##
@ -584,9 +584,9 @@ class Conference < ActiveRecord::Base
def notify_on_registration_dates_changed?
registration_period &&
(registration_period.start_date_changed? || registration_period.end_date_changed?) &&
email_settings.send_on_updated_conference_registration_dates &&
!email_settings.updated_conference_registration_dates_subject.blank? &&
email_settings.updated_conference_registration_dates_body
email_settings.send_on_conference_registration_dates_updated &&
!email_settings.conference_registration_dates_updated_subject.blank? &&
email_settings.conference_registration_dates_updated_body
end
private

View file

@ -3,10 +3,10 @@ class EmailSettings < ActiveRecord::Base
:send_on_accepted, :accepted_subject, :accepted_body,
:send_on_rejected, :rejected_subject, :rejected_body,
:send_on_confirmed_without_registration, :confirmed_without_registration_subject, :confirmed_without_registration_body,
:send_on_updated_conference_dates, :updated_conference_dates_subject, :updated_conference_dates_body,
:send_on_updated_conference_registration_dates, :updated_conference_registration_dates_subject, :updated_conference_registration_dates_body,
:send_on_venue_update, :venue_update_subject, :venue_update_body,
:send_on_call_for_papers_dates_updates, :call_for_papers_dates_updates_subject, :call_for_papers_dates_updates_body,
:send_on_conference_dates_updated, :conference_dates_updated_subject, :conference_dates_updated_body,
:send_on_conference_registration_dates_updated, :conference_registration_dates_updated_subject, :conference_registration_dates_updated_body,
:send_on_venue_updated, :venue_updated_subject, :venue_updated_body,
:send_on_call_for_papers_dates_updated, :call_for_papers_dates_updated_subject, :call_for_papers_dates_updated_body,
:send_on_call_for_papers_schedule_public, :call_for_papers_schedule_public_subject, :call_for_papers_schedule_public_body
def get_values(conference, user, event = nil)

View file

@ -28,15 +28,15 @@ class Venue < ActiveRecord::Base
private
def send_mail_notification
Mailbot.delay.send_email_on_venue_update(conference) if venue_notify?(conference)
Mailbot.delay.send_email_on_venue_updated(conference) if venue_notify?(conference)
end
def venue_notify?(conference)
(self.name_changed? || self.street_changed?) &&
(!self.name.blank? && !self.street.blank?) &&
(conference.email_settings.send_on_venue_update &&
!conference.email_settings.venue_update_subject.blank? &&
conference.email_settings.venue_update_body)
(conference.email_settings.send_on_venue_updated &&
!conference.email_settings.venue_updated_subject.blank? &&
conference.email_settings.venue_updated_body)
end
# TODO: create a module to be mixed into model to perform same operation

View file

@ -47,25 +47,25 @@
%a.btn.btn-link.control_label.template_help_link{"data-name"=>"confirmed_help"} Show Help
= render partial: 'help', locals: {id: 'confirmed_help', show_event_variables: true}
#notifications.tab-pane{:role => "tabpanel"}
= f.input :send_on_updated_conference_dates, label: "This is to notify all participants that the conference dates has been changed.", :input_html => {"data-name"=>"email_settings_updated_conference_dates_subject", "class"=>"send_on_radio"}
= f.input :updated_conference_dates_subject
= f.input :updated_conference_dates_body, :input_html => { :rows => 10, :cols => 20 }
= f.input :send_on_conference_dates_updated, label: "This is to notify all participants that the conference dates has been changed.", :input_html => {"data-name"=>"email_settings_conference_dates_updated_subject", "class"=>"send_on_radio"}
= f.input :conference_dates_updated_subject
= f.input :conference_dates_updated_body, :input_html => { :rows => 10, :cols => 20 }
%a.btn.btn-link.control_label.load_template{"data-template"=>"Dear {name},\n\nThe date of {conference} has changed.\n New Dates : {conference_start_date} - {conference_end_date}.\n\nFeel free to contact us with any questions or concerns.\n\nWe look forward to seeing you there.\n\nBest wishes\n\n{conference} Team",
"data-name"=>"email_settings_updated_conference_dates_body"} Load Template
"data-name"=>"email_settings_conference_dates_updated_body"} Load Template
%a.btn.btn-link.control_label.template_help_link{"data-name"=>"updated_dates_help"} Show Help
= render partial: 'help', locals: {id: 'updated_dates_help', show_event_variables: false}
= f.input :send_on_updated_conference_registration_dates, label: "This is to notify all participants that the conference registration dates has been changed.", :input_html => {"data-name"=>"email_settings_updated_conference_registration_dates_subject", "class"=>"send_on_radio"}
= f.input :updated_conference_registration_dates_subject
= f.input :updated_conference_registration_dates_body, :input_html => { :rows => 10, :cols => 20 }
= f.input :send_on_conference_registration_dates_updated, label: "This is to notify all participants that the conference registration dates has been changed.", :input_html => {"data-name"=>"email_settings_conference_registration_dates_updated_subject", "class"=>"send_on_radio"}
= f.input :conference_registration_dates_updated_subject
= f.input :conference_registration_dates_updated_body, :input_html => { :rows => 10, :cols => 20 }
%a.btn.btn-link.control_label.load_template{"data-template"=>"Dear {name},\n\nThe registration date of {conference} has changed.\n New Dates : {registration_start_date} - {registration_end_date}.\n\nFeel free to contact us with any questions or concerns.\n\nWe look forward to seeing you there.\n\nBest wishes\n\n{conference} Team",
"data-name"=>"email_settings_updated_conference_registration_dates_body"} Load Template
"data-name"=>"email_settings_conference_registration_dates_updated_body"} Load Template
%a.btn.btn-link.control_label.template_help_link{"data-name"=>"updated_registrations_dates_help"} Show Help
= render partial: 'help', locals: {id: 'updated_registrations_dates_help', show_event_variables: false}
= f.input :send_on_venue_update, label: 'Send an email on updating the Venue.', :input_html => {"data-name"=>"email_settings_venue_update_subject", "class"=>"send_on_radio"}
= f.input :venue_update_subject
= f.input :venue_update_body, :input_html => { :rows => 10, :cols => 20 }
= f.input :send_on_venue_updated, label: 'Send an email on updating the Venue.', :input_html => {"data-name"=>"email_settings_venue_updated_subject", "class"=>"send_on_radio"}
= f.input :venue_updated_subject
= f.input :venue_updated_body, :input_html => { :rows => 10, :cols => 20 }
%a.btn.btn-link.control_label.load_template{"data-template"=>"Dear {name},\n\nThe Conference venue of {conference} has changed. New location is: {venue}.\n Address: {venue_address}.\n\nFeel free to contact us with any questions or concerns.\n\nWe look forward to seeing you there.\n\nBest wishes\n\n{conference} Team",
"data-name"=>"email_settings_venue_update_body"} Load Template
"data-name"=>"email_settings_venue_updated_body"} 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}
#cfp.tab-pane{:role => "tabpanel"}
@ -76,11 +76,11 @@
"data-name"=>"email_settings_call_for_papers_schedule_public_body"} 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_body, :input_html => { :rows => 10, :cols => 20 }
= f.input :send_on_call_for_papers_dates_updated, hint: "This will notify all participants when the dates are updated or when the schedule is made public"
= f.input :call_for_papers_dates_updated_subject, hint: "This subject will used whenever dates are updated or when the schedule is made public"
= f.input :call_for_papers_dates_updated_body, :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_body"} Load Template
"data-name"=>"email_settings_call_for_papers_dates_updated_body"} 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

View file

@ -4,10 +4,18 @@ class RenameTemplatesInEmailSettings < ActiveRecord::Migration
rename_column :email_settings, :accepted_email_template, :accepted_body
rename_column :email_settings, :rejected_email_template, :rejected_body
rename_column :email_settings, :confirmed_email_template, :confirmed_without_registration_body
rename_column :email_settings, :updated_conference_dates_template, :updated_conference_dates_body
rename_column :email_settings, :updated_conference_registration_dates_template, :updated_conference_registration_dates_body
rename_column :email_settings, :venue_update_template, :venue_update_body
rename_column :email_settings, :call_for_papers_dates_updates_template, :call_for_papers_dates_updates_body
rename_column :email_settings, :send_on_updated_conference_dates, :send_on_conference_dates_updated
rename_column :email_settings, :updated_conference_dates_subject, :conference_dates_updated_subject
rename_column :email_settings, :updated_conference_dates_template, :conference_dates_updated_body
rename_column :email_settings, :send_on_updated_conference_registration_dates, :send_on_conference_registration_dates_updated
rename_column :email_settings, :updated_conference_registration_dates_subject, :conference_registration_dates_updated_subject
rename_column :email_settings, :updated_conference_registration_dates_template, :conference_registration_dates_updated_body
rename_column :email_settings, :send_on_venue_update, :send_on_venue_updated
rename_column :email_settings, :venue_update_subject, :venue_updated_subject
rename_column :email_settings, :venue_update_template, :venue_updated_body
rename_column :email_settings, :send_on_call_for_papers_dates_updates, :send_on_call_for_papers_dates_updated
rename_column :email_settings, :call_for_papers_dates_updates_subject, :call_for_papers_dates_updated_subject
rename_column :email_settings, :call_for_papers_dates_updates_template, :call_for_papers_dates_updated_body
rename_column :email_settings, :call_for_papers_schedule_public_template, :call_for_papers_schedule_public_body
end
end

View file

@ -11,7 +11,7 @@
#
# It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema.define(version: 20150929142405) do
ActiveRecord::Schema.define(version: 20151005161518) do
create_table "ahoy_events", force: true do |t|
t.uuid "visit_id"
@ -158,35 +158,35 @@ ActiveRecord::Schema.define(version: 20150929142405) 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.text "registration_email_template"
t.text "accepted_email_template"
t.text "rejected_email_template"
t.text "confirmed_email_template"
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_body"
t.text "accepted_body"
t.text "rejected_body"
t.text "confirmed_without_registration_body"
t.datetime "created_at"
t.datetime "updated_at"
t.string "registration_subject"
t.string "accepted_subject"
t.string "rejected_subject"
t.string "confirmed_without_registration_subject"
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.string "updated_conference_registration_dates_subject"
t.text "updated_conference_registration_dates_template"
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.boolean "send_on_conference_dates_updated", default: false
t.string "conference_dates_updated_subject"
t.text "conference_dates_updated_body"
t.boolean "send_on_conference_registration_dates_updated", default: false
t.string "conference_registration_dates_updated_subject"
t.text "conference_registration_dates_updated_body"
t.boolean "send_on_venue_updated", default: false
t.string "venue_updated_subject"
t.text "venue_updated_body"
t.boolean "send_on_call_for_papers_dates_updated", 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"
t.string "call_for_papers_dates_updated_subject"
t.text "call_for_papers_schedule_public_body"
t.text "call_for_papers_dates_updated_body"
end
create_table "event_types", force: true do |t|

View file

@ -6,21 +6,21 @@ FactoryGirl.define do
send_on_accepted false
send_on_rejected false
send_on_confirmed_without_registration false
send_on_updated_conference_dates true
send_on_updated_conference_registration_dates true
send_on_conference_dates_updated true
send_on_conference_registration_dates_updated true
send_on_call_for_papers_schedule_public true
send_on_call_for_papers_dates_updates true
updated_conference_dates_body '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'
updated_conference_registration_dates_body 'Sample Conference\n New Dates: January 17 - 21 2014'
send_on_venue_update true
venue_update_subject 'Venue has been updated'
venue_update_body 'Venue has been Updated to Sample Location'
send_on_call_for_papers_dates_updated true
conference_dates_updated_body 'Sample Conference\n New Dates: January 17 - 21 2014'
conference_dates_updated_subject 'Conference dates have been updated'
conference_registration_dates_updated_subject 'Conference registration dates have been updated'
conference_registration_dates_updated_body 'Sample Conference\n New Dates: January 17 - 21 2014'
send_on_venue_updated true
venue_updated_subject 'Venue has been updated'
venue_updated_body 'Venue has been Updated to Sample Location'
registration_subject 'Lorem Ipsum Dolsum'
registration_body '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_body 'Please checkout the new updates to submit your proposal for Sample Conference'
call_for_papers_dates_updated_subject 'Call for Papers dates have been updated'
call_for_papers_dates_updated_body '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_body 'Call for Papers schedule is Public.Checkout the link'
end

View file

@ -36,19 +36,19 @@ feature EmailSettings do
with: 'Confirmed without registration email body'
click_link 'Update Notifications'
fill_in 'email_settings_updated_conference_dates_subject',
fill_in 'email_settings_conference_dates_updated_subject',
with: 'Updated conference dates subject'
fill_in 'email_settings_updated_conference_dates_body',
fill_in 'email_settings_conference_dates_updated_body',
with: 'Updated conference dates email template'
fill_in 'email_settings_updated_conference_registration_dates_subject',
fill_in 'email_settings_conference_registration_dates_updated_subject',
with: 'Updated conference registration dates subject'
fill_in 'email_settings_updated_conference_registration_dates_body',
fill_in 'email_settings_conference_registration_dates_updated_body',
with: 'Updated conference registration dates template'
fill_in 'email_settings_venue_update_subject',
fill_in 'email_settings_venue_updated_subject',
with: 'Updated conference venue subject'
fill_in 'email_settings_venue_update_body',
fill_in 'email_settings_venue_updated_body',
with: 'Updated conference venue template'
click_button 'Update Email settings'
@ -74,17 +74,17 @@ feature EmailSettings do
expect(find('#email_settings_confirmed_without_registration_body').
value).to eq('Confirmed without registration email body')
click_link 'Update Notifications'
expect(find('#email_settings_updated_conference_dates_subject').
expect(find('#email_settings_conference_dates_updated_subject').
value).to eq('Updated conference dates subject')
expect(find('#email_settings_updated_conference_dates_body').
expect(find('#email_settings_conference_dates_updated_body').
value).to eq('Updated conference dates email template')
expect(find('#email_settings_updated_conference_registration_dates_subject').
expect(find('#email_settings_conference_registration_dates_updated_subject').
value).to eq('Updated conference registration dates subject')
expect(find('#email_settings_updated_conference_registration_dates_body').
expect(find('#email_settings_conference_registration_dates_updated_body').
value).to eq('Updated conference registration dates template')
expect(find('#email_settings_venue_update_subject').
expect(find('#email_settings_venue_updated_subject').
value).to eq('Updated conference venue subject')
expect(find('#email_settings_venue_update_body').
expect(find('#email_settings_venue_updated_body').
value).to eq('Updated conference venue template')
expect(EmailSettings.count).to eq(expected_count)