@ -213,12 +213,12 @@ class CoursesController < ApplicationController
q = " #{ params [ :name ] . strip } "
#(redirect_to stores_url, :notice => l(:label_sumbit_empty);return) if params[:name].blank?
if params [ :incourse ]
@results = search Student_by_name( @course , q )
@results = search member_by_name( @@member_scores , q )
elsif params [ :ingroup ]
@group = CourseGroup . find ( params [ :search_group_id ] )
@results = searchgroupstudent_by_name ( @group , @course , q )
@results = @results = searchgroupmember_by_name ( @@member_scores , @group , q )
end
@member_scores = @@member_scores
@result_count = @results . count
@results = paginateHelper @results
@ -234,8 +234,7 @@ class CoursesController < ApplicationController
end
@canShowCode = isCourseTeacher ( User . current . id , @course ) && params [ :role ] != '1'
@is_remote = true
@members = searchStudent ( @course )
@membercount = @members . count
@course_groups = @course . course_groups
end
@ -244,8 +243,7 @@ class CoursesController < ApplicationController
@subPage_title = l :label_student_list
@canShowCode = isCourseTeacher ( User . current . id , @course ) && params [ :role ] != '1'
@is_remote = true
@members = searchStudent ( @course )
@membercount = @members . count
@course_groups = @course . course_groups
end
@ -258,8 +256,7 @@ class CoursesController < ApplicationController
end
@canShowCode = isCourseTeacher ( User . current . id , @course ) && params [ :role ] != '1'
@is_remote = true
@members = searchStudent ( @course )
@membercount = @members . count
@course_groups = @course . course_groups
end
@ -312,28 +309,18 @@ class CoursesController < ApplicationController
@is_remote = true
if params [ :group_id ] && params [ :group_id ] != " 0 "
@group = CourseGroup . find ( params [ :group_id ] )
@results = searchStudent_by_group ( @group , @course )
@results = @@member_scores . find_all { | mem | mem . course_group_id == group . id }
else
@results = searchStudent ( @course )
@results = @@member_scores
end
@@result = @results
@member_scores = @@member_scores
@members = searchStudent ( @course )
@membercount = @members . count
@results = paginateHelper @results
end
def search_group_members group
@subPage_title = l :label_student_list
@render_file = 'member_list'
@canShowCode = isCourseTeacher ( User . current . id , @course ) && params [ :role ] != '1'
@is_remote = true
@member_scores = @@member_scores
@members = searchStudent ( @course )
@membercount = @members . count
@results = searchStudent_by_group ( group , @course )
@@result = @results
@results = paginateHelper @results
end
def member
## 有角色参数的才是课程,没有的就是项目
if ( User . current . admin? || @course . is_public == 1 || ( @course . is_public == 0 && User . current . member_of_course? ( @course ) ) )
@ -350,8 +337,9 @@ class CoursesController < ApplicationController
when '2'
@subPage_title = l :label_student_list
@@member_scores = student_homework_score
@member_scores = @@member_scores
@members = searchStudent_sort ( @course , 'desc' , @@member_scores )
@members = @@member_scores
# @member_scores = @@member_scores
# @members = searchStudent_sort(@course, 'desc', @@member_scores)
@membercount = @members . count
else
@ -375,7 +363,7 @@ class CoursesController < ApplicationController
@show_serch = params [ :role ] == '2'
@subPage_title = l :label_student_list
@render_file = 'member_list'
@member_scores = @@member_scores
unless @@result . nil?
@results = @@result . reverse
@@result = @results
@ -384,7 +372,7 @@ class CoursesController < ApplicationController
end
# 显示每个学生的作业评分详情
def show_member_score
@member_scores = @@member_scores
@member_score = Member . find ( params [ :member_id ] ) if params [ :member_id ]
respond_to do | format |
format . html { render :layout = > 'course_base' }
@ -895,23 +883,34 @@ class CoursesController < ApplicationController
def student_homework_score
teachers = find_course_teachers ( @course )
score_count = 0
homeworks = HomeworkAttach . find_by_sql ( " SELECT homework_attaches.id
FROM homework_attaches , bids where
homework_attaches . bid_id IN ( SELECT bid_id FROM homework_for_courses where course_id = #{@course.id}
and homework_attaches . bid_id = bids . id ) " )
homeworks = homeworks . map { | homework | homework . id } . join ( " , " )
homework_scores = HomeworkAttach . find_by_sql ( " SELECT homework_attaches.user_id, AVG(s1.stars) AS t_score,
AVG ( s2 . stars ) AS s_score
FROM homework_attaches , seems_rateable_rates s1 , seems_rateable_rates s2 WHERE
homework_attaches . id in ( #{homeworks}) and s1.rateable_type = 'HomeworkAttach' and s1.rateable_id = homework_attaches.id
AND s1 . rater_id IN ( #{teachers}) and s2.rateable_type = 'HomeworkAttach'
and s2 . rateable_id = homework_attaches . id
AND s2 . rater_id not IN ( #{teachers})")
homework_scores = Member . find_by_sql ( " SELECT id, user_id,course_id, course_group_id,created_on,IFNULL(SUM(CASE WHEN t_score <> 0 AND t_score IS NOT NULL THEN t_score ELSE s_score END),0) as score
FROM (
SELECT members . id as id , members . user_id AS user_id , members . course_id AS course_id , members . created_on as created_on , members . course_group_id AS course_group_id ,
( SELECT AVG ( seems_rateable_rates . stars ) FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches . id AND rater_id IN ( 3040 , 4762 , 4765 ) ) AS t_score ,
( SELECT AVG ( seems_rateable_rates . stars ) FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches . id AND rater_id NOT IN ( 3040 , 4762 , 4765 ) ) AS s_score
FROM ` homework_attaches ` , members
WHERE members . course_id = #{@course.id}
AND members . user_id NOT IN ( #{teachers}) AND homework_attaches.bid_id IN (SELECT bid_id FROM homework_for_courses WHERE course_id = #{@course.id})
AND homework_attaches . user_id = members . user_id
) AS table1 GROUP BY user_id ORDER BY score DESC " )
homework_scores
end
#获取课程的老师列表
def find_course_teachers course
searchTeacherAndAssistant ( course ) . map { | teacher | teacher . user_id } . join ( " , " )
end
#当加入,退出分班时查询分班的学生
def search_group_members group
@subPage_title = l :label_student_list
@render_file = 'member_list'
@canShowCode = isCourseTeacher ( User . current . id , @course ) && params [ :role ] != '1'
@is_remote = true
@members = searchStudent ( @course )
@membercount = @members . count
@results = @@member_scores . find_all { | mem | mem . course_group_id == group . id }
@@result = @results
@results = paginateHelper @results
end
end