实训作业的计算成绩

chromesetting
cxt 5 years ago
parent ee8e4b3f99
commit 8341b68524

@ -625,14 +625,12 @@ class HomeworkCommonsController < ApplicationController
@homework.score_open = params[:score_open]
@homework.save!
# if score_change
# @homework.student_works.has_committed.each do |student_work|
# HomeworksService.new.set_shixun_final_score student_work
# end
# end
if score_change && @homework.end_or_late_none_group
UpdateShixunWorkScoreJob.perform_now(@homework.id)
end
# 更新所有学生的效率分(作业允许补交且补交已截止 或者 作业不允许补交且提交已截止)
if update_eff_score && @homework.end_or_late_none_group
if !score_change && update_eff_score && @homework.end_or_late_none_group
HomeworksService.new.update_student_eff_score HomeworkCommon.find_by(id: @homework.id)
end

@ -0,0 +1,10 @@
class UpdateShixunWorkScoreJob < ApplicationJob
queue_as :default
def perform(homework_id)
homework = HomeworkCommon.find_by(id: homework_id)
return if homework.blank?
homework.update_homework_work_score
end
end

@ -111,14 +111,14 @@ class StudentWork < ApplicationRecord
# 作品总体评价
def overall_appraisal
case self.work_score.to_i
when (90..100)
case (self.work_score.to_f / homework_common.total_score).round(2)
when (0.90..1.00)
'优秀'
when (70...90)
when (0.70...0.90)
'良好'
when (60...70)
when (0.60...0.70)
'及格'
when (0...60)
when (0.00...0.60)
'不及格'
end
end

@ -11,13 +11,13 @@ if @shixun
json.myself_experience @work.myshixun.try(:total_score).to_i
json.total_experience @shixun.all_score
json.work_score number_with_precision @work.work_score.to_f.round(2), precision: 1
json.all_work_score number_with_precision 100, precision: 1
json.all_work_score number_with_precision @homework.total_score, precision: 1
json.time_consuming @work.myshixun_consume
json.evaluate_count @user_evaluate_count.to_i
if @homework.work_efficiency
json.eff_score_full number_with_precision @homework.eff_score, precision: 1
json.eff_score number_with_precision @work.eff_score.to_f.round(2), precision: 1
json.challenge_score_full number_with_precision (100 - @homework.eff_score), precision: 1
json.challenge_score_full number_with_precision (@homework.total_score - @homework.eff_score), precision: 1
json.challenge_score number_with_precision @work.final_score.to_f.round(2), precision: 1
end

Loading…
Cancel
Save