mirror of
https://github.com/openSUSE/osem.git
synced 2026-02-05 11:41:06 -05:00
40 lines
1.2 KiB
Ruby
40 lines
1.2 KiB
Ruby
module Admin
|
|
class VolunteersController < Admin::BaseController
|
|
load_and_authorize_resource :conference, find_by: :short_title
|
|
|
|
def index
|
|
if can_manage_volunteers(@conference)
|
|
render :index
|
|
else
|
|
authorize! :index, :volunteer
|
|
end
|
|
end
|
|
|
|
def show
|
|
if can_manage_volunteers(@conference)
|
|
if @conference.use_vpositions
|
|
@volunteers = @conference.registrations.joins(:vchoices).uniq
|
|
else
|
|
@volunteers = @conference.registrations.where(volunteer: true)
|
|
end
|
|
else
|
|
authorize! :index, :volunteer
|
|
end
|
|
end
|
|
|
|
def update
|
|
if @conference.update_attributes(conference_params)
|
|
redirect_to admin_conference_volunteers_info_path(conference_id: params[:conference_id]), notice: 'Volunteering options were successfully updated.'
|
|
else
|
|
redirect_to admin_conference_volunteers_info_path(conference_id: params[:conference_id]), error: "Volunteering options update failed: #{@conference.errors.full_messages.join '. '}"
|
|
end
|
|
end
|
|
|
|
private
|
|
|
|
def conference_params
|
|
params.require(:conference).permit(:use_volunteers, :use_vdays, :use_vpositions)
|
|
end
|
|
end
|
|
end
|