@ -298,7 +298,6 @@ class CoursesController < ApplicationController
else
else
page_from = params [ :page ] . nil? ? 0 : ( params [ :page ] . to_i - 1 )
page_from = params [ :page ] . nil? ? 0 : ( params [ :page ] . to_i - 1 )
@results = student_homework_score ( 0 , page_from , 10 , " desc " )
@results = student_homework_score ( 0 , page_from , 10 , " desc " )
@results = paginateHelper_for_members @results , 10
end
end
end
end
@ -317,14 +316,11 @@ class CoursesController < ApplicationController
when '1'
when '1'
@subPage_title = l :label_teacher_list
@subPage_title = l :label_teacher_list
@all_members = searchTeacherAndAssistant ( @course )
@all_members = searchTeacherAndAssistant ( @course )
#@members = paginateHelper @all_members, 10
@members = @all_members
@members = @all_members
when '2'
when '2'
@subPage_title = l :label_student_list
@subPage_title = l :label_student_list
page = params [ :page ] . nil? ? 0 : ( params [ 'page' ] . to_i - 1 )
page = params [ :page ] . nil? ? 0 : ( params [ 'page' ] . to_i - 1 )
@all_members = student_homework_score ( 0 , page , 10 , " desc " )
@all_members = student_homework_score ( 0 , page , 10 , " desc " )
# @all_members = @course.members
# @members = paginateHelper_for_members @all_members, 10
@members = @all_members
@members = @all_members
end
end
respond_to do | format |
respond_to do | format |
@ -379,11 +375,9 @@ class CoursesController < ApplicationController
if group_id == '0'
if group_id == '0'
page = params [ :page ] . nil? ? 0 : ( params [ 'page' ] . to_i - 1 )
page = params [ :page ] . nil? ? 0 : ( params [ 'page' ] . to_i - 1 )
@results = student_homework_score ( 0 , page , 10 , @score_sort_by )
@results = student_homework_score ( 0 , page , 10 , @score_sort_by )
@results = paginateHelper_for_members @results , 10
else
else
@group = CourseGroup . find ( group_id )
@group = CourseGroup . find ( group_id )
@results = student_homework_score ( group_id , 0 , 0 , @score_sort_by )
@results = student_homework_score ( group_id , 0 , 0 , @score_sort_by )
@results = paginateHelper @results , 10
end
end
end
end
end
end
@ -837,44 +831,32 @@ class CoursesController < ApplicationController
end
end
def student_homework_score ( groupid , start_from , nums , score_sort_by )
def student_homework_score ( groupid , start_from , nums , score_sort_by )
#teachers = find_course_teachers(@course)
start_from = start_from * nums
start_from = start_from * nums
sql_select = " "
sql_select = " "
if groupid == 0
if groupid == 0
if nums == 0
sql_select = " SELECT members.*,(
sql_select = " SELECT members.*, SUM(homework_attaches.score) as score FROM members, homework_attaches
SELECT SUM ( student_works . final_score )
WHERE members . course_id = #{@course.id} AND members.user_id in (SELECT students_for_courses.student_id FROM students_for_courses WHERE course_id = #{@course.id}) AND members.user_id = homework_attaches.user_id
FROM student_works , homework_commons
AND homework_attaches . bid_id in ( SELECT bid_id FROM homework_for_courses WHERE course_id = #{@course.id}) GROUP BY members.user_id
WHERE student_works . homework_common_id = homework_commons . id
UNION all
AND homework_commons . course_id = #{@course.id}
SELECT members . * , 0 as score FROM members , homework_attaches , students_for_courses WHERE members . course_id = #{@course.id} AND
AND student_works . user_id = members . user_id
students_for_courses . course_id = #{@course.id} and members.user_id = students_for_courses.student_id AND
) AS score
members . user_id NOT IN ( SELECT homework_attaches . user_id FROM homework_attaches WHERE homework_attaches . bid_id in ( SELECT bid_id FROM homework_for_courses WHERE course_id = #{@course.id} )
FROM members
)
JOIN students_for_courses
GROUP BY members . user_id ORDER BY score #{score_sort_by}"
ON students_for_courses . student_id = members . user_id AND students_for_courses . course_id = members . course_id
WHERE members . course_id = #{@course.id} ORDER BY score #{score_sort_by}"
else
else
sql_select = " SELECT members.*, SUM(homework_attaches.score) as score FROM members, homework_attaches
sql_select = " SELECT members.*,(
WHERE members . course_id = #{@course.id} AND members.user_id in (SELECT students_for_courses.student_id FROM students_for_courses WHERE course_id = #{@course.id}) AND members.user_id = homework_attaches.user_id
SELECT SUM ( student_works . final_score )
AND homework_attaches . bid_id in ( SELECT bid_id FROM homework_for_courses WHERE course_id = #{@course.id}) GROUP BY members.user_id
FROM student_works , homework_commons
UNION all
WHERE student_works . homework_common_id = homework_commons . id
SELECT members . * , 0 as score FROM members , homework_attaches , students_for_courses WHERE members . course_id = #{@course.id} AND
AND homework_commons . course_id = #{@course.id}
students_for_courses . course_id = #{@course.id} and members.user_id = students_for_courses.student_id AND
AND student_works . user_id = members . user_id
members . user_id NOT IN ( SELECT homework_attaches . user_id FROM homework_attaches WHERE homework_attaches . bid_id in ( SELECT bid_id FROM homework_for_courses WHERE course_id = #{@course.id} )
) AS score
)
FROM members
GROUP BY members . user_id ORDER BY score #{score_sort_by} " #limit #{start_from}, #{nums}"
JOIN students_for_courses
ON students_for_courses . student_id = members . user_id AND students_for_courses . course_id = members . course_id
end
WHERE members . course_id = #{@course.id} AND members.course_group_id = #{groupid} ORDER BY score #{score_sort_by}"
else
sql_select = " SELECT members.*, SUM(homework_attaches.score) as score FROM members, homework_attaches
WHERE members . course_id = #{@course.id} AND members.user_id in (SELECT students_for_courses.student_id FROM students_for_courses WHERE course_id = #{@course.id}) AND members.user_id = homework_attaches.user_id
and members . course_group_id = #{groupid} AND homework_attaches.bid_id in (SELECT bid_id FROM homework_for_courses WHERE course_id = #{@course.id})
GROUP BY members . user_id
UNION all
SELECT members . * , 0 as score FROM members , homework_attaches , students_for_courses WHERE members . course_id = #{@course.id}
and members . course_group_id = #{groupid} AND
students_for_courses . course_id = #{@course.id} and members.user_id = students_for_courses.student_id AND
members . user_id NOT IN ( SELECT homework_attaches . user_id FROM homework_attaches WHERE homework_attaches . bid_id in ( SELECT bid_id FROM homework_for_courses WHERE course_id = #{@course.id} )
)
GROUP BY members . user_id ORDER BY score #{score_sort_by}"
end
end
sql = ActiveRecord :: Base . connection ( )
sql = ActiveRecord :: Base . connection ( )
homework_scores = Member . find_by_sql ( sql_select )
homework_scores = Member . find_by_sql ( sql_select )
@ -896,7 +878,6 @@ class CoursesController < ApplicationController
@score_sort_by = " desc "
@score_sort_by = " desc "
page_from = params [ :page ] . nil? ? 0 : ( params [ :page ] . to_i - 1 )
page_from = params [ :page ] . nil? ? 0 : ( params [ :page ] . to_i - 1 )
@results = student_homework_score ( group . id , 0 , 0 , " desc " )
@results = student_homework_score ( group . id , 0 , 0 , " desc " )
@results = paginateHelper @results , 10
end
end