#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