Add email regex feature.
Edit defined_by_applicant feature.
Add agree and disagree record time and let admin can click in backend page.
Edit frontend select email feature.
Remove items and enquiry_for_applicants page.
This commit is contained in:
bohung committed 2022-08-13 11:35:29 +08:00
1 parent d0062fed8f
commit 10cb149fc7
18 files changed
+563 -105

No files matched your search

@@ -18,16 +18,22 @@ class Admin::ApplicationFormSignupsController < OrbitAdminController
end
end
def edit
OrbitHelper.set_params(params,current_user)
params[:controller] = "admin/application_forms"
@application_form_signup = ApplicationFormSignup.find(params[:id])
@application_form = ApplicationFormMain.find(@application_form_signup.application_form_main_id)
@form_index = 0
@form_index = 0
end
def view
params[:controller] = "admin/application_forms"
@application_form_signup = ApplicationFormSignup.find(params[:id])
@application_form = ApplicationFormMain.find(@application_form_signup.application_form_main_id)
@form_index = 0
end
def update
@application_form_signup = ApplicationFormSignup.find(params[:id])
@@ -666,6 +666,7 @@ class Admin::ApplicationFormsController < OrbitAdminController
end
@application_form_signups = @application_form.application_form_signups.where(:id.in => unassigned_application_form_signup_ids, :name=>/#{params[:search]}/)
end
@application_form_signups = @application_form_signups.order(:id=>-1)
OrbitHelper.set_params(params,current_user)
@access_level = OrbitHelper.user_access_level?
@can_edit = true
+37 -36
View File
@@ -406,9 +406,10 @@ class ApplicationFormsController < ApplicationController
extra_text = "<br>#{I18n.t('application_form_signup.serial_number')}: #{signup.display_serial_number}"
extra_text += render_to_string("application_forms/signup_email_contents",:locals=>{:application_form=>application_form,
:application_form_signup=>signup},:layout=>false)
signup.agree_reviewer_ids[stage_num.to_s] = params[:reviewer]
signup.agree_reviewer_times[stage_num.to_s] = Time.now
signup.save
if params[:type] == 'agree'
signup.agree_reviewer_ids[stage_num.to_s] = params[:reviewer]
signup.save
if stage_num == application_form.get_max_stage
signup.update(:review_status => 2)
signup.clean_cipher
@@ -453,15 +454,37 @@ class ApplicationFormsController < ApplicationController
@signup = nil #ApplicationFormSignup.where(email: form_params_email, application_form_main_id: form_params_main_id ).first
@application_form = ApplicationFormMain.where(id: form_params_main_id).first
email_regex = @application_form.get_email_regex
@application_form_signup = ApplicationFormSignup.new(application_form_signup_params)
@application_form_signup.ip = request.remote_ip
@application_form_signup.application_form_main = @application_form
if @application_form.application_form_signup_field_sets.count!=0
flag = @application_form.application_form_signup_field_sets.select{|v| v.field_name=='recaptcha'}[0].disabled
else
flag = false
end
verification_success = true
unless flag
if gotcha_valid?
flag = true
else
verification_success = false
end
end
email_valid = true
if email_regex
email_valid = !(::Regexp.new(email_regex).match(form_params_email.to_s).nil?)
unless email_valid
flag = false
end
end
referer_url = params[:referer_url].to_s
org_params = CGI.parse(referer_url.split('?')[1].to_s)
referer_url = referer_url.split("?")[0]
org_params.delete("notice")
notice = ''
begin
if gotcha_valid? || flag
if flag
if @signup.blank? && @application_form_signup.save
# if gotcha_valid? && @application_form_signup.save
@@ -502,39 +525,21 @@ class ApplicationFormsController < ApplicationController
id_with_email.each do |id, email|
send_mail('submission', email , form_params_main_id,extra_text, {'agree_link'=>agree_link + "&reviewer=#{id}"})
end
redirect_to "#{params[:referer_url]}/?method=signup_ok&serial_number=#{@application_form_signup.display_serial_number}"
redirect_to "#{referer_url}/?method=signup_ok&serial_number=#{@application_form_signup.display_serial_number}" and return
else
if !@signup.blank?
redirect_to "#{params[:referer_url]}", :notice => 'mail已存在'
else
referer_url = params[:referer_url].to_s
if referer_url.split("/").last.include?("?")
uri_query = referer_url.split("?").last.gsub(/notice=[^&]*/,'')
if uri_query == ""
referer_url = referer_url.split("?")[0...-1].join("?") + "?notice=#{t('recaptcha.errors.verification_failed')}"
else
referer_url = referer_url.split("?")[0...-1].join("?") + "&notice=#{t('recaptcha.errors.verification_failed')}"
end
else
referer_url = referer_url + "?notice=#{t('recaptcha.errors.verification_failed')}"
end
redirect_to referer_url, :notice => t('recaptcha.errors.verification_failed')
notice = I18n.t('application_form.mail_exist')
end
end
else
referer_url = params[:referer_url].to_s
if referer_url.split("/").last.include?("?")
uri_query = referer_url.split("?").last.gsub(/notice=[^&]*/,'')
if uri_query == ""
referer_url = referer_url.split("?")[0...-1].join("?") + "?notice=#{t('recaptcha.errors.verification_failed')}"
else
referer_url = referer_url.split("?")[0...-1].join("?") + "&notice=#{t('recaptcha.errors.verification_failed')}"
end
else
referer_url = referer_url + "?notice=#{t('recaptcha.errors.verification_failed')}"
end
redirect_to referer_url, :notice => t('recaptcha.errors.verification_failed')
end
if !email_valid
notice = t('application_form.please_check_email_format')
elsif !verification_success
notice = t('recaptcha.errors.verification_failed')
end
org_params['notice'] = notice
referer_url += "?#{org_params.to_query}"
redirect_to referer_url, :notice => notice
rescue => e
render :html => [e.to_s, e.backtrace].to_s
end
@@ -797,10 +802,6 @@ class ApplicationFormsController < ApplicationController
template_data:{'application_form_id'=>application_form_id,'locale'=>I18n.locale,'extra_text'=> extra_text}.merge(extra_data),
mail_lang: I18n.locale)
end
begin
mail.deliver
rescue => e
puts ["email can't deliver",e]
end
mail.save
end
end