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 %> <% end %> + +<% if is_teacher %> + + <%= anonymous_comment_notice(@bid, @bid.courses.first) %> + +<% end %> diff --git a/app/views/homework_attach/edit.html.erb b/app/views/homework_attach/edit.html.erb index 5530b8cff..55015e2f9 100644 --- a/app/views/homework_attach/edit.html.erb +++ b/app/views/homework_attach/edit.html.erb @@ -64,18 +64,6 @@ <%= f.text_field :name, :required => true, :name => "homework_name", :class => "w430 bo", :maxlength => 254, :placeholder => "作品名称", :onblur => "regexName();"%>

-

- - <% if @homework.project.nil? %> - <%= f.select :project_id, options_for_select(user_projects_option),{}, {:name => "project_id", :required => true,:class => "w350 bo"}%> - <% else %> - <%= f.select :project_id, options_for_select(user_projects_option,@homework.project.id),{},{:name => "project_id", :required => true, :class => "w350 bo"}%> - <% end %> -

<%#= render :partial => 'attachments/form' %> -

- <% options = {:author => true, :deletable => attach_delete(@homework)} %> - <%= render :partial => 'attachments/links', - :locals => {:attachments => @homework.attachments, :options => options} %> -

+ <% unless @homework.attachments.empty?%> +

+ <% options = {:author => true, :deletable => attach_delete(@homework)} %> + <%= render :partial => 'attachments/links', + :locals => {:attachments => @homework.attachments, :options => options} %> +

+ <% end %>

<%= render :partial => 'attachments/form' %>

+

+ + <% if @homework.project.nil? %> + <%= f.select :project_id, options_for_select(user_projects_option),{}, {:name => "project_id", :required => true,:class => "w350 bo"}%> + <% else %> + <%= f.select :project_id, options_for_select(user_projects_option,@homework.project.id),{},{:name => "project_id", :required => true, :class => "w350 bo"}%> + <% end %> +

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();" %>

-

- - <%= f.select :project_id,options_for_select(user_projects_option), {},{:class => "w350 bo"} %> -

+

+ + <%= f.select :project_id,options_for_select(user_projects_option), {},{:class => "w350 bo"} %> +

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 @@ - <%= link_to course.name.to_s, homework_course_path(course) if course %> + <%= link_to "返回课程主页", homework_course_path(course) if course %> @@ -87,7 +87,9 @@ - <%=link_to(@bid.name, course_for_bid_path(@bid)) %> + + <%=link_to("第#{course.homeworks.index(@bid) + 1}次作业", course_for_bid_path(@bid)) %> + diff --git a/app/views/welcome/_course_list.html.erb b/app/views/welcome/_course_list.html.erb index 5fdd8cf3d..c33cc841e 100644 --- a/app/views/welcome/_course_list.html.erb +++ b/app/views/welcome/_course_list.html.erb @@ -5,17 +5,17 @@

- - <% unless course.is_public == 1 %> - <%= l(:label_private) %> - <% end %> - <%= link_to(course.name.truncate(30, omission: '...')+":", course_path(course.id), :class => "d-g-blue d-p-project-name", :title => "#{course.name}") %> + + <% unless course.is_public == 1 %> + <%= l(:label_private) %> + <% end %> + <%= link_to(course.name.truncate(30, omission: '...')+":", course_path(course.id), :class => "d-g-blue d-p-project-name", :title => "#{course.name}") %> - - - <%= link_to(course.try(:teacher).try(:realname), user_path(course.teacher)) %> - <%#=course.try(:teacher).try(:name)%> - + + + <%= link_to(course.try(:teacher).try(:realname), user_path(course.teacher)) %> + <%#=course.try(:teacher).try(:name)%> +
[<%= get_course_term course %>] diff --git a/config/locales/zh.yml b/config/locales/zh.yml index 9eccc498a..fa8f46bb0 100644 --- a/config/locales/zh.yml +++ b/config/locales/zh.yml @@ -1459,7 +1459,7 @@ zh: label_newtype_contest: 发布竞赛 label_user_information: "与我相关" - label_bid_succeed: "需求发布成功" + label_bid_succeed: "作业创建成功" label_wrong_budget: 错误的金额格式 label_wrong_date: 时间格式错误,请输入正确的时间 yyyy-mm-dd label_bidding_succeed: 应标成功 @@ -2184,4 +2184,5 @@ zh: label_anonymous_comments: 匿评 label_anonymous: 匿名 label_submit_comments: 提交评论 - field_evaluation_num: 匿评分配数量 \ No newline at end of file + field_evaluation_num: 匿评分配数量 + label_my_score: 我的评分 \ No newline at end of file