From 59b2f247c5667c2a031320f2430cd67e95dc82fe Mon Sep 17 00:00:00 2001 From: sw <939547590@qq.com> Date: Fri, 17 Jul 2015 16:12:29 +0800 Subject: [PATCH] =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E8=AF=84=E5=88=86=E5=90=8E?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E5=BE=97=E5=88=86=E8=B5=8B=E5=80=BC=E5=88=B0?= =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E8=AF=84=E5=88=86=E5=AD=97=E6=AE=B5=EF=BC=8C?= =?UTF-8?q?=E5=B9=B6=E8=AE=A1=E7=AE=97=E6=9C=80=E7=BB=88=E5=BE=97=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/student_work_controller.rb | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/app/controllers/student_work_controller.rb b/app/controllers/student_work_controller.rb index c76bbd7b6..20cdc6659 100644 --- a/app/controllers/student_work_controller.rb +++ b/app/controllers/student_work_controller.rb @@ -382,6 +382,7 @@ class StudentWorkController < ApplicationController def set_program_score stundet_work = StudentWork.find_by_id params[:student_work_id] @course = stundet_work.homework_common.course + student_score_count = 0 if stundet_work && params[:results] && params[:results].class.to_s == "Array" homework_common = stundet_work.homework_common params[:results].each do |result| @@ -391,9 +392,28 @@ class StudentWorkController < ApplicationController student_work_test.student_work = stundet_work student_work_test.homework_test = homework_test student_work_test.result = result[:status] + if student_work_test.result == 0 + student_score_count += 1 + end student_work_test.save! end end + unless homework_common.homework_tests.empty? + stundet_work.student_score = student_score_count * 100.0 / homework_common.homework_tests.count + + if stundet_work.teacher_score.nil? + if stundet_work.teaching_asistant_score.nil? + stundet_work.final_score = stundet_work.student_score + else + final_ta_score = BigDecimal.new("#{stundet_work.teaching_asistant_score}") * BigDecimal.new("#{homework_common.homework_detail_programing.ta_proportion}") + final_s_score = BigDecimal.new("#{stundet_work.student_score}") * (BigDecimal.new('1.0') - BigDecimal.new("#{homework_common.homework_detail_programing.ta_proportion}")) + final_score = final_ta_score + final_s_score + stundet_work.final_score = format("%.1f",final_score.to_f) + end + end + + stundet_work.save! + end end end