1、之前普通作业更改为匿评作业。。。

2、系统评分为null时默认为0
This commit is contained in:
sw 2015-09-18 09:32:25 +08:00
parent 5bdb1cd461
commit a8c5d18069
4 changed files with 43 additions and 8 deletions

View File

@ -637,7 +637,7 @@ class StudentWorkController < ApplicationController
student_work.final_score = student_work.system_score
else
ta_proportion = homework.homework_detail_programing.ta_proportion + homework.homework_detail_manual.ta_proportion / 2
final_sy_score = BigDecimal.new("#{student_work.system_score}") * BigDecimal.new("#{ta_proportion}")
final_sy_score = BigDecimal.new("#{student_work.system_score || 0}") * BigDecimal.new("#{ta_proportion}")
final_st_score = BigDecimal.new("#{student_work.student_score}") * (BigDecimal.new('1.0') - BigDecimal.new("#{ta_proportion}"))
final_score = final_sy_score + final_st_score
student_work.final_score = format("%.2f",final_score.to_f)
@ -647,13 +647,13 @@ class StudentWorkController < ApplicationController
student_work.final_score = student_work.system_score
else
ta_proportion = homework.homework_detail_programing.ta_proportion + (1.0 - homework.homework_detail_manual.ta_proportion - homework.homework_detail_programing.ta_proportion) / 2
final_sy_score = BigDecimal.new("#{student_work.system_score}") * BigDecimal.new("#{ta_proportion}")
final_sy_score = BigDecimal.new("#{student_work.system_score || 0}") * BigDecimal.new("#{ta_proportion}")
final_ts_score = BigDecimal.new("#{student_work.teaching_asistant_score}") * (BigDecimal.new('1.0') - BigDecimal.new("#{ta_proportion}"))
final_score = final_sy_score + final_ts_score
student_work.final_score = format("%.2f",final_score.to_f)
end
else
final_sy_score = BigDecimal.new("#{student_work.system_score}") * BigDecimal.new("#{homework.homework_detail_programing.ta_proportion}")
final_sy_score = BigDecimal.new("#{student_work.system_score || 0}") * BigDecimal.new("#{homework.homework_detail_programing.ta_proportion}")
final_ts_score = BigDecimal.new("#{student_work.teaching_asistant_score}") * BigDecimal.new("#{homework.homework_detail_manual.ta_proportion}")
final_st_score = BigDecimal.new("#{student_work.student_score}") * (BigDecimal.new('1.0') - BigDecimal.new("#{homework.homework_detail_programing.ta_proportion}") - BigDecimal.new("#{homework.homework_detail_manual.ta_proportion}"))
final_score = final_sy_score + final_ts_score + final_st_score
@ -666,7 +666,7 @@ class StudentWorkController < ApplicationController
student_work.final_score = student_work.system_score
else
ta_proportion = homework.homework_detail_programing.ta_proportion + homework.homework_detail_manual.ta_proportion / 2
final_sy_score = BigDecimal.new("#{student_work.system_score}") * BigDecimal.new("#{ta_proportion}")
final_sy_score = BigDecimal.new("#{student_work.system_score || 0}") * BigDecimal.new("#{ta_proportion}")
final_st_score = BigDecimal.new("#{student_work.student_score}") * (BigDecimal.new('1.0') - BigDecimal.new("#{ta_proportion}"))
final_score = final_sy_score + final_st_score
student_work.final_score = format("%.2f",final_score.to_f)
@ -676,13 +676,13 @@ class StudentWorkController < ApplicationController
student_work.final_score = student_work.system_score
else
ta_proportion = homework.homework_detail_programing.ta_proportion + (1.0 - homework.homework_detail_manual.ta_proportion - homework.homework_detail_programing.ta_proportion) / 2
final_sy_score = BigDecimal.new("#{student_work.system_score}") * BigDecimal.new("#{ta_proportion}")
final_sy_score = BigDecimal.new("#{student_work.system_score || 0}") * BigDecimal.new("#{ta_proportion}")
final_ts_score = BigDecimal.new("#{student_work.teaching_asistant_score}") * (BigDecimal.new('1.0') - BigDecimal.new("#{ta_proportion}"))
final_score = final_sy_score + final_ts_score
student_work.final_score = format("%.2f",final_score.to_f)
end
else
final_sy_score = BigDecimal.new("#{student_work.system_score}") * BigDecimal.new("#{homework.homework_detail_programing.ta_proportion}")
final_sy_score = BigDecimal.new("#{student_work.system_score || 0}") * BigDecimal.new("#{homework.homework_detail_programing.ta_proportion}")
final_ts_score = BigDecimal.new("#{student_work.teaching_asistant_score}") * BigDecimal.new("#{homework.homework_detail_manual.ta_proportion}")
final_st_score = BigDecimal.new("#{student_work.student_score}") * (BigDecimal.new('1.0') - BigDecimal.new("#{homework.homework_detail_programing.ta_proportion}") - BigDecimal.new("#{homework.homework_detail_manual.ta_proportion}"))
final_score = final_sy_score + final_ts_score + final_st_score

View File

@ -0,0 +1,15 @@
class SystemScoreDefault < ActiveRecord::Migration
def up
change_column :student_works,:system_score,:float,:default => 0
# StudentWork.where("system_score is null").each do |student_work|
# student_work.system_score = 0
# student_work.save
# end
end
def down
change_column :student_works,:system_score,:float
end
end

View File

@ -0,0 +1,20 @@
class AboutNormalHomework < ActiveRecord::Migration
def up
HomeworkCommon.where(:homework_type => 0).each do |homework|
unless homework.homework_detail_manual
homework_detail_manual = HomeworkDetailManual.new
homework_detail_manual.ta_proportion = 0.6
homework_detail_manual.comment_status = 1
homework_detail_manual.evaluation_start = homework.created_at
homework_detail_manual.evaluation_end = homework.created_at
homework_detail_manual.evaluation_num = 3
homework_detail_manual.absence_penalty = 5
homework_detail_manual.homework_common_id = homework.id
homework_detail_manual.save
end
end
end
def down
end
end

View File

@ -11,7 +11,7 @@
#
# It's strongly recommended to check this file into your version control system.
ActiveRecord::Schema.define(:version => 20150917022239) do
ActiveRecord::Schema.define(:version => 20150918005722) do
create_table "activities", :force => true do |t|
t.integer "act_id", :null => false
@ -1328,7 +1328,7 @@ ActiveRecord::Schema.define(:version => 20150917022239) do
t.datetime "updated_at", :null => false
t.integer "late_penalty", :default => 0
t.integer "absence_penalty", :default => 0
t.integer "system_score"
t.float "system_score", :default => 0.0
t.boolean "is_test", :default => false
end