@ -20,7 +20,7 @@ module CoursesHelper
# 返回教师数量, 即roles表中定义的Manager
def teacherCount project
project . members . count - studentCount ( project ) . to_i
project ? project . members . count - studentCount ( project ) . to_i : 0
# or
# searchTeacherAndAssistant(project).count
end
@ -52,7 +52,7 @@ module CoursesHelper
end
def course_poll_count
Poll . where ( " polls_type = 'Course' and polls_group_id = #{ @course . id } ") . count
Poll . where ( " polls_type = 'Course' and polls_group_id = #{ @course . id } and polls_status in (2,3) ") . count
end
def course_feedback_count
@ -152,7 +152,7 @@ module CoursesHelper
# 学生人数计算
# add by nwb
def studentCount course
course . student . count . to_s #course.student.count
course ? course . student . count . to_s : 0 #course.student.count
end
#课程成员数计算
@ -233,10 +233,10 @@ module CoursesHelper
#searchPeopleByRoles(project, StudentRoles)
mems = [ ]
if name != " "
name = name . to_s . downcase
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 ) )
username = m . user [ :lastname ] . to_s . downcase + m . user [ :firstname ] . to_s . downcase
if ( m . user [ :login ] . to_s . downcase . include? ( name ) || m . user . user_extensions [ :student_id ] . to_s . downcase . include? ( name ) || username . include? ( name ) )
mems << m
end
end
@ -632,48 +632,73 @@ module CoursesHelper
#获取课程动态
def get_course_activity courses , activities
@course_ids = activities . keys ( )
@bid_ids = [ ]
days = Setting . activity_days_default . to_i
date_to || = Date . today + 1
date_from = date_to - days - 1 . years
#原来课程动态计算当期时间前(一年+一月)的动态
# date_to ||= Date.today + 1
# #date_from = date_to - days-1.years
date_from = @course . created_at . to_date - days
#file_count
Attachment . where ( container_id : @course_ids , container_type : Course ) . where ( " created_on>? " , date_from ) . each do | attachment |
if attachment . is_public? || User . current . member_of_course? ( @course ) || User . current . admin?
activities [ attachment . container_id ] += 1
else
activities [ attachment . container_id ]
end
end
#message_count
#Board.where(course_id: @course_ids).each do |board|
# activities[board.course_id]+=board.messages.where("updated_on>?", date_from).count
#end
#message_count
Board . where ( course_id : @course_ids ) . each do | board |
# activities[board.course_id]+=1
activities [ board . course_id ] += board . messages . where ( " updated_on>? " , date_from ) . count
countmessage = 0
# 课程人员退出课程后,之前在讨论区回帖不计入课程动态统计
board . messages . where ( " updated_on>? " , date_from ) . each do | message |
if message . author . member_of_course? ( @course )
countmessage += 1
end
end
activities [ board . course_id ] += countmessage
end
#news
News . where ( course_id : @course_ids ) . where ( " created_on>? " , date_from ) . each do | news |
if news . author . member_of_course? ( @course )
activities [ news . course_id ] += 1
end
end
#feedback c _count
JournalsForMessage . where ( jour_id : @course_ids , jour_type : Course ) . each do | jourformess |
activities [ jourformess . jour_id ] += 1
end
#feedback _count 留言目前有问题留待下一步处理
#JournalsForMessage.where(jour_id: @course_ids, jour_type: Course).each do |jourformess |
# activities[jourformess.jour_id]+=1
# end
#homework_count
#HomeworkForCourse.where(course_id: @course_ids).each do |homework|
# @bid_ids<<homework.bid_id
# activities[homework.bid_id]+=Bid.where(id: @bid_ids).where("created_on>?",date_from).count
#end
HomeworkForCourse . where ( course_id : @course_ids ) . each do | homework |
countbid = 0
# @bid_ids<<homework.bid_id
Bid . where ( id : homework . bid_id ) . where ( " created_on>? " , date_from ) . each do | bid |
countbid += 1
end
activities [ homework . course_id ] += countbid
end
#@bid_ids.each do |bid_id|
# activities[] +=Bid.where(id: bid_id ).where("created_on>?",date_from).count
#end
#poll_count
#Poll.where(polls_group_id: @course_ids, polls_type: Course, polls_status: 2||3).where("published_at>?",date_from).each do |poll|
# activities[poll.polls_group_id]+=1
#end
#end
# 动态数 + 1 ( 某某创建了该课程 )
# activities.each_pair { |key, value| activities[key] = value + 1 }
activities . each_pair { | key , value | activities [ key ] = value + 1 }
return activities
end
@ -757,9 +782,10 @@ module CoursesHelper
end
def visable_attachemnts_incourse course
return [ ] unless course
result = [ ]
course . attachments . each do | attachment |
if attachment . is_public? || User . current . member_of_course? ( course )
if attachment . is_public? || User . current . member_of_course? ( course ) || User . current . admin?
result << attachment
end
end