import radio question success

Conflicts:

	Gemfile
	vendor/built_in_modules/survey/app/controllers/panel/survey/back_end/surveys_controller.rb
This commit is contained in:
thomaschen 2013-10-21 16:15:06 +08:00 committed by Manson Wang
parent 5d7f83ed0e
commit db355d4d27
2 changed files with 38 additions and 0 deletions

View File

@ -29,6 +29,9 @@ gem 'mongoid-tree', :require => 'mongoid/tree'
gem "mongo_session_store-rails3", '3.0.6' gem "mongo_session_store-rails3", '3.0.6'
gem 'nokogiri' gem 'nokogiri'
# import csv
gem 'roo'
gem 'fb_graph' gem 'fb_graph'
gem 'rack-gridfs' gem 'rack-gridfs'
gem 'radius' gem 'radius'

View File

@ -90,6 +90,41 @@ class Panel::Survey::BackEnd::SurveysController < OrbitBackendController
end end
def import def import
@survey = ::Survey.find(params[:id])
@file = params[:file]
@chart_data, @survey_questions, @survey_answers = @survey.generate_chart_data
case File.extname(@file.original_filename)
when ".csv" then @spreadsheet = Roo::CSV.new(@file.path)
# when ".xls" then Excel.new(file.path, nil, :ignore)
# when ".xlsx" then Excelx.new(file.path, nil, :ignore)
else raise "Unknown file type: #{file.original_filename}"
end
@current_row = 2
@header = @spreadsheet.row(1)
# (2..@spreadsheet.last_row).each do |i|
# parse each row here
# end
@survey.survey_answers.destroy
@survey_questions.each do |question|
case question.type
when ::SurveyQuestion::Radio, ::SurveyQuestion::Select
(@current_row..(@current_row + question.survey_question_options.count - 1)).each do |i|
(1..@spreadsheet.row(i)[1].to_i).each do
@answer_model = @survey.survey_answers.new
@answer_model[question.id.to_s] = @spreadsheet.row(i)[0]
@answer_model.save!
end
end
@current_row = @current_row + question.survey_question_options.count - 1
else
end
end
redirect_to panel_survey_back_end_surveys_url, :notice => :success
end end
def export def export