|  |  | # encoding: utf-8
 | 
						
						
						
							|  |  | ## This helper be included in applicationHelper
 | 
						
						
						
							|  |  | module CoursesHelper
 | 
						
						
						
							|  |  | =begin
 | 
						
						
						
							|  |  | 1. define TeacherRoles, StudentRoles
 | 
						
						
						
							|  |  | 2. define count function
 | 
						
						
						
							|  |  | 3. define search by roles
 | 
						
						
						
							|  |  | 4. define search member function
 | 
						
						
						
							|  |  | =end
 | 
						
						
						
							|  |  |   TeacherRoles = [3, 4, 7, 9]
 | 
						
						
						
							|  |  |   StudentRoles = [5, 10]
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   ## return people count
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   # 返回教师数量,即roles表中定义的Manager
 | 
						
						
						
							|  |  |   def teacherCount project
 | 
						
						
						
							|  |  |     searchCountByRoles project, TeacherRoles
 | 
						
						
						
							|  |  |     # or
 | 
						
						
						
							|  |  |     # searchTeacherAndAssistant(project).count
 | 
						
						
						
							|  |  |   end
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   # 返回学生数量,即roles表中定义的Reporter
 | 
						
						
						
							|  |  |   def studentCount project
 | 
						
						
						
							|  |  |     searchCountByRoles project,StudentRoles
 | 
						
						
						
							|  |  |     # or
 | 
						
						
						
							|  |  |     # searchStudent(project).count
 | 
						
						
						
							|  |  |   end
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   # =====================================================================================
 | 
						
						
						
							|  |  |   # return people list
 | 
						
						
						
							|  |  |   def searchTeacherAndAssistant project
 | 
						
						
						
							|  |  |     searchPeopleByRoles(project, TeacherRoles)
 | 
						
						
						
							|  |  |   end
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   def searchStudent project
 | 
						
						
						
							|  |  |     searchPeopleByRoles(project, StudentRoles)
 | 
						
						
						
							|  |  |   end
 | 
						
						
						
							|  |  |   # =====================================================================================
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   def searchCountByRoles project, roles_id
 | 
						
						
						
							|  |  |     members = searchPeopleByRoles project, roles_id
 | 
						
						
						
							|  |  |     members.count
 | 
						
						
						
							|  |  |   end
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   def searchPeopleByRoles project, roles_id
 | 
						
						
						
							|  |  |     members = []
 | 
						
						
						
							|  |  |     begin
 | 
						
						
						
							|  |  |       members = project.members.joins(:member_roles).where("member_roles.role_id IN (:role_id)", {:role_id => roles_id})
 | 
						
						
						
							|  |  |     rescue Exception => e
 | 
						
						
						
							|  |  |       logger.error "[CoursesHelper] ===> #{e}"
 | 
						
						
						
							|  |  |     end
 | 
						
						
						
							|  |  |     members
 | 
						
						
						
							|  |  |   end
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   #useless
 | 
						
						
						
							|  |  |   def searchMembersByRole project, role_id
 | 
						
						
						
							|  |  |     members = []
 | 
						
						
						
							|  |  |     begin
 | 
						
						
						
							|  |  |       members = project.members.joins(:member_roles).where("member_roles.role_id = :role_id", {:role_id => role_id })
 | 
						
						
						
							|  |  |     rescue Exception => e
 | 
						
						
						
							|  |  |       logger.error "[CoursesHelper] ===> #{e}"
 | 
						
						
						
							|  |  |     end
 | 
						
						
						
							|  |  |     members
 | 
						
						
						
							|  |  |   end
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   def findCourseTime project
 | 
						
						
						
							|  |  |     str = ""
 | 
						
						
						
							|  |  |     begin
 | 
						
						
						
							|  |  |       @course = Course.find_by_extra(@project.identifier)
 | 
						
						
						
							|  |  |       date_format = l(:zh_date)[:formats][:default]
 | 
						
						
						
							|  |  |       if @course
 | 
						
						
						
							|  |  |         str = DateTime.parse(@course.setup_time.to_s).strftime("#{date_format}").to_s unless @course.setup_time.blank?
 | 
						
						
						
							|  |  |         str <<  '-' unless  @course.setup_time.blank?
 | 
						
						
						
							|  |  |         str <<  DateTime.parse(@course.endup_time.to_s).strftime("#{date_format}").to_s unless @course.endup_time.blank?
 | 
						
						
						
							|  |  |       end
 | 
						
						
						
							|  |  |     rescue Exception => e
 | 
						
						
						
							|  |  |       logger.error  "[CoursesHelper] ===> #{e}"
 | 
						
						
						
							|  |  |     end
 | 
						
						
						
							|  |  |     str
 | 
						
						
						
							|  |  |   end
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   def members_to_user_ids members
 | 
						
						
						
							|  |  |     people = []
 | 
						
						
						
							|  |  |     members.each { |member|
 | 
						
						
						
							|  |  |       people << member.user_id
 | 
						
						
						
							|  |  |     }
 | 
						
						
						
							|  |  |     people
 | 
						
						
						
							|  |  |   end
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | end
 |