You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							140 lines
						
					
					
						
							3.6 KiB
						
					
					
				
			
		
		
	
	
							140 lines
						
					
					
						
							3.6 KiB
						
					
					
				| # encoding: utf-8
 | |
| include UserScoreHelper
 | |
| 
 | |
| module StudentWorkHelper
 | |
|   #获取当前用户的项目列表
 | |
|   def user_projects_option
 | |
|     projects = User.current.projects.visible
 | |
|     not_have_project = []
 | |
|     not_have_project << "请选择关联项目"
 | |
|     not_have_project << 0
 | |
|     type = []
 | |
|     type << not_have_project
 | |
|     projects.each do |project|
 | |
|       if project
 | |
|         option = []
 | |
|         option <<  project.name
 | |
|         option <<  project.id
 | |
|         type << option
 | |
|       end
 | |
|     end
 | |
|     type
 | |
|   end
 | |
| 
 | |
|   #获取指定用户对某一作业的评分结果
 | |
|   def student_work_score work,user
 | |
|     StudentWorksScore.where(:user_id => user.id,:student_work_id => work.id).first
 | |
|   end
 | |
| 
 | |
|   #获取指定评分的角色
 | |
|   def student_work_score_role score
 | |
|     case score.reviewer_role
 | |
|       when 1
 | |
|         role = "教师"
 | |
|       when 2
 | |
|         role = "助教"
 | |
|       when 3
 | |
|         role = "学生"
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   def get_role_by_name role
 | |
|     case role
 | |
|       when "Teacher"
 | |
|         result = 1
 | |
|       when "Manager"
 | |
|         result = 1
 | |
|       when "TeachingAsistant"
 | |
|         result = 2
 | |
|       when "Student"
 | |
|         result = 3
 | |
|     end
 | |
|     result
 | |
|   end
 | |
| 
 | |
|   #获取赞的总数
 | |
|   def praise_homework_count obj_id
 | |
|     PraiseTread.where("praise_tread_object_id = #{obj_id} AND praise_tread_object_type = 'StudentWork'").count
 | |
|   end
 | |
| 
 | |
|   #判断指定用户是不是已经赞过该作业
 | |
|   def is_praise_homework user_id, obj_id
 | |
|     PraiseTread.where("user_id = #{user_id} AND praise_tread_object_id = #{obj_id} AND praise_tread_object_type = 'StudentWork'").empty?
 | |
|   end
 | |
| 
 | |
|   #获取指定学生在指定作业内应匿评的数量
 | |
|   def all_evaluation_count user,homework
 | |
|     StudentWorksEvaluationDistribution.joins(:student_work).where("student_works_evaluation_distributions.user_id = #{user.id} AND student_works.homework_common_id = #{homework.id}").count
 | |
|   end
 | |
| 
 | |
|   #获取指定学生在指定作业内已匿评的数量
 | |
|   def has_evaluation_count user,homework
 | |
|     StudentWorksScore.joins(:student_work).where("student_works_scores.user_id = #{user.id} AND student_works.homework_common_id = #{homework.id}").count
 | |
|   end
 | |
| 
 | |
|   #传入分数,获取对应颜色
 | |
|   def score_color score
 | |
|     if score
 | |
|       color = score >= 90 ? "c_red" : "c_green"
 | |
|     else
 | |
|       color = "c_grey"
 | |
|     end
 | |
|     color
 | |
|   end
 | |
| 
 | |
|   #获取分班信息
 | |
|   def course_group_list course
 | |
|     result = []
 | |
|     if course.course_groups && !course.course_groups.empty?
 | |
|       base = []
 | |
|       base << l(:label_chose_group)
 | |
|       base << 0
 | |
|       result << base
 | |
|       course.course_groups.each do |group|
 | |
|         option = []
 | |
|         option << group.name
 | |
|         option << group.id
 | |
|         result << option
 | |
|       end
 | |
|     end
 | |
|     result
 | |
|   end
 | |
| 
 | |
|   #教辅评分比例下拉框
 | |
|   def ta_proportion_option
 | |
|     type = []
 | |
|     i = 0
 | |
|     while  i <= 100
 | |
|       option = []
 | |
|       option << i.to_s + "%"
 | |
|       option << i.to_f / 100
 | |
|       type << option
 | |
|       i += 10
 | |
|     end
 | |
|     type
 | |
|   end
 | |
| 
 | |
|   def ta_proportion_option_to num
 | |
|     type = []
 | |
|     i = 0
 | |
|     while  i <= num
 | |
|       option = []
 | |
|       option << i.to_s + "%"
 | |
|       option << i.to_f / 100
 | |
|       type << option
 | |
|       i += 10
 | |
|     end
 | |
|     type
 | |
|   end
 | |
| 
 | |
|   def revise_attachment_status homework, attach
 | |
|     date = Time.parse(format_time(attach.created_on.to_s)).strftime("%Y-%m-%d")
 | |
|     status = ""
 | |
|     if homework.homework_detail_manual && ((homework.anonymous_comment == 0 &&homework.homework_detail_manual.evaluation_start.to_s <= date) || (homework.anonymous_comment == 1 && homework.end_time.to_s < date))
 | |
|       status = "此时其他同学作品已公开"
 | |
|     else
 | |
|       status = "此时其他同学作品尚未公开"
 | |
|     end
 | |
|     return status
 | |
|   end
 | |
| end |