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.
trustieforge/app/services/homework_service.rb

84 lines
3.2 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

class HomeworkService
#作业详情(老师才显示启动匿评,学生不显示
#bid.comment_status=0 启动匿评
#bid.comment_status=1 关闭匿评
#many_times 第几次(作业)
#is_teacher 判断是否为该课程老师
def show_homework params
@bid = Bid.find(params[:id])
course = @bid.courses.first
is_teacher = is_course_teacher(User.current, course)
author = @bid.author.firstname + @bid.author.lastname
many_times = course.homeworks.index(@bid) + 1
name = @bid.name
homework_count = @bid.homeworks.count
description = @bid.description
if is_teacher && bid.open_anonymous_evaluation == 1 && bid.homeworks.count >= 2
case bid.comment_status
when 0
alert_anonymous_comment_bid_path(bid)
when 1
alert_anonymous_comment_bid_path(bid)
when 2
raise '匿评结束'
end
end
end
#启动作业匿评
def alert_homework_anonymous_comment params
@bid = Bid.find params[:id]
@course = @bid.courses.first
if @bid.comment_status == 0
@totle_size = searchStudent(@course).size
@cur_size = @bid.homeworks.size
elsif @bid.comment_status == 1
@totle_size = 0
@bid.homeworks.map { |homework| @totle_size += homework.homework_evaluations.count}
teachers = "("
teacher_members = searchTeacherAndAssistant(@course)
teacher_members.each do |member|
if member == teacher_members.last
teachers += member.user_id.to_s + ")"
else
teachers += member.user_id.to_s + ","
end
end
@cur_size = 0
@bid.homeworks.map { |homework| @cur_size += homework.rates(:quality).where("seems_rateable_rates.rater_id not in #{teachers}").count}
end
@percent = format("%.2f",(@cur_size.to_f / ( @totle_size == 0 ? 1 : @totle_size)) * 100)
end
#匿评作品详情
def anonymous_works_show params
@homework = HomeworkAttach.find(params[:homework_id])
name = @homework.name
desc = @homework.description
datetime = @homework.created_at
unless @homework.attachments.empty?
attachs = @homework.attachments
attachs.each do |attach|
filename = attach.name
filedesc = attach.description unless attachment.description.blank?
end
end
end
#作品打分
def add_score_and_jour
@is_teacher,@is_anonymous_comments,@m_score = params[:is_teacher]=="true",params[:is_anonymous_comments]=="true",params[:stars_value]
@cur_page,@cur_type = params[:cur_page] || 1,params[:cur_type] || 5
@homework = HomeworkAttach.find(params[:homework_id])
#保存评分
@homework.rate(@m_score.to_i,User.current.id,:quality) if @m_score
#保存评论
@is_comprehensive_evaluation = @is_teacher ? 1 : (@is_anonymous_comments ? 2 : 3) #判断当前评论是老师评论?匿评?留言
if params[:new_form] && params[:new_form][:user_message] && params[:new_form][:user_message] != "" #有没有留言
@homework.addjours User.current.id, params[:new_form][:user_message],0,@is_comprehensive_evaluation
end
end
end