diff --git a/app/controllers/homework_attach_controller.rb b/app/controllers/homework_attach_controller.rb index 18d6a16ac..4a070cb39 100644 --- a/app/controllers/homework_attach_controller.rb +++ b/app/controllers/homework_attach_controller.rb @@ -370,54 +370,6 @@ class HomeworkAttachController < ApplicationController @cur_page = params[:cur_page] || 1 @cur_type = params[:cur_type] || 5 - #if User.current.admin? || User.current.member_of_course?(@homework.bid.courses.first) - # # 打分统计 - # #stars_reates = @homework. rates(:quality) - # #是否已经进行过评价 - # temp = HomeworkAttach.find_by_sql("SELECT stars FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = #{@homework.id} AND rater_id = #{User.current.id}").first - # @m_score = temp.nil? ? 0:temp.stars - # @has_evaluation = @homework.has_rated?( User.current,:quality) - # #@jours留言 is null条件用以兼容历史数据 - # @jours = @homework.journals_for_messages.where("is_comprehensive_evaluation = 3 or is_comprehensive_evaluation is null").order("created_on DESC") - # @cur_page = params[:cur_page] || 1 - # @cur_type = params[:cur_type] || 5 - # @jour = paginateHelper @jours,5 - # - # teachers = searchTeacherAndAssistant @course - # @comprehensive_evaluation = [] - # #JourForMessage的is_comprehensive_evaluation字段: - # #1:老师评价 - # #2:学生评价 - # #3 || null:学生留言 - # teachers.each do|teacher| - # temp = @homework.journals_for_messages.where("is_comprehensive_evaluation = 1 and user_id = #{teacher.user_id}").order("created_on DESC").first - # @comprehensive_evaluation << temp if temp - # end - # annymous_users = @homework.homework_evaluations.map { |homework_evaluation| homework_evaluation.user.id}.join(',') - # unless annymous_users.nil? || annymous_users == "" - # @anonymous_comments = @homework.journals_for_messages.where("is_comprehensive_evaluation = 2 and user_id in (#{annymous_users})").order("created_on DESC") - # end - # #@totle_score = score_for_homework @homework - # #@teaher_score = teacher_score_for_homework @homework - # - # #is_student = is_cur_course_student @homework.bid.courses.first - # @is_teacher = is_course_teacher User.current,@homework.bid.courses.first - # @is_anonymous_comments = @homework.bid.comment_status == 1 #是否开启了匿评 - # #@is_comprehensive_evaluation 1:教师评论,2:学生匿评,3:学生留言 - # if User.current.member_of_course?(@homework.bid.courses.first) - # if @is_teacher - # @is_comprehensive_evaluation = 1 #教师评论 - # else - # if @is_anonymous_comments && !@has_evaluation #是学生且开启了匿评且未进行评分 - # @is_comprehensive_evaluation = 2 #匿评 - # else #是学生未开启匿评或者已经进行评分 - # @is_comprehensive_evaluation = 3 #留言 - # end - # end - # else - # @is_comprehensive_evaluation = 3 - # end - respond_to do |format| format.html format.js @@ -429,27 +381,40 @@ class HomeworkAttachController < ApplicationController #删除留言 def destroy_jour - @homework = HomeworkAttach.find(params[:jour_id]) - @course=@homework.bid.courses.first + @homework = HomeworkAttach.find(params[:homework_id]) @journal_destroyed = JournalsForMessage.find(params[:object_id]) - @is_comprehensive_evaluation = @journal_destroyed.is_comprehensive_evaluation - @journal_destroyed.destroy - if @is_comprehensive_evaluation == 3 - @jours = @homework.journals_for_messages.where("is_comprehensive_evaluation = 3 or is_comprehensive_evaluation is null").order("created_on DESC") - @jour = paginateHelper @jours,5 - elsif @is_comprehensive_evaluation == 2 - annymous_users = @homework.homework_evaluations.map { |homework_evaluation| homework_evaluation.user.id}.join(',') - unless annymous_users.nil? || annymous_users.count == "" - @anonymous_comments = @homework.journals_for_messages.where("is_comprehensive_evaluation = 2 and user_id in (#{annymous_users})").order("created_on DESC") - end - elsif @is_comprehensive_evaluation == 1 - teachers = searchTeacherAndAssistant @course - @comprehensive_evaluation = [] - teachers.each do|teacher| - temp = @homework.journals_for_messages.where("is_comprehensive_evaluation = 1 and user_id = #{teacher.user_id}").order("created_on DESC").first - @comprehensive_evaluation << temp if temp - end + if @journal_destroyed.is_comprehensive_evaluation == 3 && @journal_destroyed.destroy + render_403 unless User.current == @journal_destroyed.user || User.current.admin? + teachers = find_course_teachers(@homework.bid.courses.first) + @stars_reates = @homework.rates(:quality) + @teacher_stars = @stars_reates.where("rater_id in (#{teachers})") #老师评分列表 + @student_stars = @stars_reates.where("rater_id not in (#{teachers})") #学生评分列表 + jours = @homework.journals_for_messages.where("is_comprehensive_evaluation = 3 or is_comprehensive_evaluation is null").order("created_on DESC")#jours留言 is null条件用以兼容历史数据 + @jour = paginateHelper jours,5 #留言 + else + render_404 end + + #@course=@homework.bid.courses.first + #@journal_destroyed = JournalsForMessage.find(params[:object_id]) + #@is_comprehensive_evaluation = @journal_destroyed.is_comprehensive_evaluation + #@journal_destroyed.destroy + #if @is_comprehensive_evaluation == 3 + # @jours = @homework.journals_for_messages.where("is_comprehensive_evaluation = 3 or is_comprehensive_evaluation is null").order("created_on DESC") + # @jour = paginateHelper @jours,5 + #elsif @is_comprehensive_evaluation == 2 + # annymous_users = @homework.homework_evaluations.map { |homework_evaluation| homework_evaluation.user.id}.join(',') + # unless annymous_users.nil? || annymous_users.count == "" + # @anonymous_comments = @homework.journals_for_messages.where("is_comprehensive_evaluation = 2 and user_id in (#{annymous_users})").order("created_on DESC") + # end + #elsif @is_comprehensive_evaluation == 1 + # teachers = searchTeacherAndAssistant @course + # @comprehensive_evaluation = [] + # teachers.each do|teacher| + # temp = @homework.journals_for_messages.where("is_comprehensive_evaluation = 1 and user_id = #{teacher.user_id}").order("created_on DESC").first + # @comprehensive_evaluation << temp if temp + # end + #end respond_to do |format| format.js end @@ -457,79 +422,49 @@ class HomeworkAttachController < ApplicationController #添加留言 def addjours - @homework = HomeworkAttach.find(params[:jour_id]) + @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(params[:stars_value],User.current.id,:quality) if params[:stars_value] && params[:stars_value] != "0" + @homework.rate(@m_score,User.current.id,:quality) if @m_score && @m_score != "0" #保存评论 - @cur_is_comprehensive_evaluation = params[:is_comprehensive_evaluation] - 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,@cur_is_comprehensive_evaluation + @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 - @cur_page = params[:cur_page] || 1 - @cur_type = params[:cur_type] || 5 - teachers = searchTeacherAndAssistant @homework.bid.courses.first - if @cur_is_comprehensive_evaluation == "3" - @jours = @homework.journals_for_messages.where("is_comprehensive_evaluation = 3 or is_comprehensive_evaluation is null").order("created_on DESC") - @jour = paginateHelper @jours,5 - elsif @cur_is_comprehensive_evaluation == "2" - annymous_users = @homework.homework_evaluations.map { |homework_evaluation| homework_evaluation.user.id}.join(',') - unless annymous_users.nil? || annymous_users == "" - @anonymous_comments = @homework.journals_for_messages.where("is_comprehensive_evaluation = 2 and user_id in (#{annymous_users})").order("created_on DESC") - end - @m_score = params[:stars_value].to_i - elsif @cur_is_comprehensive_evaluation == "1" - @comprehensive_evaluation = [] - teachers.each do|teacher| - temp = @homework.journals_for_messages.where("is_comprehensive_evaluation = 1 and user_id = #{teacher.user_id}").order("created_on DESC").first - @comprehensive_evaluation << temp if temp - end - end + teachers = find_course_teachers(@homework.bid.courses.first) + @stars_reates = @homework.rates(:quality) + @teacher_stars = @stars_reates.where("rater_id in (#{teachers})") #老师评分列表 + @student_stars = @stars_reates.where("rater_id not in (#{teachers})") #学生评分列表 + jours = @homework.journals_for_messages.where("is_comprehensive_evaluation = 3 or is_comprehensive_evaluation is null").order("created_on DESC")#jours留言 is null条件用以兼容历史数据 + @jour = paginateHelper jours,5 #留言 - is_teacher = is_course_teacher User.current,@homework.bid.courses.first - @is_anonymous_comments = @homework.bid.comment_status == 1 #是否开启了匿评 - #@is_comprehensive_evaluation 1:教师评论,2:学生匿评,3:学生留言 - if User.current.member_of_course?(@homework.bid.courses.first) - if is_teacher - @is_comprehensive_evaluation = 1 #教师评论 - else - if @is_anonymous_comments && !@has_evaluation #是学生且开启了匿评且未进行评分 - @is_comprehensive_evaluation = 2 #匿评 - else #是学生未开启匿评或者已经进行评分 - @is_comprehensive_evaluation = 3 #留言 - end - end - else - @is_comprehensive_evaluation = 3 - end - - #teachers = find_course_teachers @homework.bid.courses.first - teachers_str = teachers.map{|teacher| teacher.user_id}.join(",") if @cur_type == "1" #如果当前是老师未批列表,需要刷新整个作业列表界面 @bid = @homework.bid - get_not_batch_homework_list "s_socre","desc",teachers_str,@homework.bid_id + get_not_batch_homework_list "s_socre","desc",teachers,@homework.bid_id elsif @cur_type == "2" #老师已批列表 @result_homework = HomeworkAttach.eager_load(:attachments,:user,:rate_averages).find_by_sql("SELECT homework_attaches.*, - (SELECT AVG(stars) FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND rater_id IN (#{teachers_str}) and stars IS NOT NULL) AS t_score, - (SELECT AVG(stars) FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND rater_id NOT IN (#{teachers_str})) AS s_score + (SELECT AVG(stars) FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND rater_id IN (#{teachers}) and stars IS NOT NULL) AS t_score, + (SELECT AVG(stars) FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND rater_id NOT IN (#{teachers})) AS s_score FROM homework_attaches WHERE id = #{@homework.id}").first elsif @cur_type == "3" #全部作业列表 @result_homework = HomeworkAttach.eager_load(:attachments,:user,:rate_averages).find_by_sql("SELECT homework_attaches.*, - (SELECT AVG(stars) FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND rater_id in (#{teachers_str})) AS t_score, - (SELECT AVG(stars) FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND rater_id not in (#{teachers_str})) AS s_score + (SELECT AVG(stars) FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND rater_id in (#{teachers})) AS t_score, + (SELECT AVG(stars) FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND rater_id not in (#{teachers})) AS s_score FROM homework_attaches WHERE id = #{@homework.id}").first elsif @cur_type == "4" #匿评作业列表 @is_student_batch_homework = true @result_homework = HomeworkAttach.eager_load(:attachments,:user,:rate_averages).find_by_sql("SELECT homework_attaches.*, - (SELECT AVG(stars) FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND rater_id IN (#{teachers_str})) AS t_score, - (SELECT AVG(stars) FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND rater_id NOT IN (#{teachers_str})) AS s_score, + (SELECT AVG(stars) FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND rater_id IN (#{teachers})) AS t_score, + (SELECT AVG(stars) FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND rater_id NOT IN (#{teachers})) AS s_score, (SELECT stars FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND rater_id = #{User.current.id}) AS m_score FROM homework_attaches WHERE homework_attaches.id = #{@homework.id}").first else #其他的不用管 end - respond_to do |format| format.js end diff --git a/app/views/homework_attach/_addjour.html.erb b/app/views/homework_attach/_addjour.html.erb index bb5b21f5f..f2a3a9542 100644 --- a/app/views/homework_attach/_addjour.html.erb +++ b/app/views/homework_attach/_addjour.html.erb @@ -32,7 +32,9 @@ :action => 'addjours', :homework_id => homework_attach.id, :cur_page => cur_page, - :cur_type => cur_type + :cur_type => cur_type, + :is_anonymous_comments => @is_anonymous_comments, + :is_teacher => @is_teacher }) do |f|%>