diff --git a/app/controllers/exercise_controller.rb b/app/controllers/exercise_controller.rb index f1b90dba8..9b09a28d9 100644 --- a/app/controllers/exercise_controller.rb +++ b/app/controllers/exercise_controller.rb @@ -189,7 +189,7 @@ class ExerciseController < ApplicationController @exercise_question = ExerciseQuestion.find params[:exercise_question] @exercise_question.question_title = params[:question_title].nil? || params[:question_title].empty? ? l(:label_enter_single_title) : params[:question_title] @exercise_question.question_score = params[:question_score] - # 处理选项 + # 处理选项:如果选了某个选项,那么则要删除之前的选项 if params[:question_answer] @exercise_question.exercise_choices.each do |answer| answer.destroy unless params[:question_answer].keys.include? answer.id.to_s @@ -198,21 +198,45 @@ class ExerciseController < ApplicationController question = @exercise_question.exercise_choices.find_by_id params[:question_answer].keys[i-1] answer = (params[:question_answer].values[i-1].nil? || params[:question_answer].values[i-1].empty?) ? l(:label_new_answer) : params[:question_answer].values[i-1] if question - question.exercise_choices_id = i - question.answer_text = answer + question.choice_position = i + question.choice_text = answer question.save else question_option = { - :exercise_choice_id => i, - :answer_text => answer + :choice_position => i, + :choice_text => answer } - @exercise_question.exercise_answers.new question_option + @exercise_question.exercise_choices.new question_option end end end - @exercise_question.save - respond_to do |format| - format.js + # 更新标准答案 + if params[:exercise_choice] + if @exercise_question.question_type == 3 + for i in 1..params[:exercise_choice].count + # 找到对应的标准答案 + question_standart = @exercise_question.exercise_standard_answers.find_by_id params[:exercise_choice].keys[i-1] + # 标准答案值 + answer_standart = (params[:exercise_choice].values[i-1].nil? || params[:exercise_choice].values[i-1].empty?) ? l(:label_new_answer) : params[:exercise_choice].values[i-1] + if question_standart + question_standart.answer_text = answer_standart + question_standart.save + else + standart_answer_option = { + :answer_text => question_standart + } + @exercise_question.exercise_standard_answers.new standart_answer_option + end + end + else + answer_standart = @exercise_question.exercise_standard_answers.first + answer_standart.exercise_choice_id = @exercise_question.question_type == 1 ? sigle_selection_standard_answer(params[:exercise_choice]) : multiselect_standard_answer(params[:exercise_choice]) + answer_standart.save + end + @exercise_question.save + respond_to do |format| + format.js + end end end @@ -232,7 +256,7 @@ class ExerciseController < ApplicationController end end - #发布问卷 + # 发布试卷 def publish_excercise @exercise.exercise_status = 2 @exercise.publish_time = Time.now @@ -247,6 +271,19 @@ class ExerciseController < ApplicationController end end + # 重新发布试卷 + def republish_excercise + @exercise.exercise_questions.each do |exercise_question| + exercise_question.exercise_ansers.destroy_all + end + # @poll.poll_users.destroy_all + # @poll.polls_status = 1 + # @poll.save + # respond_to do |format| + # format.js + # end + end + def student_exercise_list @is_teacher = User.current.allowed_to?(:as_teacher,@course) || User.current.admin? @exercise = Exercise.find params[:id] @@ -265,7 +302,7 @@ class ExerciseController < ApplicationController end end - # 学生提交答卷,选着答案的课程中提交 + # 学生提交答卷,选中答案的过程中提交 def commit_answer eq = ExerciseQuestion.find(params[:exercise_question_id]) # 已提交过的则不允许答题 diff --git a/app/views/exercise/_edit_MC.html.erb b/app/views/exercise/_edit_MC.html.erb index 9c6f3c396..76bad697c 100644 --- a/app/views/exercise/_edit_MC.html.erb +++ b/app/views/exercise/_edit_MC.html.erb @@ -35,7 +35,7 @@ <% exercise_question.exercise_choices.reorder("choice_position").each_with_index do |exercise_choice,index| %>