From ee7b21de7231940a06f97949fa383dd62833a2ae Mon Sep 17 00:00:00 2001 From: cxt Date: Wed, 4 Nov 2015 10:54:09 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A6=81=E7=94=A8=E5=8C=BF=E8=AF=84=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/student_work_controller.rb | 23 +++++++++- app/views/courses/_course_activity.html.erb | 2 +- .../alert_forbidden_anonymous_comment.js.erb | 6 +++ .../_alert_forbidden_anonymous.html.erb | 16 +++++++ .../_evaluation_un_title.html.erb | 14 +++--- .../student_work/_evaluation_un_work.html.erb | 5 ++- .../forbidden_anonymous_comment.js.erb | 7 +++ app/views/users/_course_homework.html.erb | 24 ++++++---- app/views/users/_user_activities.html.erb | 17 ++++--- .../users/_user_homework_detail.html.erb | 44 +++++++++++++------ config/routes.rb | 3 ++ ...dd_anonymous_comment_to_homework_common.rb | 5 +++ db/schema.rb | 11 ++--- lib/tasks/homework_evaluation.rake | 4 +- 14 files changed, 132 insertions(+), 49 deletions(-) create mode 100644 app/views/homework_common/alert_forbidden_anonymous_comment.js.erb create mode 100644 app/views/student_work/_alert_forbidden_anonymous.html.erb create mode 100644 app/views/student_work/forbidden_anonymous_comment.js.erb create mode 100644 db/migrate/20151102085318_add_anonymous_comment_to_homework_common.rb diff --git a/app/controllers/student_work_controller.rb b/app/controllers/student_work_controller.rb index 25782ec4b..38b953732 100644 --- a/app/controllers/student_work_controller.rb +++ b/app/controllers/student_work_controller.rb @@ -3,11 +3,11 @@ class StudentWorkController < ApplicationController include StudentWorkHelper require 'bigdecimal' require "base64" - before_filter :find_homework, :only => [:new, :index, :create, :student_work_absence_penalty, :absence_penalty_list, :evaluation_list, :program_test,:set_score_rule] + before_filter :find_homework, :only => [:new, :index, :create, :student_work_absence_penalty, :absence_penalty_list, :evaluation_list, :program_test,:set_score_rule,:forbidden_anonymous_comment] before_filter :find_work, :only => [:edit, :update, :show, :destroy, :add_score, :praise_student_work] before_filter :member_of_course, :only => [:index, :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] + before_filter :teacher_of_course, :only => [:student_work_absence_penalty, :absence_penalty_list, :evaluation_list, :set_score_rule, :forbidden_anonymous_comment] ### def program_test @@ -469,6 +469,25 @@ class StudentWorkController < ApplicationController end end + def forbidden_anonymous_comment + @homework.update_column('anonymous_comment', 1) + homework_detail_manual = @homework.homework_detail_manual + homework_detail_programing = @homework.homework_detail_programing + if homework_detail_programing + homework_detail_manual.update_column('ta_proportion', 0.4) + homework_detail_programing.update_column('ta_proportion', 0.6) + else + homework_detail_manual.update_column('ta_proportion', 1.0) + end + @homework.student_works.each do |student_work| + set_final_score @homework,student_work + student_work.save + end + @user_activity_id = params[:user_activity_id].to_i + @is_in_course = params[:is_in_course].to_i + @course_activity = params[:course_activity].to_i + end + private #获取作业 def find_homework diff --git a/app/views/courses/_course_activity.html.erb b/app/views/courses/_course_activity.html.erb index 4a7cb900d..a54e0667e 100644 --- a/app/views/courses/_course_activity.html.erb +++ b/app/views/courses/_course_activity.html.erb @@ -92,7 +92,7 @@ <% act = activity.course_act %> <% case activity.course_act_type.to_s %> <% when 'HomeworkCommon' %> - <%= render :partial => 'users/course_homework', :locals => {:activity => act, :user_activity_id => activity.id} %> + <%= render :partial => 'users/course_homework', :locals => {:activity => act, :user_activity_id => activity.id, :course_activity => 1} %> <% when 'News' %> <%= render :partial => 'users/course_news', :locals => {:activity => act, :user_activity_id => activity.id} %> <% when 'Message' %> diff --git a/app/views/homework_common/alert_forbidden_anonymous_comment.js.erb b/app/views/homework_common/alert_forbidden_anonymous_comment.js.erb new file mode 100644 index 000000000..5177f4d92 --- /dev/null +++ b/app/views/homework_common/alert_forbidden_anonymous_comment.js.erb @@ -0,0 +1,6 @@ +$('#ajax-modal').html('<%= escape_javascript(render :partial => 'student_work/alert_forbidden_anonymous', :locals => {:user_activity_id => @user_activity_id,:is_in_course => @is_in_course,:course_activity => @course_activity}) %>'); +showModal('ajax-modal', '500px'); +$('#ajax-modal').siblings().remove(); +$('#ajax-modal').before("" + + ""); +$('#ajax-modal').parent().css("top","30%").css("left","30%").css("position","fixed"); \ No newline at end of file diff --git a/app/views/student_work/_alert_forbidden_anonymous.html.erb b/app/views/student_work/_alert_forbidden_anonymous.html.erb new file mode 100644 index 000000000..55f21048f --- /dev/null +++ b/app/views/student_work/_alert_forbidden_anonymous.html.erb @@ -0,0 +1,16 @@ +
+
+

