diff --git a/app/controllers/bids_controller.rb b/app/controllers/bids_controller.rb index 17a20b0d5..5146282ac 100644 --- a/app/controllers/bids_controller.rb +++ b/app/controllers/bids_controller.rb @@ -1006,28 +1006,18 @@ class BidsController < ApplicationController @bid = Bid.find(params[:id]) if(@bid.comment_status == 0) homeworks = @bid.homeworks - if(homeworks && homeworks.count >= 4) - @bid.update_column('comment_status', 1) - 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 + if(homeworks && homeworks.size > 2) + homeworks.each_with_index do |homework, index| + user = homework.user + n = 3 # TODO: this value should get from params, (老师设置) + n = n < homeworks.size ? n : homeworks.size - 1 + assigned_homeworks = get_assigned_homeworks(homeworks, n, index) + assigned_homeworks.each do |h| + @homework_evaluation = HomeworkEvaluation.new(user_id: user.id, homework_attach_id: h.id) + @homework_evaluation.save end end - # 修改状态为 '启动匿评' - #@bid.update_column('comment_status', 1) + @bid.update_column('comment_status', 1) @statue = 1 else @statue = 2 @@ -1052,6 +1042,11 @@ class BidsController < ApplicationController end private + + def get_assigned_homeworks(homeworks, n, index) + homeworks += homeworks + homeworks[index + 1 .. index + n] + end def find_bid if params[:id] diff --git a/app/views/bids/_bid_homework_show.html.erb b/app/views/bids/_bid_homework_show.html.erb index 4ed9a9015..155efe732 100644 --- a/app/views/bids/_bid_homework_show.html.erb +++ b/app/views/bids/_bid_homework_show.html.erb @@ -37,7 +37,7 @@ <% case bid.comment_status %> <% when 0 %> - <%= link_to '启动匿评', start_anonymous_comment_bid_path(bid), id: "#{bid.id}_start_anonymous_comment", remote: true, :confirm => "开启匿评后学生将不能对作业进行提交、修改、删除等操作\n是否确定开启匿评?" %> + <%= link_to '启动匿评', start_anonymous_comment_bid_path(bid), id: "#{bid.id}_start_anonymous_comment", remote: true, :confirm => "开启匿评后学生将不能对作业进行提交、修改、删除等操作\n是否确定开启匿评?", disable_with: '加载中...' %> <% when 1 %> <%= link_to '关闭匿评', stop_anonymous_comment_bid_path(bid), id: "#{bid.id}_stop_anonymous_comment", remote: true, :confirm => "关闭匿评后学生将不能对作业进行评分\n是否确定关闭匿评?" %> <% when 2 %> diff --git a/app/views/bids/start_anonymous_comment.js.erb b/app/views/bids/start_anonymous_comment.js.erb index a6e24285b..c7e2bfb40 100644 --- a/app/views/bids/start_anonymous_comment.js.erb +++ b/app/views/bids/start_anonymous_comment.js.erb @@ -1,6 +1,7 @@ <% if @statue == 1%> alert('启动成功'); - $("#<%= @bid.id %>_start_anonymous_comment").html('<%= link_to "关闭匿评", stop_anonymous_comment_bid_path(@bid), remote: true %>'); + $("#<%= @bid.id %>_start_anonymous_comment").remove(); + $("#<%= @bid.id %>_anonymous_comment").append('<%= link_to "关闭匿评", stop_anonymous_comment_bid_path(@bid), remote: true %>'); <% elsif @statue == 2 %> alert('启动失败\n作业总数大于4份时才能启动匿评'); <% elsif @statue == 3%> diff --git a/app/views/layouts/base_homework.html.erb b/app/views/layouts/base_homework.html.erb index ab3dbd750..f657a5ff0 100644 --- a/app/views/layouts/base_homework.html.erb +++ b/app/views/layouts/base_homework.html.erb @@ -107,9 +107,9 @@ <% case @bid.comment_status %> <% when 0 %> - <%= link_to '启动匿评', start_anonymous_comment_bid_path(bid), id: "#{bid.id}_start_anonymous_comment", remote: true, :confirm => "开启匿评后学生将不能对作业进行提交、修改、删除等操作\n是否确定开启匿评?" %> + <%= link_to '启动匿评', start_anonymous_comment_bid_path(@bid), id: "#{@bid.id}_start_anonymous_comment", remote: true, :confirm => "开启匿评后学生将不能对作业进行提交、修改、删除等操作\n是否确定开启匿评?", disable_with: '加载中...' %> <% when 1 %> - <%= link_to '关闭匿评', stop_anonymous_comment_bid_path(bid), id: "#{bid.id}_stop_anonymous_comment", remote: true, :confirm => "关闭匿评后学生将不能对作业进行评分\n是否确定关闭匿评?" %> + <%= link_to '关闭匿评', stop_anonymous_comment_bid_path(@bid), id: "#{@bid.id}_stop_anonymous_comment", remote: true, :confirm => "关闭匿评后学生将不能对作业进行评分\n是否确定关闭匿评?" %> <% when 2 %> 匿评结束 <% end %>