@ -202,24 +202,24 @@ class HomeworkCommonController < ApplicationController
if @homework_detail_manual . comment_status == 1
student_works = @homework . student_works . has_committed
if student_works && student_works . size > = 2
if @homework . homework_type == 3
student_work_projects = @homework . student_work_projects . where ( " student_work_id is not null " )
student_work_projects . each_with_index do | pro_work , pro_index |
n = @homework_detail_manual . evaluation_num
n = n < student_works . size ? n : student_works . size - 1
work_index = - 1
student_works . each_with_index do | stu_work , stu_index |
if stu_work . id . to_i == pro_work . student_work_id . to_i
work_index = stu_index
end
end
assigned_homeworks = get_assigned_homeworks ( student_works , n , work_index )
assigned_homeworks . each do | h |
student_works_evaluation_distributions = StudentWorksEvaluationDistribution . new ( user_id : pro_work . user_id , student_work_id : h . id )
student_works_evaluation_distributions . save
end
end
else
# if @homework.homework_type == 3
# student_work_projects = @homework.student_work_projects.where("student_work_id is not null" )
# student_work_projects.each_with_index do |pro_work, pro_index |
# n = @homework_detail_manual.evaluation_num
# n = n < student_works.size ? n : student_works.size - 1
# work_index = -1
# student_works.each_with_index do |stu_work, stu_index|
# if stu_work.id.to_i == pro_work.student_work_id.to_i
# work_index = stu_index
# end
# end
# assigned_homeworks = get_assigned_homeworks(student_works, n, work_index)
# assigned_homeworks.each do |h|
# student_works_evaluation_distributions = StudentWorksEvaluationDistribution.new(user_id: pro_work.user_id, student_work_id: h.id)
# student_works_evaluation_distributions.save
# end
# end
# else
student_works . each_with_index do | work , index |
user = work . user
n = @homework_detail_manual . evaluation_num
@ -230,7 +230,7 @@ class HomeworkCommonController < ApplicationController
student_works_evaluation_distributions . save
end
end
end
# end
@homework_detail_manual . update_column ( 'comment_status' , 2 )
@homework_detail_manual . update_column ( 'evaluation_start' , Date . today )
@statue = 1
@ -255,11 +255,28 @@ class HomeworkCommonController < ApplicationController
@homework_detail_manual . update_column ( 'evaluation_end' , Date . today )
#计算缺评扣分
work_ids = " ( " + @homework . student_works . has_committed . map ( & :id ) . join ( " , " ) + " ) "
if @homework . homework_type != 3
@homework . student_works . has_committed . each do | student_work |
absence_penalty_count = student_work . user . student_works_evaluation_distributions . where ( " student_work_id IN #{ work_ids } " ) . count - student_work . user . student_works_scores . where ( " student_work_id IN #{ work_ids } " ) . count
student_work . absence_penalty = absence_penalty_count > 0 ? absence_penalty_count * @homework_detail_manual . absence_penalty : 0
student_work . save
end
else
@homework . student_works . has_committed . each do | student_work |
absence_penalty_count = student_work . user . student_works_evaluation_distributions . where ( " student_work_id IN #{ work_ids } " ) . count - student_work . user . student_works_scores . where ( " student_work_id IN #{ work_ids } " ) . count
student_work . absence_penalty = absence_penalty_count > 0 ? absence_penalty_count * @homework_detail_manual . absence_penalty : 0
student_work . save
if student_work . absence_penalty != 0
pros = student_work . student_work_projects . where ( " is_leader = 0 " )
user_ids = pros . empty? ? " (-1) " : " ( " + pros . map { | stu | stu . user_id } . join ( " , " ) + " ) "
student_works = @homework . student_works . where ( " user_id in #{ user_ids } " )
student_works . each do | st_work |
st_work . update_attribute ( " absence_penalty " , student_work . absence_penalty )
end
end
end
end
# 匿评关闭消息邮件通知
send_message_anonymous_comment ( @homework , m_status = 3 )
Mailer . send_mail_anonymous_comment_close ( @homework ) . deliver