diff --git a/app/controllers/student_work_controller.rb b/app/controllers/student_work_controller.rb index 8b2cdad2f..493222e21 100644 --- a/app/controllers/student_work_controller.rb +++ b/app/controllers/student_work_controller.rb @@ -8,7 +8,7 @@ class StudentWorkController < ApplicationController before_filter :find_homework, :only => [:new, :index, :create, :student_work_absence_penalty, :absence_penalty_list, :evaluation_list, :program_test,:program_test_ex, :set_score_rule,:forbidden_anonymous_comment,:delete_work,:new_student_work_project,:student_work_project,:cancel_relate_project, :search_course_students,:work_canrepeat,:add_group_member,:change_project] - before_filter :find_work, :only => [:edit, :update, :show, :destroy, :add_score, :praise_student_work,:retry_work,:revise_attachment] + before_filter :find_work, :only => [:edit, :update, :show, :destroy, :add_score, :praise_student_work, :retry_work, :revise_attachment, :hide_score_detail] before_filter :member_of_course, :only => [:new, :create, :show, :add_score, :praise_student_work] before_filter :author_of_work, :only => [:edit, :update, :destroy] before_filter :teacher_of_course, :only => [:student_work_absence_penalty, :absence_penalty_list, :evaluation_list, :set_score_rule, :forbidden_anonymous_comment] @@ -950,6 +950,19 @@ class StudentWorkController < ApplicationController end end + def hide_score_detail + student_work_score = StudentWorksScore.where(:id => params[:score_id]).first + if student_work_score + student_work_score.update_attributes(:is_hidden => 1) + end + @is_member_work = @homework.homework_type == 3 && @work.student_work_projects.empty? + @student_work_scores = student_work_score_record(@work) + @is_teacher = User.current.allowed_to?(:as_teacher,@course) || User.current.admin? + respond_to do |format| + format.js + end + end + #缺评列表显示 def student_work_absence_penalty order = params[:order] || "desc" diff --git a/app/helpers/student_work_helper.rb b/app/helpers/student_work_helper.rb index 08dae571c..119126ffb 100644 --- a/app/helpers/student_work_helper.rb +++ b/app/helpers/student_work_helper.rb @@ -69,12 +69,13 @@ module StudentWorkHelper str end - #获取学生作品的评分记录:同一个教师或教辅只显示最后一次评分 + #获取学生作品的评分记录:同一个教师或教辅只显示未隐藏的评分 def student_work_score_record work - sql = "SELECT MAX(id) id FROM student_works_scores WHERE (reviewer_role = 2 OR reviewer_role = 1) AND score IS NOT NULL AND student_work_id = #{work.id} GROUP BY user_id" - tea_ts_ids = StudentWorksScore.find_by_sql sql - tea_ts_ids = tea_ts_ids.empty? ? "(-1)" : "(" + tea_ts_ids.map{|tea| tea.id}.join(",") + ")" - scores = work.student_works_scores.where("score IS NULL or reviewer_role = 3 or id in #{tea_ts_ids}").order("updated_at desc") + # sql = "SELECT MAX(id) id FROM student_works_scores WHERE (reviewer_role = 2 OR reviewer_role = 1) AND score IS NOT NULL AND is_hidden = 0 AND student_work_id = #{work.id} GROUP BY user_id" + # tea_ts_ids = StudentWorksScore.find_by_sql sql + # tea_ts_ids = tea_ts_ids.empty? ? "(-1)" : "(" + tea_ts_ids.map{|tea| tea.id}.join(",") + ")" + # scores = work.student_works_scores.where("score IS NULL or reviewer_role = 3 or id in #{tea_ts_ids}").order("updated_at desc") + scores = work.student_works_scores.where(:is_hidden => false).order("created_at desc") return scores end diff --git a/app/models/student_works_score.rb b/app/models/student_works_score.rb index 6d08cad04..2c6b461e5 100644 --- a/app/models/student_works_score.rb +++ b/app/models/student_works_score.rb @@ -2,7 +2,7 @@ class StudentWorksScore < ActiveRecord::Base #reviewer_role: 1:教师评分;2:教辅评分;3:学生匿评 #appeal_status: 0:正常;1:申诉中,2:撤销申诉;3:申诉成功;4申诉被拒绝 - attr_accessible :student_work_id, :user_id, :score, :comment, :reviewer_role + attr_accessible :student_work_id, :user_id, :score, :comment, :reviewer_role, :is_hidden belongs_to :user belongs_to :student_work diff --git a/app/views/student_work/_student_work_score.html.erb b/app/views/student_work/_student_work_score.html.erb index 29d1b2003..decc093c8 100644 --- a/app/views/student_work/_student_work_score.html.erb +++ b/app/views/student_work/_student_work_score.html.erb @@ -13,6 +13,13 @@ <%= show_real_score ? score.score : "**" %>分 <% end %> + <% if @is_teacher && score.user == User.current && score.reviewer_role != 3 %> + <% scores = User.current.student_works_scores.where("student_work_id = #{score.student_work_id} and reviewer_role != 3").order("created_at desc") %> + <% if scores.first != score %> + 隐藏 + <% end %> + <% end %> 回复 <% if @homework.anonymous_appeal == 1 %> <% if score.student_work.user == User.current && score.reviewer_role == 3 && score.appeal_status == 0 %> @@ -48,10 +55,10 @@
# <%=time_from_now last_score.created_at %> - <%= link_to last_score.reviewer_role == 3 && !is_teacher ? '学生匿名' : last_score.user.show_name, last_score.reviewer_role == 3 && !is_teacher ? "javascript:void(0)" : user_activities_path(last_score.user_id), :class => "newsBlue ml5 mr5"%>评阅了作品,优秀排行: +
+ # <%=time_from_now last_score.created_at %><%= link_to last_score.reviewer_role == 3 && !is_teacher ? '学生匿名' : last_score.user.show_name, last_score.reviewer_role == 3 && !is_teacher ? "javascript:void(0)" : user_activities_path(last_score.user_id), :class => "newsBlue ml5 mr5"%>评阅了作品,优秀排行: