socialforge/app/helpers/student_work_helper.rb

161 lines
4.0 KiB
Ruby
Raw Normal View History

# encoding: utf-8
2015-09-02 19:41:45 +08:00
include UserScoreHelper
module StudentWorkHelper
2015-09-15 15:18:33 +08:00
#获取当前用户的项目列表
def user_projects_option
2015-09-15 15:18:33 +08:00
projects = User.current.projects.visible
not_have_project = []
2015-09-18 17:34:44 +08:00
not_have_project << "请选择关联项目"
not_have_project << 0
type = []
type << not_have_project
projects.each do |project|
2015-09-15 15:18:33 +08:00
if project
option = []
option << project.name
option << project.id
type << option
end
end
type
end
#获取指定用户对某一作业的评分结果
def student_work_score work,user,reviewer_role=0
if reviewer_role != 0
StudentWorksScore.where(:user_id => user.id,:student_work_id => work.id,:reviewer_role => reviewer_role).last
else
StudentWorksScore.where(:user_id => user.id,:student_work_id => work.id).last
end
end
#获取指定评分的角色
def student_work_score_role score
case score.reviewer_role
when 1
role = "教师"
when 2
2015-05-27 16:21:59 +08:00
role = "助教"
when 3
role = "学生"
end
end
2015-05-27 16:21:59 +08:00
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
2015-05-28 16:10:40 +08:00
2016-07-08 13:17:14 +08:00
def get_status status
str = ""
case status
when 0
str = "未提交"
when 1
str = "已提交"
when 2
str = "迟交"
end
str
end
2015-05-28 16:10:40 +08:00
#获取赞的总数
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
2015-06-18 17:56:28 +08:00
#获取指定学生在指定作业内应匿评的数量
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
2015-07-15 16:01:03 +08:00
#获取分班信息
def course_group_list course
result = []
if course.course_groups && !course.course_groups.empty?
2015-07-15 17:34:34 +08:00
base = []
base << l(:label_chose_group)
base << -1
result << base
base = []
base << l(:label_no_group)
2015-07-15 17:34:34 +08:00
base << 0
result << base
2015-07-15 16:01:03 +08:00
course.course_groups.each do |group|
option = []
option << group.name
option << group.id
result << option
end
end
result
end
2015-09-17 20:20:20 +08:00
#教辅评分比例下拉框
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
2015-12-04 16:21:11 +08:00
def revise_attachment_status homework, attach
date = Time.parse(format_time(attach.created_on.to_s)).strftime("%Y-%m-%d")
status = ""
2016-03-29 09:24:11 +08:00
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))
2015-12-04 16:21:11 +08:00
status = "此时其他同学作品已公开"
else
status = "此时其他同学作品尚未公开"
end
return status
end
end