diff --git a/app/controllers/exercise_controller.rb b/app/controllers/exercise_controller.rb index 96faa005..7ca4f69b 100644 --- a/app/controllers/exercise_controller.rb +++ b/app/controllers/exercise_controller.rb @@ -728,6 +728,7 @@ class ExerciseController < ApplicationController ExerciseShixunAnswer.where(:exercise_question_id => @exercise.exercise_questions.pluck(:id)).destroy_all @exercise.update_attributes(:exercise_status => 1, :publish_time => nil, :end_time => nil, :unified_setting => 1) @exercise.exercise_group_settings.destroy_all + @exercise.exercise_user_questions.destroy_all @exercise.course_acts.destroy_all @exercise.tidings.destroy_all create_exercises_list @exercise diff --git a/app/models/exercise.rb b/app/models/exercise.rb index f0343311..5b81b1b3 100644 --- a/app/models/exercise.rb +++ b/app/models/exercise.rb @@ -30,6 +30,7 @@ class Exercise < ActiveRecord::Base end def create_user_question_list exercise_user_id + self.exercise_user_questions.where(exercise_user_id: exercise_user_id).destroy_all self.exercise_questions.where("question_type != 5").each do |question| ExerciseUserQuestion.create(exercise_id: self.id, exercise_user_id: exercise_user_id, exercise_question_id: question.id) end diff --git a/app/views/challenges/_edit_evaluating_page.html.erb b/app/views/challenges/_edit_evaluating_page.html.erb index 3dd94163..33e22610 100644 --- a/app/views/challenges/_edit_evaluating_page.html.erb +++ b/app/views/challenges/_edit_evaluating_page.html.erb @@ -191,7 +191,7 @@ - + @@ -330,7 +330,9 @@ function startSystem_score_percentage(){ getpercentage() } - + // function customSystem_score_percentage(){ + // + // } $(function(){ //填写百分比初始化 //$("#All_tests").attr('checked', 'checked'); @@ -422,15 +424,12 @@ var maxnum=0; var percentagelist = document.getElementsByName("test_set[score][]"); - if($("#Partial_test").is(":checked")) { - if ($("#Custom_ratio").is(":checked")) { - for (var i = 0; i < percentagelist.length; i++) { - maxnum = maxnum+parseInt($(percentagelist[i]).val()); - - } + if ($("#Partial_test").is(":checked")) { + for (var i = 0; i < percentagelist.length; i++) { + maxnum = maxnum + parseInt($(percentagelist[i]).val()); } } - + console.log("######"+maxnum); if(maxnum != 100){ $("#occupy_type").show() return diff --git a/db/migrate/20190506070751_migrate_exercise_user_questions.rb b/db/migrate/20190506070751_migrate_exercise_user_questions.rb new file mode 100644 index 00000000..3417cf67 --- /dev/null +++ b/db/migrate/20190506070751_migrate_exercise_user_questions.rb @@ -0,0 +1,30 @@ +class MigrateExerciseUserQuestions < ActiveRecord::Migration + def up + exercise = Exercise.where(:id => 1031).first + if exercise.present? + exercise.exercise_users.each do |exercise_user| + # 分配的实训题数量多于6个的(撤销发布过的学生会有12个题)则删除前六个题 + if exercise_user.exercise_user_questions.where(:exercise_id => exercise.id).count > 6 + exercise_user.exercise_user_questions[0..5].each do |question| + question.destroy + end + end + + # 分数超过一百分的需要重新计算得分 + if exercise_user.objective_score > 100.0 + score = 0 + ExerciseUserQuestion.where(exercise_user_id: exercise_user.id, exercise_id: exercise.id).each do |question| + question.exercise_shixun_challenges.each do |exercise_cha| + score += exercise_cha.exercise_shixun_answers.where(user_id => exercise_user.user_id).try(:score).to_f + end + end + + exercise_user.update_attributes(score: score, objective_score: score) + end + end + end + end + + def down + end +end