socialforge/app/services/homework_service.rb

96 lines
3.7 KiB
Ruby
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#coding=utf-8
class HomeworkService
include CoursesHelper
include AttachmentsHelper
#作业详情(老师才显示启动匿评,学生不显示
#many_times 第几次(作业)
#@state=0 启动匿评
#@state=1 关闭匿评
#@state=2 匿评结束
def show_homework params
@bid = Bid.find(params[:id])
course = @bid.courses.first
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_course_teacher(User.current, course) && @bid.open_anonymous_evaluation == 1 && @bid.homeworks.count >= 2
@state = bid.comment_status
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)
[@bid,@totle_size,@cur_size,@percent]
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 params
@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
#作品留言
def get_works_jours params
@bid = Bid.find params[:id]
@user = @bid.author
@jours = @bid.journals_for_messages.where('m_parent_id IS NULL').order('created_on DESC')
@jour = paginateHelper @jours,10
end
#匿评作品老师评论
#匿评作品学生评论列表TODO:未完成,需继续
def anonmous_works_list
@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])
@stars_reates = @homework.rates(:quality)
end
end