diff --git a/app/controllers/exercise_questions_controller.rb b/app/controllers/exercise_questions_controller.rb index 52915a8ba..75ada699d 100644 --- a/app/controllers/exercise_questions_controller.rb +++ b/app/controllers/exercise_questions_controller.rb @@ -348,7 +348,7 @@ class ExerciseQuestionsController < ApplicationController #当试卷已发布时(试卷的总状态),当标准答案修改时,如有已提交的学生,需重新计算分数. - if @exercise.exercise_status == Exercise::PUBLISHED + if @exercise.exercise_status >= Exercise::PUBLISHED ex_users_committed = @exercise.exercise_users.exercise_user_committed if ex_users_committed.size > 0 ex_users_committed.each do |ex_user| diff --git a/db/migrate/20190820102040_change_exercise_1930_position.rb b/db/migrate/20190820102040_change_exercise_1930_position.rb index 601fb4eed..bbd73c033 100644 --- a/db/migrate/20190820102040_change_exercise_1930_position.rb +++ b/db/migrate/20190820102040_change_exercise_1930_position.rb @@ -1,16 +1,27 @@ class ChangeExercise1930Position < ActiveRecord::Migration[5.2] def change + exs = Exercise.all.includes(:exercise_questions) + exs.each do |ex| + ex_questions = ex&.exercise_questions&.select(:id,:question_number,:exercise_id)&.order("question_number ASC") + if ex_questions.exists? + ex_questions.each_with_index do |q,index| + q_num = index + 1 + if q.question_number.to_i != q_num + q.update_attributes(question_number: q_num) + end + end + end - #正式版的1930试卷的位置出现问题 - # - ex = Exercise.find_by(id:1930) - ex.exercise_questions.each_with_index do |q,index| - q.update_attributes(question_number:index+1) + ex_q_bank = ex&.exercise_bank&.exercise_bank_questions&.select(:id,:question_number,:exercise_bank_id,:shixun_id)&.order("question_number ASC") + if ex_q_bank.exists? + ex_q_bank.each_with_index do |q,index| + q_num_1 = index + 1 + if q.question_number.to_i != q_num_1 + q.update_attributes(question_number: q_num_1) + end + end + end end - ex_q_bank = ex.exercise_bank.exercise_bank_questions - ex_q_bank.each_with_index do |q,index| - q.update_attributes(question_number:index+1) - end end end