error fix

This commit is contained in:
thomaschen 2013-10-25 16:54:29 +08:00 committed by Manson Wang
parent 9b96f2eeb0
commit 4a736cc92c
1 changed files with 90 additions and 77 deletions

View File

@ -111,29 +111,38 @@ class Panel::Survey::BackEnd::SurveysController < OrbitBackendController
@survey_answers.destroy
# End of speadsheet
# Start and end of speadsheet
@end_row = @spreadsheet.count
@max_row_start = 0
@survey_questions.each do |question|
case question.type
when ::SurveyQuestion::Radio, ::SurveyQuestion::Select, ::SurveyQuestion::Check
if question.survey_question_options.count > @max_row_start
@max_row_start = question.survey_question_options.count
end
when ::SurveyQuestion::Radiogroup
if question.survey_question_options.count * question.survey_question_radiogroups.count > @max_row_start
@max_row_start = question.survey_question_options.count * question.survey_question_radiogroups.count
end
end
end
@start_row = @max_row_start + 2
# Modify multiline options if changed
(@start_row..@end_row).each do |row|
@answer_model = @survey.survey_answers.new
@survey_questions.each_with_index do |question, index|
case question.type
when ::SurveyQuestion::Radio, ::SurveyQuestion::Select
((question.survey_question_options.count + 2)..@end_row).each do |row|
@answer_model = @survey.survey_answers.new
if !@spreadsheet.row(row)[index*2].nil? && @spreadsheet.row(row)[index*2] != " "
@answer_model[question.id.to_s] = @spreadsheet.row(row)[index*2]
@answer_model.save!
end
end
when ::SurveyQuestion::Check
((question.survey_question_options.count + 2)..@end_row).each do |row|
@answer_model = @survey.survey_answers.new
if !@spreadsheet.row(row)[index*2].nil?
@answer_model[question.id.to_s] = @spreadsheet.row(row)[index*2].split("\"").select.each_with_index { |str, i| i.odd? }
@answer_model.save!
end
end
when ::SurveyQuestion::Radiogroup
@ -158,14 +167,14 @@ class Panel::Survey::BackEnd::SurveysController < OrbitBackendController
# Save the answers
answers.each do |answer|
options = Hash[question.survey_question_options.collect { |o| [ o.id.to_s, o.name ] }]
@answer_model = @survey.survey_answers.new
# @answer_model = @survey.survey_answers.new
@answer_model[question.id.to_s] = {}
answer.each do |option, value|
@answer_model[question.id.to_s][options.invert[option]] = value
end
@answer_model.save!
# @answer_model.save!
end
# Parse the needed info in the array
@ -211,6 +220,10 @@ class Panel::Survey::BackEnd::SurveysController < OrbitBackendController
end
end
@answer_model.save!
end #end row
# @start_row = 2
# @survey.survey_answers.destroy
# @survey_questions.each_with_index do |question,index|