|
|
|
@ -28,6 +28,7 @@ class SeminarsController < ApplicationController
|
|
|
|
|
registration_is_open = seminar.registration_status.present?
|
|
|
|
|
sign_up_not_yet = seminar.signup_start_date && @time_now && @seminar.signup_start_date > @time_now
|
|
|
|
|
sign_up_overdue = seminar.signup_end_date && @time_now && (@seminar.signup_end_date + 1.day <= @time_now)
|
|
|
|
|
signup_is_full = seminar.signup_is_full?
|
|
|
|
|
seminar_url = (@custom_slug ? OrbitHelper.url_to_show(@custom_slug) : OrbitHelper.url_to_show(seminar.to_param))
|
|
|
|
|
if !registration_is_open
|
|
|
|
|
sign_up = t('seminar.sign_up_not_open')
|
|
|
|
@ -35,6 +36,8 @@ class SeminarsController < ApplicationController
|
|
|
|
|
sign_up = t('seminar.sign_up_not_yet')
|
|
|
|
|
elsif sign_up_overdue
|
|
|
|
|
sign_up = t('seminar.sign_up_overdue')
|
|
|
|
|
elsif signup_is_full
|
|
|
|
|
sign_up = t('seminar.sign_up_is_full')
|
|
|
|
|
else
|
|
|
|
|
sign_up_text = t('seminar.signup')
|
|
|
|
|
sign_up = link_to(sign_up_text, seminar.get_frontend_url(link_url), :target=>'_blank', :title=>sign_up_text)
|
|
|
|
@ -329,6 +332,7 @@ class SeminarsController < ApplicationController
|
|
|
|
|
registration_is_open = seminar.registration_status.present?
|
|
|
|
|
sign_up_not_yet = seminar.signup_start_date && @time_now && @seminar.signup_start_date > @time_now
|
|
|
|
|
sign_up_overdue = seminar.signup_end_date && @time_now && (@seminar.signup_end_date + 1.day <= @time_now)
|
|
|
|
|
signup_is_full = seminar.signup_is_full?
|
|
|
|
|
seminar_url = (@custom_slug ? OrbitHelper.url_to_show(@custom_slug) : OrbitHelper.url_to_show(seminar.to_param))
|
|
|
|
|
if !registration_is_open
|
|
|
|
|
sign_up = t('seminar.sign_up_not_open')
|
|
|
|
@ -336,6 +340,8 @@ class SeminarsController < ApplicationController
|
|
|
|
|
sign_up = t('seminar.sign_up_not_yet')
|
|
|
|
|
elsif sign_up_overdue
|
|
|
|
|
sign_up = t('seminar.sign_up_overdue')
|
|
|
|
|
elsif signup_is_full
|
|
|
|
|
sign_up = t('seminar.sign_up_is_full')
|
|
|
|
|
else
|
|
|
|
|
sign_up_text = t('seminar.signup')
|
|
|
|
|
sign_up = link_to(sign_up_text, seminar.get_frontend_url(seminar_url), :target=>'_blank', :title=>sign_up_text)
|
|
|
|
@ -424,6 +430,36 @@ class SeminarsController < ApplicationController
|
|
|
|
|
redirect_to referer_url, :notice => notice_words
|
|
|
|
|
return
|
|
|
|
|
end
|
|
|
|
|
signup_limit = @seminar.signup_limit
|
|
|
|
|
has_counter = false
|
|
|
|
|
if signup_limit
|
|
|
|
|
if defined?(OrbitHelper::SharedMutex)
|
|
|
|
|
OrbitHelper::SharedMutex.synchronize do
|
|
|
|
|
signup_count = OrbitHelper::SharedHash['seminar'][:counter][seminar_id]
|
|
|
|
|
if signup_count.nil?
|
|
|
|
|
signup_count = SeminarSignup.where(:seminar_main_id=>@seminar.id).count
|
|
|
|
|
OrbitHelper::SharedHash['seminar'][:counter][seminar_id] = signup_count
|
|
|
|
|
end
|
|
|
|
|
if signup_limit > signup_count
|
|
|
|
|
OrbitHelper::SharedHash['seminar'][:counter][seminar_id] = signup_count + 1
|
|
|
|
|
has_counter = true
|
|
|
|
|
else
|
|
|
|
|
notice_words = t('seminar.sign_up_is_full')
|
|
|
|
|
referer_url = get_referer_url_for_notice(notice_words)
|
|
|
|
|
redirect_to referer_url, :notice => notice_words
|
|
|
|
|
return
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
else
|
|
|
|
|
signup_count = SeminarSignup.where(:seminar_main_id=>@seminar.id).count
|
|
|
|
|
if signup_limit <= signup_count
|
|
|
|
|
notice_words = t('seminar.sign_up_is_full')
|
|
|
|
|
referer_url = get_referer_url_for_notice(notice_words)
|
|
|
|
|
redirect_to referer_url, :notice => notice_words
|
|
|
|
|
return
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
@signup = SeminarSignup.where(email: params[:seminar_signup][:email], seminar_main_id: seminar_id ).first
|
|
|
|
|
|
|
|
|
|
@seminar_signup = SeminarSignup.new(seminar_signup_params)
|
|
|
|
@ -463,6 +499,11 @@ class SeminarsController < ApplicationController
|
|
|
|
|
end
|
|
|
|
|
redirect_to "#{params[:referer_url].to_s.chomp('/').gsub(/\/([^\/?#]+)(|[^\/]+)$/){|f| '/'+$1}}?method=signup_ok#{status_param}&serial_number=#{@seminar_signup.display_serial_number}"
|
|
|
|
|
else
|
|
|
|
|
if has_counter
|
|
|
|
|
OrbitHelper::SharedMutex.synchronize do
|
|
|
|
|
OrbitHelper::SharedHash['seminar'][:counter][seminar_id] = OrbitHelper::SharedHash['seminar'][:counter][seminar_id] - 1
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
if !not_signup_yet
|
|
|
|
|
notice_words = t('seminar.email_exist')
|
|
|
|
|
referer_url = get_referer_url_for_notice(notice_words)
|
|
|
|
|