diff --git a/app/controllers/bids_controller.rb b/app/controllers/bids_controller.rb index 4b1526fa9..83862d22e 100644 --- a/app/controllers/bids_controller.rb +++ b/app/controllers/bids_controller.rb @@ -997,6 +997,46 @@ class BidsController < ApplicationController def manage end + + # 启动匿评 + def start_anonymous_comment + @bid = Bid.find(params[:id]) + homeworks = @bid.homeworks + users = homeworks.map { |h| h.user } + + @start_index = rand(homeworks.size) + while users[0] == homeworks[@start_index].user + @start_index = rand(homeworks.size) + end + + 3.times do |i| + homework_start_index = @start_index + i + users.each_with_index do |user, index| + actual_index = homework_start_index + index + actual_index = (actual_index < homeworks.size ? actual_index : actual_index - homeworks.size) + if user != homeworks[actual_index] + @homework_evaluation = HomeworkEvaluation.new(user_id: user.id, homework_attach_id: homeworks[actual_index].id) + @homework_evaluation.save + end + end + end + # 修改状态为 '启动匿评' + @bid.update_column('comment_status', 1) + + respond_to do |format| + format.js + end + end + + def stop_anonymous_comment + @bid = Bid.find(params[:id]) + + @bid.update_column('comment_status', 2) + + respond_to do |format| + format.js + end + end private diff --git a/app/controllers/homework_attach_controller.rb b/app/controllers/homework_attach_controller.rb index 61a06ece6..9d6a3c2fb 100644 --- a/app/controllers/homework_attach_controller.rb +++ b/app/controllers/homework_attach_controller.rb @@ -128,9 +128,6 @@ class HomeworkAttachController < ApplicationController pt.praise_tread_object_id = @homework.id pt.praise_tread_object_type = "HomeworkAttach" pt.praise_or_tread = 1 - @is_my_homework = params[:is_my_homework] - @is_student_batch_homework = params[:is_student_batch_homework] - @is_teacher = params[:is_teacher] if pt.save respond_to do |format| format.js @@ -185,6 +182,9 @@ class HomeworkAttachController < ApplicationController homework_user = @homework.homework_users.where("user_id = #{params[:user_id]}").first homework_user.destroy get_homework_member @homework + + @homework_list = [] + @is_my_homework = true respond_to do |format| format.js end diff --git a/app/models/homework_evaluation.rb b/app/models/homework_evaluation.rb index ccbd26f8c..044d0155c 100644 --- a/app/models/homework_evaluation.rb +++ b/app/models/homework_evaluation.rb @@ -3,4 +3,7 @@ class HomeworkEvaluation < ActiveRecord::Base belongs_to :homework_attach belongs_to :user + + validate :user, presence: true + validate :homework_attach, presence: true end diff --git a/app/views/bids/_bid_homework_show.html.erb b/app/views/bids/_bid_homework_show.html.erb index f5db7c04a..ad6b2e504 100644 --- a/app/views/bids/_bid_homework_show.html.erb +++ b/app/views/bids/_bid_homework_show.html.erb @@ -34,6 +34,16 @@ <% end %> <% end %> <% if (User.current.admin?||User.current.id==bid.author_id) %> + + <% case bid.comment_status %> + <% when 0 %> + <%= link_to '启动匿评', start_anonymous_comment_bid_path(bid), id: "#{bid.id}_start_anonymous_comment", remote: true %> + <% when 1 %> + <%= link_to '关闭匿评', stop_anonymous_comment_bid_path(bid), id: "#{bid.id}_stop_anonymous_comment", remote: true %> + <% when 2 %> + 已关闭匿评 + <% end %> + <%= link_to( l(:button_edit), {:action => 'edit', :controller=>'bids', :course_id =>@course.id, :bid_id => bid.id}, diff --git a/app/views/bids/_homework.html.erb b/app/views/bids/_homework.html.erb index 471ad73b9..0b38d07d9 100644 --- a/app/views/bids/_homework.html.erb +++ b/app/views/bids/_homework.html.erb @@ -26,6 +26,15 @@ { $("#what_is_project_div").slideToggle(); } + + window.onready = function() + { + <% if !@is_teacher && @homework_list.count > 0%> + $('#ajax-modal').html('<%= escape_javascript(render :partial => 'homework_attach/praise_alert') %>'); + showModal('ajax-modal', '480px'); + $('#ajax-modal').css('height','240px'); + <% end %> + }