diff --git a/db/migrate/20160224074034_update_one_student_score.rb b/db/migrate/20160224074034_update_one_student_score.rb index 6e1930652..454bd8acd 100644 --- a/db/migrate/20160224074034_update_one_student_score.rb +++ b/db/migrate/20160224074034_update_one_student_score.rb @@ -1,35 +1,39 @@ class UpdateOneStudentScore < ActiveRecord::Migration def up - student_work_score = StudentWorksScore.where("user_id = 11688 AND student_work_id = 34414").first - student_work_score.score = 100 - student_work_score.save - student_works = StudentWork.where("user_id = 6456") - student_works.each do |work| - unless work.student_works_scores.empty? - if work.student_works_scores.where(:reviewer_role => 2).empty? - work.teaching_asistant_score = nil - else - work.teaching_asistant_score = work.student_works_scores.where(:reviewer_role => 2).average(:score).try(:round, 2).to_f + begin + student_work_score = StudentWorksScore.where("user_id = 11688 AND student_work_id = 34414").first + student_work_score.score = 100 + student_work_score.save + student_works = StudentWork.where("user_id = 6456") + student_works.each do |work| + unless work.student_works_scores.empty? + if work.student_works_scores.where(:reviewer_role => 2).empty? + work.teaching_asistant_score = nil + else + work.teaching_asistant_score = work.student_works_scores.where(:reviewer_role => 2).average(:score).try(:round, 2).to_f + end + if work.student_works_scores.where(:reviewer_role => 3).empty? + work.student_score = nil + else + work.student_score = work.student_works_scores.where(:reviewer_role => 3).average(:score).try(:round, 2).to_f + end end - if work.student_works_scores.where(:reviewer_role => 3).empty? - work.student_score = nil + if work.teaching_asistant_score.nil? + work.final_score = work.student_score + elsif work.student_score.nil? + work.final_score = work.teaching_asistant_score else - work.student_score = work.student_works_scores.where(:reviewer_role => 3).average(:score).try(:round, 2).to_f + homework = HomeworkCommon.find work.homework_common_id + ta_proportion = homework.homework_detail_manual.ta_proportion + final_ta_score = BigDecimal.new("#{work.teaching_asistant_score}") * BigDecimal.new("#{ta_proportion}") + final_s_score = BigDecimal.new("#{work.student_score}") * (BigDecimal.new('1.0') - BigDecimal.new("#{ta_proportion}")) + final_score = final_ta_score + final_s_score + work.final_score = format("%.2f",final_score.to_f) end + work.save end - if work.teaching_asistant_score.nil? - work.final_score = work.student_score - elsif work.student_score.nil? - work.final_score = work.teaching_asistant_score - else - homework = HomeworkCommon.find work.homework_common_id - ta_proportion = homework.homework_detail_manual.ta_proportion - final_ta_score = BigDecimal.new("#{work.teaching_asistant_score}") * BigDecimal.new("#{ta_proportion}") - final_s_score = BigDecimal.new("#{work.student_score}") * (BigDecimal.new('1.0') - BigDecimal.new("#{ta_proportion}")) - final_score = final_ta_score + final_s_score - work.final_score = format("%.2f",final_score.to_f) - end - work.save + rescue => e + logger.error "[Errno::ENOENT] ===> #{e}" end end diff --git a/db/migrate/20160329014316_update_one_student_teacher_score.rb b/db/migrate/20160329014316_update_one_student_teacher_score.rb index cf56db220..cdbc9444f 100644 --- a/db/migrate/20160329014316_update_one_student_teacher_score.rb +++ b/db/migrate/20160329014316_update_one_student_teacher_score.rb @@ -1,15 +1,19 @@ class UpdateOneStudentTeacherScore < ActiveRecord::Migration def up - work = StudentWork.find 49774 - score = StudentWorksScore.new - score.score = 100 - score.user_id = 7318 - score.student_work_id = work.id - score.reviewer_role = 1 - if score.save - work.teacher_score = score.score + begin + work = StudentWork.find 49774 + score = StudentWorksScore.new + score.score = 100 + score.user_id = 7318 + score.student_work_id = work.id + score.reviewer_role = 1 + if score.save + work.teacher_score = score.score + end + work.save + rescue => e + logger.error "[Errno::ENOENT] ===> #{e}" end - work.save end def down diff --git a/db/migrate/20160405021915_delete_anonymous_work.rb b/db/migrate/20160405021915_delete_anonymous_work.rb index 1677b248a..9403c4cc4 100644 --- a/db/migrate/20160405021915_delete_anonymous_work.rb +++ b/db/migrate/20160405021915_delete_anonymous_work.rb @@ -1,16 +1,20 @@ class DeleteAnonymousWork < ActiveRecord::Migration def up - student_works = StudentWork.where("homework_common_id = 2882").map{|work| work.id} unless StudentWork.where("homework_common_id = 2882").empty? - student_work_ids = "(" + student_works.join(",") + ")" - student_work_scores = StudentWorksScore.where("student_work_id in #{student_work_ids}") - unless student_work_scores.empty? - student_work_scores.each do |sscore| - student_work = StudentWork.find sscore.student_work_id - student_work.student_score = 0 unless student_work.nil? - student_work.absence_penalty = 0 - sscore.destroy - student_work.save + begin + student_works = StudentWork.where("homework_common_id = 2882").map{|work| work.id} unless StudentWork.where("homework_common_id = 2882").empty? + student_work_ids = "(" + student_works.join(",") + ")" + student_work_scores = StudentWorksScore.where("student_work_id in #{student_work_ids}") + unless student_work_scores.empty? + student_work_scores.each do |sscore| + student_work = StudentWork.find sscore.student_work_id + student_work.student_score = 0 unless student_work.nil? + student_work.absence_penalty = 0 + sscore.destroy + student_work.save + end end + rescue => e + logger.error "[Errno::ENOENT] ===> #{e}" end end