Merge branch 'szzh' of http://repository.trustie.net/xianbo/trustie2 into szzh
This commit is contained in:
commit
a3910477e4
|
@ -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 = searchStudent_by_name(@course, q)
|
||||
@results = searchmember_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
|
||||
|
|
|
@ -175,22 +175,7 @@ module CoursesHelper
|
|||
end
|
||||
members
|
||||
end
|
||||
def searchStudent_sort project, sort_by, member_scores
|
||||
#searchPeopleByRoles(project, StudentRoles)
|
||||
members = []
|
||||
|
||||
project.members.each do |m|
|
||||
if m && m.user && m.user.allowed_to?(:as_student,project)
|
||||
members << m
|
||||
|
||||
end
|
||||
end
|
||||
members.sort!{ |mem1, mem2| mem1.student_homework_score(member_scores)[1].to_f <=> mem2.student_homework_score(member_scores)[1].to_f}
|
||||
if sort_by == "desc"
|
||||
members.reverse!
|
||||
end
|
||||
members
|
||||
end
|
||||
|
||||
|
||||
def searchStudent_by_name project, name
|
||||
|
@ -206,6 +191,32 @@ module CoursesHelper
|
|||
end
|
||||
members
|
||||
end
|
||||
def searchmember_by_name members, name
|
||||
#searchPeopleByRoles(project, StudentRoles)
|
||||
mems = []
|
||||
members.each do |m|
|
||||
|
||||
username = m.user[:lastname].to_s + m.user[:firstname].to_s
|
||||
if(m.user[:login].to_s.include?(name) || m.user.user_extensions[:student_id].to_s.include?(name) || username.include?(name))
|
||||
mems << m
|
||||
end
|
||||
|
||||
end
|
||||
mems
|
||||
end
|
||||
def searchgroupmember_by_name members, name, group
|
||||
#searchPeopleByRoles(project, StudentRoles)
|
||||
mems = []
|
||||
members.each do |m|
|
||||
if m.course_group_id == group.id
|
||||
username = m.user[:lastname].to_s + m.user[:firstname].to_s
|
||||
if(m.user[:login].to_s.include?(name) || m.user.user_extensions[:student_id].to_s.include?(name) || username.include?(name))
|
||||
mems << m
|
||||
end
|
||||
end
|
||||
end
|
||||
mems
|
||||
end
|
||||
def searchgroupstudent_by_name(group, project, name)
|
||||
members = []
|
||||
group.members.each do |m|
|
||||
|
|
|
@ -115,9 +115,16 @@ class Member < ActiveRecord::Base
|
|||
end
|
||||
|
||||
# 查找每个学生每个作业的评分
|
||||
def student_homework_score homework_scores
|
||||
def student_homework_score
|
||||
score_count = 0
|
||||
homework_score = homework_scores.find_all { |e| e.user_id == self.user_id}
|
||||
homework_score = HomeworkAttach.find_by_sql("SELECT bids.`name`, 0 as score,
|
||||
(SELECT AVG(stars) FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach'
|
||||
AND rateable_id = homework_attaches.id ) AS t_score,
|
||||
(SELECT AVG(stars) FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach'
|
||||
AND rateable_id = homework_attaches.id ) AS s_score
|
||||
FROM homework_attaches, bids where homework_attaches.user_id = #{self.user_id}
|
||||
and homework_attaches.bid_id IN (SELECT bid_id FROM homework_for_courses where course_id = #{self.course_id})
|
||||
AND homework_attaches.bid_id = bids.id ")
|
||||
homework_score.each do |homework|
|
||||
if !homework.t_score.nil? && homework.t_score != 0
|
||||
score = homework.t_score
|
||||
|
|
|
@ -68,7 +68,7 @@
|
|||
<% end %>
|
||||
</ul>
|
||||
<% if @subPage_title == l(:label_student_list) %>
|
||||
<%= link_to member.student_homework_score(@member_scores)[1].to_s, {
|
||||
<%= link_to format("%0.2f",member.score.to_s), {
|
||||
:action => 'show_member_score',
|
||||
:member_id => member.id,
|
||||
:remote => true},
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
<% end %>
|
||||
</ul>
|
||||
<% if @subPage_title == l(:label_student_list) %>
|
||||
<%= link_to member.student_homework_score(@member_scores)[1].to_s, {
|
||||
<%= link_to format("%0.2f",member.score.to_s), {
|
||||
:action => 'show_member_score',
|
||||
:member_id => member.id,
|
||||
:remote => true},
|
||||
|
|
|
@ -39,7 +39,7 @@
|
|||
<h2><%= @member_score.user.name %> 历次作业积分</h2>
|
||||
<ul class="tscore_box">
|
||||
<li ><span class="c_blue02 w280">作业名称</span><span class="c_blue02 w70">得分</span></li>
|
||||
<% @member_score.student_homework_score(@member_scores)[0].each do |homework_score| %>
|
||||
<% @member_score.student_homework_score[0].each do |homework_score| %>
|
||||
<% if !homework_score.t_score.nil? && homework_score.t_score != 0 %>
|
||||
<% score = homework_score.t_score %>
|
||||
<% else %>
|
||||
|
@ -51,7 +51,7 @@
|
|||
<% end %>
|
||||
<li><span class="c_grey02 w280"><%= homework_score.name %></span><span class="c_red w70"><%= format("%0.2f",score) %></span></li>
|
||||
<% end %>
|
||||
<li><span class="c_blue03 w280">作业积分(总得分)</span><span class="c_red w70"><%= @member_score.student_homework_score(@member_scores)[1] %></span></li>
|
||||
<li><span class="c_blue03 w280">作业积分(总得分)</span><span class="c_red w70"><%= @member_score.student_homework_score[1] %></span></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue