From ed258a98ba52273b65e13bd4ff37528b184a6522 Mon Sep 17 00:00:00 2001 From: gonglexin <18008490802@163.com> Date: Tue, 4 Nov 2014 21:43:14 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BD=9C=E4=B8=9A=E5=88=86=E9=85=8D=E7=AE=97?= =?UTF-8?q?=E6=B3=95=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/bids_controller.rb | 35 ++++++++++-------------- app/views/layouts/base_homework.html.erb | 4 +-- 2 files changed, 17 insertions(+), 22 deletions(-) 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/layouts/base_homework.html.erb b/app/views/layouts/base_homework.html.erb index 7f88e3394..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是否确定开启匿评?", disable_with: '加载中...' %> + <%= 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 %>