# 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
end