diff --git a/app/controllers/bids_controller.rb b/app/controllers/bids_controller.rb
index 5fd42a97e..334bc3413 100644
--- a/app/controllers/bids_controller.rb
+++ b/app/controllers/bids_controller.rb
@@ -508,6 +508,7 @@ class BidsController < ApplicationController
WHERE table1.t_score IS NULL")
@cur_type = 1
else
+ m_score_null = @bid.comment_status == 2 ? "IS NOT NULL" : "IS NULL"
all_homework_list = HomeworkAttach.eager_load(:attachments,:user,:rate_averages).find_by_sql("SELECT * FROM(SELECT homework_attaches.*,
(SELECT AVG(stars) FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND rater_id IN #{teachers}) AS t_score,
(SELECT AVG(stars) FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND rater_id NOT IN #{teachers}) AS s_score,
@@ -515,7 +516,7 @@ class BidsController < ApplicationController
FROM homework_attaches
INNER JOIN homework_evaluations ON homework_evaluations.homework_attach_id = homework_attaches.id
WHERE homework_attaches.bid_id = #{@bid.id} AND homework_evaluations.user_id = #{User.current.id} ORDER BY s_score DESC) AS table1
- WHERE table1.m_score IS NULL")
+ WHERE table1.m_score #{m_score_null}")
@is_student_batch_homework = true
@cur_type = 4
end
@@ -823,7 +824,7 @@ class BidsController < ApplicationController
flash[:notice] = l(:label_bid_succeed)
end
end
- redirect_to course_for_bid_path(@bid)
+ redirect_to course_homework_url(params[:course_id])
else
@bid.safe_attributes = params[:bid]
@homework = @bid
diff --git a/app/controllers/courses_controller.rb b/app/controllers/courses_controller.rb
index a048c3c9c..ee1ca0230 100644
--- a/app/controllers/courses_controller.rb
+++ b/app/controllers/courses_controller.rb
@@ -410,6 +410,7 @@ class CoursesController < ApplicationController
@course = Course.new
@course.safe_attributes = params[:course]
+ month = Time.now.month
render :layout => 'base'
end
diff --git a/app/controllers/homework_attach_controller.rb b/app/controllers/homework_attach_controller.rb
index 4b7fdb15e..6b311989e 100644
--- a/app/controllers/homework_attach_controller.rb
+++ b/app/controllers/homework_attach_controller.rb
@@ -98,6 +98,7 @@ class HomeworkAttachController < ApplicationController
#获取学生匿评列表
def get_student_batch_homework
+ m_score_null = @bid.comment_status == 2 ? "IS NOT NULL" : "IS NULL"
@is_student_batch_homework = true
teachers = find_course_teachers @course
all_homework_list = HomeworkAttach.eager_load(:attachments,:user,:rate_averages).find_by_sql("SELECT * FROM(SELECT homework_attaches.*,
@@ -107,7 +108,7 @@ class HomeworkAttachController < ApplicationController
FROM homework_attaches
INNER JOIN homework_evaluations ON homework_evaluations.homework_attach_id = homework_attaches.id
WHERE homework_attaches.bid_id = #{@bid.id} AND homework_evaluations.user_id = #{User.current.id} ORDER BY s_score DESC) AS table1
- WHERE table1.m_score IS NULL")
+ WHERE table1.m_score #{m_score_null}")
@cur_page = params[:page] || 1
@cur_type = 4
@homework_list = paginateHelper all_homework_list,10
@@ -227,7 +228,7 @@ class HomeworkAttachController < ApplicationController
def create
bid = Bid.find params[:bid_id]
if User.current.admin? || User.current.member_of_course?(bid.courses.first) # modify by nwb
- if bid.homeworks.where("user_id = ?",User.current).count == 0
+ if bid.homeworks.where("user_id = ?",User.current).empty?
user_id = params[:user_id]
bid_id = params[:bid_id]
if params[:homework_attach]
diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
index 1a3f13082..eb05c0528 100644
--- a/app/helpers/application_helper.rb
+++ b/app/helpers/application_helper.rb
@@ -1911,19 +1911,13 @@ module ApplicationHelper
def anonymous_comment_link(bid, course)
link = case bid.comment_status
when 0
- @student_size ||= searchStudent(course).size
- @homework_size = bid.homeworks.size
- percent = @homework_size.to_f / @student_size
confirm_info = "开启匿评后学生将不能对作业进行提交、修改、删除等操作\n"
- confirm_info += percent >= 0.8 ? '' : "目前#{@student_size}个学生,总共提交了#{@homework_size}份作业,只占#{number_to_percentage(percent * 100, precision: 1)}\n"
+ confirm_info += anonymous_comment_notice(bid,course)
confirm_info += '是否确定开启匿评?'
link_to '启动匿评', start_anonymous_comment_bid_path(bid), id: "#{bid.id}_start_anonymous_comment", remote: true, :confirm => confirm_info, disable_with: '加载中...'
when 1
- @student_size ||= searchStudent(course).size
- @homework_size = bid.homeworks.size
- percent = @homework_size.to_f / @student_size
- confirm_info = "关闭匿评后所有同学将看到匿评的结果。学生将可以自由的进行公开互评了,但公开互评不影响作业的匿名评分\n"
- confirm_info += "" # TODO 当前有多少学生完成了匿评,有多少学生没有进行匿评,并据此给出建议:建议老师暂缓关闭匿评,因为只有x%的学生完成了匿评任务。。。
+ confirm_info = "关闭匿评后所有同学将不能继续进行匿评,且将公开已提交作业列表\n"
+ confirm_info += anonymous_comment_notice(bid,course)
confirm_info += '是否确定关闭匿评?'
link_to '关闭匿评', stop_anonymous_comment_bid_path(bid), id: "#{bid.id}_stop_anonymous_comment", remote: true, :confirm => confirm_info
when 2
@@ -1931,4 +1925,33 @@ module ApplicationHelper
end
content_tag('span', link, id: "#{bid.id}_anonymous_comment")
end
+
+ def anonymous_comment_notice(bid, course)
+ link =
+ case bid.comment_status
+ when 0
+ @student_size ||= searchStudent(course).size
+ @homework_size = bid.homeworks.size
+ percent = @homework_size.to_f / @student_size
+ confirm_info = "目前#{@student_size}个学生,总共提交了#{@homework_size}份作业,占#{number_to_percentage(percent * 100, precision: 1)}\n"
+ when 1
+ @homework_evaluations = 0
+ bid.homeworks.map { |homework| @homework_evaluations += homework.homework_evaluations.count}
+ teachers = "("
+ teacher_members = searchTeacherAndAssistant(course)
+ teacher_members.each do |member|
+ if member == teacher_members.last
+ teachers += member.user_id.to_s + ")"
+ else
+ teachers += member.user_id.to_s + ","
+ end
+ end
+ @has_evaluations = 0
+ bid.homeworks.map { |homework| @has_evaluations += homework.rates(:quality).where("seems_rateable_rates.rater_id not in #{teachers}").count}
+
+ percent = @has_evaluations.to_f / @homework_evaluations
+ confirm_info = "目前总共分配了#{@homework_evaluations}份匿评作业,已评价#{@has_evaluations}份作业,占#{number_to_percentage(percent * 100, precision: 1)}\n"
+ end
+ confirm_info
+ end
end
diff --git a/app/helpers/courses_helper.rb b/app/helpers/courses_helper.rb
index eeedbd19d..ac22ed412 100644
--- a/app/helpers/courses_helper.rb
+++ b/app/helpers/courses_helper.rb
@@ -343,8 +343,7 @@ module CoursesHelper
end
#获取当前用户在指定作业下提交的作业的集合
def cur_user_homework_for_bid bid
- cur_user_homework = HomeworkAttach.where("user_id = ? and bid_id = ?",User.current,bid.id)
- cur_user_homework
+ bid.homeworks.where("user_id = ?",User.current)
end
#判断当前用户对指定作业是否已经评价过
@@ -476,6 +475,17 @@ module CoursesHelper
type << option2
type
end
+
+ def cur_course_term
+ month = Time.now.month
+ if month >= 9 || month < 3
+ term = "秋季学期"
+ else
+ term = "春季学期"
+ end
+ term
+ end
+
#获取课程动态
def get_course_activity courses, activities
@course_ids=activities.keys()
diff --git a/app/views/bids/_homework.html.erb b/app/views/bids/_homework.html.erb
index 673ea2674..078ca8000 100644
--- a/app/views/bids/_homework.html.erb
+++ b/app/views/bids/_homework.html.erb
@@ -27,20 +27,30 @@
$("#what_is_project_div").slideToggle();
}
- window.onready = function()
- {
- <% if !@is_teacher && @homework_list.count > 0 && @bid.comment_status == 1%>
- //登录者不是老师,且作业列表数目不为0,且作业处于开启匿评阶段
- var alert_model = "'#ajax-modal'";
- $('#ajax-modal').html('<%= escape_javascript(render :partial => 'homework_attach/praise_alert') %>');
- showModal('ajax-modal', '480px');
- $('#ajax-modal').css('height','240px');
- $('#ajax-modal').before("" +
- "");
- $('#ajax-modal').parent().css("top","").css("left","").css("width","511");
- $('#ajax-modal').parent().addClass("alert_praise");
- <% end %>
- }
+ $(document).ready(
+ function()
+ {
+ <% if !@is_teacher && @homework_list.count > 0 && @bid.comment_status == 1%>
+ //登录者不是老师,且作业列表数目不为0,且作业处于开启匿评阶段
+ var alert_model = "'#ajax-modal'";
+ $('#ajax-modal').html('<%= escape_javascript(render :partial => 'homework_attach/praise_alert') %>');
+ showModal('ajax-modal', '480px');
+ $('#ajax-modal').css('height','240px');
+ $('#ajax-modal').before("" +
+ "
");
+ $('#ajax-modal').parent().css("top","").css("left","").css("width","511");
+ $('#ajax-modal').parent().addClass("alert_praise");
+ <% end %>
+
+ <% unless @is_teacher%>
+ <% if @bid.comment_status == 0%>
+ $("#my_homework").click();
+ <% elsif @bid.comment_status == 2%>
+ $("#all_homeworks").click();
+ <% end %>
+ <% end %>
+ }
+ );
function hiddent_alert_model(){hideModal($('#popbox02'));}
diff --git a/app/views/bids/_homework_list.html.erb b/app/views/bids/_homework_list.html.erb
index ded8d5874..acbcbc2fa 100644
--- a/app/views/bids/_homework_list.html.erb
+++ b/app/views/bids/_homework_list.html.erb
@@ -29,15 +29,15 @@
<% else %>
- <%= l(:label_class_period) %> - * + + <%= l(:label_class_period) %> + * + <%= text_field_tag :class_period, nil, :placeholder => "#{l(:lable_input_class)}", :maxlength => 5 %> - <%= l(:label_class_hour) %> + + <%= l(:label_class_hour) %> + |
- <%= l(:label_term) %> * + + <%= l(:label_term) %> + * + | <%= select_tag :time,options_for_select(course_time_option,@course.time), {} %> | - <%= select_tag :term,options_for_select(course_term_option,@course.term),{} %> + <%= select_tag :term,options_for_select(course_term_option,@course.term || cur_course_term),{} %> |
-
- <%= l(:text_command) %> + + <%= l(:text_command) %> + <% end %>
<%= custom_field_tag_with_label :course, value %>
++ <%= custom_field_tag_with_label :course, value %> +
<% end %> <%= call_hook(:view_courses_form, :course => @course, :form => f) %> diff --git a/app/views/courses/new.html.erb b/app/views/courses/new.html.erb index 8d153a447..77f041322 100644 --- a/app/views/courses/new.html.erb +++ b/app/views/courses/new.html.erb @@ -6,7 +6,9 @@ <%= labelled_form_for @course do |f| %>
- :
-
- <% options = {:author => true, :deletable => attach_delete(@homework)} %>
- <%= render :partial => 'attachments/links',
- :locals => {:attachments => @homework.attachments, :options => options} %>
-
+ <% options = {:author => true, :deletable => attach_delete(@homework)} %>
+ <%= render :partial => 'attachments/links',
+ :locals => {:attachments => @homework.attachments, :options => options} %>
+
<%= render :partial => 'attachments/form' %>
+ :
+
diff --git a/app/views/homework_attach/new.html.erb b/app/views/homework_attach/new.html.erb index efe143cf0..be40ed485 100644 --- a/app/views/homework_attach/new.html.erb +++ b/app/views/homework_attach/new.html.erb @@ -54,14 +54,6 @@ <%= f.text_field "name", :required => true, :size => 60, :class => "w430 bo", :maxlength => 254, :placeholder => "作品名称", :onblur => "regexName();" %>
-
- :
-
+ :
+
diff --git a/app/views/layouts/base_homework.html.erb b/app/views/layouts/base_homework.html.erb index 10bb25f78..69b7b6fc9 100644 --- a/app/views/layouts/base_homework.html.erb +++ b/app/views/layouts/base_homework.html.erb @@ -79,7 +79,7 @@