46 lines
1.7 KiB
Ruby
46 lines
1.7 KiB
Ruby
module Admin
|
|
class AudiencesController < ApplicationController
|
|
before_action :set_conference, only: [:edit, :update]
|
|
before_action :set_audience, only: [:edit, :update]
|
|
|
|
def edit
|
|
end
|
|
|
|
def update
|
|
@audience.assign_attributes(audience_params)
|
|
|
|
notify_on_conf_reg_dates_updates = (@audience.registration_start_date_changed? || @audience.registration_end_date_changed?)\
|
|
&& @conference.email_settings.send_on_updated_conference_registration_dates\
|
|
&& !@conference.email_settings.updated_conference_registration_dates_subject.blank?\
|
|
&& @conference.email_settings.updated_conference_registration_dates_template
|
|
|
|
if @audience.update(audience_params)
|
|
Mailbot.delay.conference_registration_date_update_mail(@conference) if notify_on_conf_reg_dates_updates
|
|
redirect_to edit_admin_conference_audience_path(@conference.short_title),
|
|
notice: 'Audience was successfully updated.'
|
|
else
|
|
render :edit
|
|
end
|
|
end
|
|
|
|
private
|
|
|
|
def set_conference
|
|
@conference = Conference.find_by(short_title: params[:conference_id])
|
|
end
|
|
|
|
# Use callbacks to share common setup or constraints between actions.
|
|
def set_audience
|
|
@audience = @conference.audience
|
|
end
|
|
|
|
# Only allow a trusted parameter "white list" through.
|
|
def audience_params
|
|
# params.require(:audience).permit(:conference_id,
|
|
# :registration_start_date,
|
|
# :registration_end_date,
|
|
# :registration_description)
|
|
params[:audience]
|
|
end
|
|
end
|
|
end
|