ques: fix submit
This commit is contained in:
parent
adc15951bb
commit
515185d87c
|
@ -97,8 +97,13 @@ class Panel::Survey::BackEnd::SurveysController < OrbitBackendController
|
||||||
@survey.survey_answers.each do |answer|
|
@survey.survey_answers.each do |answer|
|
||||||
row = []
|
row = []
|
||||||
@survey_questions.each do |question|
|
@survey_questions.each do |question|
|
||||||
|
if question.type == ::SurveyQuestion::Radiogroup
|
||||||
|
options = Hash[question.survey_question_options.collect{|o| [ o.id.to_s, o.name ] }]
|
||||||
|
row << Hash[answer[question.id.to_s].map {|o, g| [options[o], g]}]
|
||||||
|
else
|
||||||
row << answer[question.id.to_s]
|
row << answer[question.id.to_s]
|
||||||
end
|
end
|
||||||
|
end
|
||||||
csv << row
|
csv << row
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -143,14 +148,38 @@ class Panel::Survey::BackEnd::SurveysController < OrbitBackendController
|
||||||
@survey.survey_questions.all.each do |question|
|
@survey.survey_questions.all.each do |question|
|
||||||
new_question = @new_survey.survey_questions.new
|
new_question = @new_survey.survey_questions.new
|
||||||
question.attributes.each do |key, value|
|
question.attributes.each do |key, value|
|
||||||
unless ['_id', 'created_at', 'updated_at'].include? key
|
unless ['_id', 'survey_id'].include? key
|
||||||
if @survey.respond_to?(key + '_translations')
|
if question.respond_to?(key + '_translations')
|
||||||
new_question.send(key + '_translations=', value)
|
new_question.send(key + '_translations=', value)
|
||||||
else
|
else
|
||||||
new_question.write_attribute(key, value)
|
new_question.write_attribute(key, value)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
question.survey_question_options.all.each do |option|
|
||||||
|
new_option = new_question.survey_question_options.new
|
||||||
|
option.attributes.each do |key, value|
|
||||||
|
unless ['_id', 'survey_question_id'].include? key
|
||||||
|
if option.respond_to?(key + '_translations')
|
||||||
|
new_option.send(key + '_translations=', value)
|
||||||
|
else
|
||||||
|
new_option.write_attribute(key, value)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
question.survey_question_radiogroups.all.each do |radiogroup|
|
||||||
|
new_radiogroup = new_question.survey_question_radiogroups.new
|
||||||
|
radiogroup.attributes.each do |key, value|
|
||||||
|
unless ['_id', 'survey_question_id'].include? key
|
||||||
|
if radiogroup.respond_to?(key + '_translations')
|
||||||
|
new_radiogroup.send(key + '_translations=', value)
|
||||||
|
else
|
||||||
|
new_radiogroup.write_attribute(key, value)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@new_survey.create_user_id = current_user.id
|
@new_survey.create_user_id = current_user.id
|
||||||
|
|
|
@ -60,7 +60,7 @@ class Panel::Survey::FrontEnd::SurveysController < OrbitWidgetController
|
||||||
if answer[qid]
|
if answer[qid]
|
||||||
answer[qid].each do |oid, value|
|
answer[qid].each do |oid, value|
|
||||||
unless value.blank?
|
unless value.blank?
|
||||||
@answer_model[qid][options[oid]] = radiogroups[value]
|
@answer_model[qid][oid] = radiogroups[value]
|
||||||
else
|
else
|
||||||
if question.is_required
|
if question.is_required
|
||||||
@answer_model.errors.add question.title, t('survey_question.required_error')
|
@answer_model.errors.add question.title, t('survey_question.required_error')
|
||||||
|
|
|
@ -8,7 +8,6 @@ class SurveyQuestion
|
||||||
Radiogroup = 5
|
Radiogroup = 5
|
||||||
|
|
||||||
include Mongoid::Document
|
include Mongoid::Document
|
||||||
include Mongoid::Timestamps
|
|
||||||
|
|
||||||
field :title, :localize => true
|
field :title, :localize => true
|
||||||
field :description, :localize => true
|
field :description, :localize => true
|
||||||
|
|
Reference in New Issue