Merge remote-tracking branch 'origin/develop' into guange_dev

This commit is contained in:
guange 2016-04-24 22:23:14 +08:00
commit 050d3c5440
3 changed files with 57 additions and 45 deletions

View File

@ -1,35 +1,39 @@
class UpdateOneStudentScore < ActiveRecord::Migration class UpdateOneStudentScore < ActiveRecord::Migration
def up def up
student_work_score = StudentWorksScore.where("user_id = 11688 AND student_work_id = 34414").first begin
student_work_score.score = 100 student_work_score = StudentWorksScore.where("user_id = 11688 AND student_work_id = 34414").first
student_work_score.save student_work_score.score = 100
student_works = StudentWork.where("user_id = 6456") student_work_score.save
student_works.each do |work| student_works = StudentWork.where("user_id = 6456")
unless work.student_works_scores.empty? student_works.each do |work|
if work.student_works_scores.where(:reviewer_role => 2).empty? unless work.student_works_scores.empty?
work.teaching_asistant_score = nil if work.student_works_scores.where(:reviewer_role => 2).empty?
else work.teaching_asistant_score = nil
work.teaching_asistant_score = work.student_works_scores.where(:reviewer_role => 2).average(:score).try(:round, 2).to_f 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 end
if work.student_works_scores.where(:reviewer_role => 3).empty? if work.teaching_asistant_score.nil?
work.student_score = nil work.final_score = work.student_score
elsif work.student_score.nil?
work.final_score = work.teaching_asistant_score
else 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 end
work.save
end end
if work.teaching_asistant_score.nil? rescue => e
work.final_score = work.student_score logger.error "[Errno::ENOENT] ===> #{e}"
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
end end
end end

View File

@ -1,15 +1,19 @@
class UpdateOneStudentTeacherScore < ActiveRecord::Migration class UpdateOneStudentTeacherScore < ActiveRecord::Migration
def up def up
work = StudentWork.find 49774 begin
score = StudentWorksScore.new work = StudentWork.find 49774
score.score = 100 score = StudentWorksScore.new
score.user_id = 7318 score.score = 100
score.student_work_id = work.id score.user_id = 7318
score.reviewer_role = 1 score.student_work_id = work.id
if score.save score.reviewer_role = 1
work.teacher_score = score.score if score.save
work.teacher_score = score.score
end
work.save
rescue => e
logger.error "[Errno::ENOENT] ===> #{e}"
end end
work.save
end end
def down def down

View File

@ -1,16 +1,20 @@
class DeleteAnonymousWork < ActiveRecord::Migration class DeleteAnonymousWork < ActiveRecord::Migration
def up def up
student_works = StudentWork.where("homework_common_id = 2882").map{|work| work.id} unless StudentWork.where("homework_common_id = 2882").empty? begin
student_work_ids = "(" + student_works.join(",") + ")" student_works = StudentWork.where("homework_common_id = 2882").map{|work| work.id} unless StudentWork.where("homework_common_id = 2882").empty?
student_work_scores = StudentWorksScore.where("student_work_id in #{student_work_ids}") student_work_ids = "(" + student_works.join(",") + ")"
unless student_work_scores.empty? student_work_scores = StudentWorksScore.where("student_work_id in #{student_work_ids}")
student_work_scores.each do |sscore| unless student_work_scores.empty?
student_work = StudentWork.find sscore.student_work_id student_work_scores.each do |sscore|
student_work.student_score = 0 unless student_work.nil? student_work = StudentWork.find sscore.student_work_id
student_work.absence_penalty = 0 student_work.student_score = 0 unless student_work.nil?
sscore.destroy student_work.absence_penalty = 0
student_work.save sscore.destroy
student_work.save
end
end end
rescue => e
logger.error "[Errno::ENOENT] ===> #{e}"
end end
end end