|
|
|
@ -245,15 +245,19 @@ class StudentWorkController < ApplicationController
|
|
|
|
|
def student_work_absence_penalty
|
|
|
|
|
render_403 unless User.current.allowed_to?(:as_teacher,@course)
|
|
|
|
|
order = params[:order] || "desc"
|
|
|
|
|
work_ids = "(" + @homework.student_works.map(&:id).join(",") + ")"
|
|
|
|
|
@stundet_works = StudentWork.find_by_sql("SELECT *,(all_count - has_count) AS absence FROM(
|
|
|
|
|
if @homework.student_works.empty?
|
|
|
|
|
@stundet_works = []
|
|
|
|
|
else
|
|
|
|
|
work_ids = "(" + @homework.student_works.map(&:id).join(",") + ")"
|
|
|
|
|
@stundet_works = StudentWork.find_by_sql("SELECT *,(all_count - has_count) AS absence FROM(
|
|
|
|
|
SELECT * ,
|
|
|
|
|
(SELECT COUNT(*) FROM `student_works_evaluation_distributions` WHERE user_id = student_works.user_id AND student_work_id IN #{work_ids}) AS all_count,
|
|
|
|
|
(SELECT COUNT(*) FROM `student_works_scores` WHERE user_id = student_works.user_id AND student_work_id IN #{work_ids}) AS has_count
|
|
|
|
|
FROM `student_works`
|
|
|
|
|
WHERE homework_common_id = #{@homework.id}
|
|
|
|
|
) AS table_1
|
|
|
|
|
ORDER BY absence #{order}")
|
|
|
|
|
) AS table_1
|
|
|
|
|
ORDER BY absence #{order}")
|
|
|
|
|
end
|
|
|
|
|
@order = order == "desc" ? "asc" : "desc"
|
|
|
|
|
respond_to do |format|
|
|
|
|
|
format.html
|
|
|
|
|