禁用匿评

+

+ 禁用匿评后学生将不能对作品进行互评,且匿评不能再开启,是否确定禁用匿评? +

+ +
+
\ No newline at end of file diff --git a/app/views/student_work/_evaluation_un_title.html.erb b/app/views/student_work/_evaluation_un_title.html.erb index 9a21e109b..26c69d225 100644 --- a/app/views/student_work/_evaluation_un_title.html.erb +++ b/app/views/student_work/_evaluation_un_title.html.erb @@ -35,12 +35,14 @@ <% end%> -
  • - <%= link_to "匿评",@show_all ? student_work_index_path(:homework => @homework.id,:order => "student_score", :sort => @score, :name => @name, :group => @group) : "javascript:void(0)",:class => "c_dark f14 fb fl ml10",:remote => true%> - <% if @show_all && @order == "student_score"%> - <%= link_to "", student_work_index_path(:homework => @homework.id,:order => "student_score", :sort => @score, :name => @name, :group => @group) ,:class => "#{@score == 'desc' ? 'st_up' : 'st_down'} mt10",:remote => true%> - <% end%> -
  • + <% if @homework.anonymous_comment == 0%> +
  • + <%= link_to "匿评",@show_all ? student_work_index_path(:homework => @homework.id,:order => "student_score", :sort => @score, :name => @name, :group => @group) : "javascript:void(0)",:class => "c_dark f14 fb fl ml10",:remote => true%> + <% if @show_all && @order == "student_score"%> + <%= link_to "", student_work_index_path(:homework => @homework.id,:order => "student_score", :sort => @score, :name => @name, :group => @group) ,:class => "#{@score == 'desc' ? 'st_up' : 'st_down'} mt10",:remote => true%> + <% end%> +
  • + <% end %>
  • <%= link_to "成绩",@show_all ? student_work_index_path(:homework => @homework.id,:order => "score", :sort => @score, :name => @name, :group => @group) : "javascript:void(0)",:class => "c_dark f14 fb fl ml10",:remote => true%> diff --git a/app/views/student_work/_evaluation_un_work.html.erb b/app/views/student_work/_evaluation_un_work.html.erb index 832350e3e..6996ed6a6 100644 --- a/app/views/student_work/_evaluation_un_work.html.erb +++ b/app/views/student_work/_evaluation_un_work.html.erb @@ -47,7 +47,8 @@
  • <% end%> -
  • + <% if @homework.anonymous_comment == 0%> +
  • <%= student_work.student_score.nil? ? "--" : format("%.1f",student_work.student_score)%> <% unless student_work.student_score.nil?%> @@ -61,7 +62,7 @@ <% end%>
  • - + <% end %> <% score = student_work.respond_to?("score") ? student_work.score : (student_work.final_score || 0) - student_work.absence_penalty - student_work.late_penalty%>
  • diff --git a/app/views/student_work/forbidden_anonymous_comment.js.erb b/app/views/student_work/forbidden_anonymous_comment.js.erb new file mode 100644 index 000000000..a72c29509 --- /dev/null +++ b/app/views/student_work/forbidden_anonymous_comment.js.erb @@ -0,0 +1,7 @@ +<% if @user_activity_id == -1 %> +$("#homework_common_<%= @homework.id %>").replaceWith("<%= escape_javascript(render :partial => "users/user_homework_detail",:locals => {:homework_common => @homework, :is_in_course => @is_in_course})%>"); +init_activity_KindEditor_data(<%= @homework.id%>,"","87%"); +<% else %> +$("#user_activity_<%= @user_activity_id%>").replaceWith("<%= escape_javascript(render :partial => 'users/course_homework', :locals => {:activity => @homework,:user_activity_id =>@user_activity_id,:course_activity=>@course_activity}) %>"); +init_activity_KindEditor_data(<%= @user_activity_id%>,"","87%"); +<% end %> \ No newline at end of file diff --git a/app/views/users/_course_homework.html.erb b/app/views/users/_course_homework.html.erb index aa0344800..4dd6f1a0a 100644 --- a/app/views/users/_course_homework.html.erb +++ b/app/views/users/_course_homework.html.erb @@ -57,25 +57,33 @@
    <% if is_teacher%> + <% comment_status = activity.homework_detail_manual.comment_status %>
      • - <%= link_to l(:button_edit),edit_homework_common_path(activity,:is_in_course => 0), :class => "postOptionLink"%> + <%= link_to l(:button_edit),edit_homework_common_path(activity,:is_in_course => -1,:course_activity=>course_activity), :class => "postOptionLink"%>
      • - <%= link_to(l(:label_bid_respond_delete), homework_common_path(activity,:is_in_course => 0),:method => 'delete', :confirm => l(:text_are_you_sure), :class => "postOptionLink") %> + <%= link_to(l(:label_bid_respond_delete), homework_common_path(activity,:is_in_course => -1,:course_activity=>course_activity),:method => 'delete', :confirm => l(:text_are_you_sure), :class => "postOptionLink") %>
      • <%= link_to("评分设置", score_rule_set_homework_common_path(activity,:user_activity_id => user_activity_id, :is_in_course => 0),:class => "postOptionLink", :remote => true) %>
      • -
      • - <%= link_to("匿评设置", start_evaluation_set_homework_common_path(activity),:class => "postOptionLink", :remote => true) if activity.homework_detail_manual.comment_status == 1%> -
      • -
      • - <%= homework_anonymous_comment activity %> -
      • + <% if activity.anonymous_comment == 0 %> +
      • + <%= link_to("匿评设置", start_evaluation_set_homework_common_path(activity),:class => "postOptionLink", :remote => true) if activity.homework_detail_manual.comment_status == 1%> +
      • +
      • + <%= homework_anonymous_comment activity %> +
      • + <% end %> + <% if activity.anonymous_comment == 0 && (comment_status == 0 || comment_status == 1)%> +
      • + <%= link_to("禁用匿评", alert_forbidden_anonymous_comment_homework_common_path(activity,:user_activity_id => user_activity_id,:course_activity=>course_activity),:class => "postOptionLink", :remote => true)%> +
      • + <% end %>
    diff --git a/app/views/users/_user_activities.html.erb b/app/views/users/_user_activities.html.erb index f4ddcc050..669953afa 100644 --- a/app/views/users/_user_activities.html.erb +++ b/app/views/users/_user_activities.html.erb @@ -11,7 +11,6 @@ .ke-inline-block{display: none;} div.ke-container{float:left;} -<% first_user_activity = user_activities.first.id unless user_activities.first.nil? %> <% user_activities.each do |user_activity| if user_activities %>