forked from spen/seminar
80 lines
2.7 KiB
Ruby
80 lines
2.7 KiB
Ruby
# encoding: utf-8
|
|
class Admin::SeminarSignupsController < OrbitAdminController
|
|
include Admin::SeminarsHelper
|
|
before_action ->(module_app = @app_title) { set_variables module_app }
|
|
before_action :check_manager_for_seminar
|
|
skip_before_action :check_for_nil_categories
|
|
def initialize
|
|
super
|
|
@app_title = "seminar"
|
|
end
|
|
def check_manager_for_seminar
|
|
OrbitHelper.set_params(params,current_user)
|
|
OrbitHelper.set_this_module_app("seminar")
|
|
access_level = OrbitHelper.user_access_level?
|
|
if access_level.nil? || access_level == "user"
|
|
@seminar = SeminarSignup.find(params[:id]).seminar_main rescue nil
|
|
if (@seminar.organizer_id != current_user.member_profile_id rescue true)
|
|
render_401
|
|
end
|
|
elsif access_level == "sub_manager"
|
|
@seminar = SeminarSignup.find(params[:id]).seminar_main rescue nil
|
|
approved_category_ids = current_user.approved_categories.collect{|c| c.id}
|
|
unless approved_category_ids.include?(@seminar.category_id) || (@seminar.organizer_id == current_user.member_profile_id rescue false)
|
|
render_401
|
|
end
|
|
end
|
|
end
|
|
def edit
|
|
OrbitHelper.set_params(params,current_user)
|
|
params[:controller] = "admin/seminars"
|
|
|
|
@seminar_signup = SeminarSignup.find(params[:id])
|
|
@seminar = SeminarMain.find(@seminar_signup.seminar_main_id)
|
|
|
|
@form_index = 0
|
|
|
|
end
|
|
|
|
def update
|
|
|
|
@seminar_signup = SeminarSignup.find(params[:id])
|
|
@seminar_signup.update_attributes(seminar_signup_params)
|
|
|
|
if !params[:seminar_signup_values].nil?
|
|
params[:seminar_signup_values].each_with_index do |r,i|
|
|
field_value = r.last[:id].present?
|
|
@custom_field_value = SeminarSignupValue.put_field_values(@seminar_signup, r.last, r.last[:id], field_value)
|
|
end
|
|
seminar_reviews = SeminarReview.where(:seminar_main_id=>@seminar_signup.seminar_main_id).to_a
|
|
seminar_reviews.each{|sr| sr.save}
|
|
@seminar = @seminar_signup.seminar_main
|
|
unassigned_seminar_signup_ids = @seminar.seminar_signup_ids.map{|s| s.to_s}
|
|
@seminar.seminar_reviews.each do |sr|
|
|
unassigned_seminar_signup_ids = unassigned_seminar_signup_ids - sr.all_seminar_signup_ids
|
|
end
|
|
@seminar.unassigned_seminar_signup_ids = unassigned_seminar_signup_ids
|
|
@seminar.save
|
|
end
|
|
|
|
redirect_to "/admin/seminars/#{@seminar_signup.seminar_main_id}/seminar_signup"
|
|
|
|
end
|
|
|
|
def destroy
|
|
@seminar_signup = SeminarSignup.find(params[:id])
|
|
|
|
@seminar_main_id = @seminar_signup.seminar_main_id
|
|
|
|
@seminar_signup.destroy
|
|
|
|
redirect_to "/admin/seminars/#{@seminar_main_id}/seminar_signup"
|
|
end
|
|
|
|
private
|
|
|
|
def seminar_signup_params
|
|
params.require(:seminar_signup).permit!
|
|
end
|
|
end
|