@ -213,11 +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
@result_count = @results . count
@results = paginateHelper @results
@ -233,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
@ -243,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
@ -257,10 +256,28 @@ 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
def valid_ajax
req = Hash . new ( false )
req [ :message ] = ''
valid_attr = params [ :valid ]
valid_value = params [ :value ]
faker = CourseGroup . new
if valid_attr . eql? ( 'name' )
faker . name = valid_value
faker . valid?
req [ :valid ] = faker . errors [ :name ] . blank?
req [ :message ] = faker . errors [ :name ]
end
req [ :message ] = l ( :modal_valid_passing ) if req [ :message ] . blank?
render :json = > req
end
def join_group
@subPage_title = l :label_student_list
group = CourseGroup . find ( params [ :object_id ] )
@ -292,26 +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
@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
@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 ) ) )
@ -324,11 +333,14 @@ class CoursesController < ApplicationController
case params [ :role ]
when '1'
@subPage_title = l :label_teacher_list
@members = searchTeacherAndAssistant ( @course )
@members = @teachers
when '2'
@subPage_title = l :label_student_list
@members = searchStudent_sort ( @course , 'desc' )
teachers = @teachers . map { | teacher | teacher . user_id } . join ( " , " )
@@member_scores = student_homework_score teachers
@members = @@member_scores
# @member_scores = @@member_scores
# @members = searchStudent_sort(@course, 'desc', @@member_scores)
@membercount = @members . count
else
@ -352,6 +364,7 @@ class CoursesController < ApplicationController
@show_serch = params [ :role ] == '2'
@subPage_title = l :label_student_list
@render_file = 'member_list'
unless @@result . nil?
@results = @@result . reverse
@@result = @results
@ -360,6 +373,7 @@ class CoursesController < ApplicationController
end
# 显示每个学生的作业评分详情
def show_member_score
@member_score = Member . find ( params [ :member_id ] ) if params [ :member_id ]
respond_to do | format |
format . html { render :layout = > 'course_base' }
@ -867,5 +881,35 @@ class CoursesController < ApplicationController
end
end
def student_homework_score 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