ques: fix submit

This commit is contained in:
Lukas 2013-05-10 17:15:55 +08:00 committed by iCross
parent adc15951bb
commit 515185d87c
3 changed files with 33 additions and 5 deletions

View File

@ -97,7 +97,12 @@ class Panel::Survey::BackEnd::SurveysController < OrbitBackendController
@survey.survey_answers.each do |answer|
row = []
@survey_questions.each do |question|
row << answer[question.id.to_s]
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]
end
end
csv << row
end
@ -143,14 +148,38 @@ class Panel::Survey::BackEnd::SurveysController < OrbitBackendController
@survey.survey_questions.all.each do |question|
new_question = @new_survey.survey_questions.new
question.attributes.each do |key, value|
unless ['_id', 'created_at', 'updated_at'].include? key
if @survey.respond_to?(key + '_translations')
unless ['_id', 'survey_id'].include? key
if question.respond_to?(key + '_translations')
new_question.send(key + '_translations=', value)
else
new_question.write_attribute(key, value)
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
@new_survey.create_user_id = current_user.id

View File

@ -60,7 +60,7 @@ class Panel::Survey::FrontEnd::SurveysController < OrbitWidgetController
if answer[qid]
answer[qid].each do |oid, value|
unless value.blank?
@answer_model[qid][options[oid]] = radiogroups[value]
@answer_model[qid][oid] = radiogroups[value]
else
if question.is_required
@answer_model.errors.add question.title, t('survey_question.required_error')

View File

@ -8,7 +8,6 @@ class SurveyQuestion
Radiogroup = 5
include Mongoid::Document
include Mongoid::Timestamps
field :title, :localize => true
field :description, :localize => true