diff --git a/app/controllers/homework_common_controller.rb b/app/controllers/homework_common_controller.rb index 4019e1110..b94f6fb8f 100644 --- a/app/controllers/homework_common_controller.rb +++ b/app/controllers/homework_common_controller.rb @@ -251,7 +251,7 @@ class HomeworkCommonController < ApplicationController @homework_detail_programing.ta_proportion = 0 if @homework_detail_programing end if @homework_detail_manual.comment_status < 4 - if params[:homework_anonymous_appeal] + if params[:homework_anonymous_comment] && params[:homework_anonymous_appeal] @homework.anonymous_appeal = 1 @homework_detail_manual.appeal_time = params[:homework_appeal_time] if params[:homework_appeal_time] @homework_detail_manual.appeal_penalty = params[:homework_appeal_penalty] if params[:homework_appeal_penalty] @@ -338,7 +338,6 @@ class HomeworkCommonController < ApplicationController if @homework.end_time < Time.now @homework.student_works.each do |student_work| set_shixun_final_score @homework, student_work, @homework_detail_manual.answer_open_evaluation - student_work.save end end end diff --git a/app/controllers/managements_controller.rb b/app/controllers/managements_controller.rb index d293de2d5..b04334ee0 100644 --- a/app/controllers/managements_controller.rb +++ b/app/controllers/managements_controller.rb @@ -678,7 +678,7 @@ end @courses = @courses.where(:homepage_show => params[:homepage_show].to_i) end - if params[:course_list] + if params[:course_list] && params[:course_list] != '' @courses = @courses.where(:course_list_id => courselist) end if params[:status] && params[:status]!='' diff --git a/app/controllers/shixuns_controller.rb b/app/controllers/shixuns_controller.rb index b3d7ad491..feea9d22c 100644 --- a/app/controllers/shixuns_controller.rb +++ b/app/controllers/shixuns_controller.rb @@ -562,11 +562,14 @@ class ShixunsController < ApplicationController # end # @shixun.major_id = params[:major_id] @shixun.shixun_major_courses.destroy_all - if CourseList.where(:name => params[:course_list].strip).count > 0 - @shixun.shixun_major_courses << ShixunMajorCourse.new(:major_id => -1, :course_list_id => CourseList.where(:name => params[:course_list].strip).first.id) - else - course_list = CourseList.create(:name => params[:course_list].strip, :user_id => User.current.id, :is_admin => 0) - @shixun.shixun_major_courses << ShixunMajorCourse.new(:major_id => -1, :course_list_id => course_list.id) + course_lists = params[:course_list].strip.split(",") + course_lists.each do |course| + if CourseList.where(:name => course).count > 0 + @shixun.shixun_major_courses << ShixunMajorCourse.new(:major_id => -1, :course_list_id => CourseList.where(:name => course.strip).first.id) + else + course_list = CourseList.create(:name => course.strip, :user_id => User.current.id, :is_admin => 0) + @shixun.shixun_major_courses << ShixunMajorCourse.new(:major_id => -1, :course_list_id => course_list.id) + end end params[:shixun][:is_public] == "on" ? @shixun.is_public = 1 : @shixun.is_public = 0 ActiveRecord::Base.transaction do @@ -686,9 +689,9 @@ class ShixunsController < ApplicationController @user = User.current if !params[:search].nil? search = "%#{params[:search].to_s.strip.downcase}%" - @courses = @user.courses.not_deleted_not_end.where("#{Course.table_name}.name like :p",:p=>search).select{|course| @user.allowed_to?(:as_teacher,course)} + @courses = @user.courses.not_deleted_not_end.where("#{Course.table_name}.name like :p",:p=>search).select{|course| @user.has_teacher_role(course)} else - @courses = @user.courses.not_deleted_not_end.select{|course| @user.allowed_to?(:as_teacher,course)} + @courses = @user.courses.not_deleted_not_end.select{|course| @user.has_teacher_role(course)} end @pages = Paginator.new @courses.count, 8, params['page'] || 1 @offset ||= @pages.offset @@ -718,11 +721,11 @@ class ShixunsController < ApplicationController homework_detail_manual.evaluation_num = 0 homework_detail_manual.absence_penalty = 0 homework.homework_detail_manual = homework_detail_manual - if homework.save + if homework.save! homework_detail_manual.save if homework_detail_manual HomeworkCommonsShixuns.create(:homework_common_id => homework.id, :shixun_id => @shixun.id) + redirect_to setting_homework_common_path(homework, :is_new => 1) end - redirect_to setting_homework_common_path(homework, :is_new => 1) end private # REDO: 新增类型copy的时候 diff --git a/app/controllers/student_work_controller.rb b/app/controllers/student_work_controller.rb index a5ed47268..c498af4a9 100644 --- a/app/controllers/student_work_controller.rb +++ b/app/controllers/student_work_controller.rb @@ -377,11 +377,11 @@ class StudentWorkController < ApplicationController end #开放作品 || 老师 || 超级管理员 || 禁用匿评&&作业截止&&已提交作品 显示所有列表 - if (@homework.is_open == 1 && User.current.member_of_course?(@course) && @homework.homework_detail_manual.comment_status == 6) || @is_teacher || User.current.admin? + if (@homework.work_public && User.current.member_of_course?(@course) && @homework.homework_detail_manual.comment_status == 6) || @is_teacher || User.current.admin? @stundet_works = @homework.student_works.select("student_works.*,student_works.work_score as score").joins(:user).where("users.id in #{student_in_group}").order("#{@order} #{@b_sort}") @show_all = true elsif User.current.member_of_course?(@course) - if @homework.homework_detail_manual.comment_status == 1 || @homework.homework_detail_manual.comment_status == 2 #学生 && 未开启匿评 只看到自己的 + if @homework.homework_detail_manual.comment_status == 1 || @homework.homework_detail_manual.comment_status == 2 || @homework.homework_detail_manual.comment_status == 5 || @homework.homework_detail_manual.comment_status == 6 #学生 && 未开启匿评 只看到自己的 if @homework.homework_type == 3 my_work = @homework.student_works.where(:user_id => User.current.id) @stundet_works = !my_work.balnk? ? (my_work.first.group_id != 0 ? @homework.student_works.select("student_works.*,student_works.work_score as score").where(:group_id => my_work.first.group_id) : my_work) : [] @@ -391,14 +391,14 @@ class StudentWorkController < ApplicationController elsif @homework.homework_detail_manual.comment_status == 3 || @homework.homework_detail_manual.comment_status == 4 #学生 && 开启匿评 看到匿评列表 my_work = @homework.student_works.select("student_works.*,student_works.work_score as score").where(:user_id => User.current.id).first @stundet_works = my_work + User.current.student_works_evaluation_distributions.map(&:student_work).select { |work| work.homework_common_id == @homework.id} - elsif @homework.homework_detail_manual.comment_status == 5 #学生 && 关闭匿评 未提交作品之前列表为空,提交了作品看到所有的 - my_work = @homework.student_works.select("student_works.*,student_works.work_score as score").where(:user_id => User.current.id).first - if !my_work || my_work.status == 0 - @stundet_works = [] - else - @stundet_works = @homework.student_works.select("student_works.*,student_works.work_score as score").joins(:user).where("users.id in #{student_in_group}").order("#{@order} #{@b_sort}") - @show_all = true - end + # elsif @homework.homework_detail_manual.comment_status == 5 || @homework.homework_detail_manual.comment_status == 6 #学生 && 关闭匿评 未提交作品之前列表为空,提交了作品看到所有的 + # my_work = @homework.student_works.select("student_works.*,student_works.work_score as score").where(:user_id => User.current.id).first + # if !my_work || my_work.status == 0 + # @stundet_works = [] + # else + # @stundet_works = @homework.student_works.select("student_works.*,student_works.work_score as score").joins(:user).where("users.id in #{student_in_group}").order("#{@order} #{@b_sort}") + # @show_all = true + # end else @stundet_works = [] end @@ -408,11 +408,11 @@ class StudentWorkController < ApplicationController end else - if (@homework.is_open == 1 && User.current.member_of_course?(@course) && @homework.homework_detail_manual.comment_status == 6) || @is_teacher || User.current.admin? + if (@homework.work_public && User.current.member_of_course?(@course) && @homework.homework_detail_manual.comment_status == 6) || @is_teacher || User.current.admin? @stundet_works = @homework.student_works.select("student_works.*,student_works.work_score as score").includes(:user => {:user_extensions => []}, :project => {}, :student_works_scores => {}).order("#{@order} #{@b_sort}") @show_all = true elsif User.current.member_of_course?(@course) - if @homework.homework_detail_manual.comment_status == 1 || @homework.homework_detail_manual.comment_status == 2 #学生 && 未开启匿评 只看到自己的 + if @homework.homework_detail_manual.comment_status == 1 || @homework.homework_detail_manual.comment_status == 2 || @homework.homework_detail_manual.comment_status == 5 || @homework.homework_detail_manual.comment_status == 6 #学生 && 未开启匿评 只看到自己的 if @homework.homework_type == 3 my_work = @homework.student_works.where(:user_id => User.current.id) @stundet_works = !my_work.blank? ? (my_work.first.group_id != 0 ? @homework.student_works.select("student_works.*,student_works.work_score as score").where(:group_id => my_work.first.group_id) : my_work) : [] @@ -422,14 +422,14 @@ class StudentWorkController < ApplicationController elsif @homework.homework_detail_manual.comment_status == 3 || @homework.homework_detail_manual.comment_status == 4 #学生 && 开启匿评 看到匿评列表 my_work = @homework.student_works.select("student_works.*,student_works.work_score as score").where(:user_id => User.current.id).first @stundet_works = my_work + User.current.student_works_evaluation_distributions.map(&:student_work).select { |work| work.homework_common_id == @homework.id} - elsif @homework.homework_detail_manual.comment_status == 5 #学生 && 关闭匿评 未提交作品之前列表为空,提交了作品看到所有的 - my_work = @homework.student_works.select("student_works.*,student_works.work_score as score").where(:user_id => User.current.id).first - if !my_work || my_work.status == 0 - @stundet_works = [] - else - @stundet_works = @homework.student_works.select("student_works.*,student_works.work_score as score").order("#{@order} #{@b_sort}") - @show_all = true - end + # elsif @homework.homework_detail_manual.comment_status == 5 #学生 && 关闭匿评 未提交作品之前列表为空,提交了作品看到所有的 + # my_work = @homework.student_works.select("student_works.*,student_works.work_score as score").where(:user_id => User.current.id).first + # if !my_work || my_work.work_status == 0 + # @stundet_works = [] + # else + # @stundet_works = @homework.student_works.select("student_works.*,student_works.work_score as score").order("#{@order} #{@b_sort}") + # @show_all = true + # end else @stundet_works = [] end diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 03d1cd5d9..1df371b9b 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -283,7 +283,7 @@ module ApplicationHelper if myshixun.nil? 0 else - myshixun.games.select{|game| game.status == 2 && game.answer_open == 0}.count + myshixun.games.select{|game| game.status == 2 && !game.answer_open}.count end end @@ -358,18 +358,23 @@ module ApplicationHelper day = time / 86400 hour = time % (24*60*60) / (60*60) min = time % (24*60*60) % (60*60) / 60 + sec = time % (24*60*60) % (60*60) % 60 if day < 1 if hour < 1 - if time < 1 - time = time == 0 ? "--" : "小于1分钟" + if min < 1 + if sec < 1 + time = "--" + else + time = "#{sec}秒" + end else - time = "#{min} 分钟" + time = "#{min}分钟 #{sec}秒" end else - time = "#{hour}小时 : #{min}分" + time = "#{hour}小时 #{min}分钟 #{sec}秒" end else - time = "#{day}天 #{hour}小时 #{min}分" + time = "#{day}天 #{hour}小时 #{min}分钟 #{sec}秒" end return time end @@ -4736,6 +4741,7 @@ end def get_hw_index(hw,is_teacher,type=0) homework_commons = hw.course.homework_commons + Rails.logger.info("----------------------------------------------"+hw.course.to_s) if is_teacher if type != 0 homeworks = homework_commons.where("homework_commons.homework_type = #{type}").order("created_at asc") @@ -4749,7 +4755,8 @@ def get_hw_index(hw,is_teacher,type=0) homeworks = homework_commons.where("publish_time <= '#{Time.now}'").order("created_at asc") end end - hw_ids = homeworks.map{|hw| hw.id} if !homeworks.empty? + Rails.logger.info("----------------------------------------------"+homeworks.count.to_s) + hw_ids = homeworks.map{|hw| hw.id} if !homeworks.blank? index = hw_ids.index(hw.id) return index end @@ -5224,9 +5231,9 @@ def set_shixun_final_score homework, student_work, answer_open_evaluation shixun = homework.homework_commons_shixuns.shixun passed_count = answer_open_evaluation ? had_passed_changllenge_num(shixun, student_work.user) : had_passed_no_ans_changllenge_num(shixun, student_work.user) final_score =(passed_count.to_f / shixun.challenges.count) * 100 - student_work.final_score = format("%.2f",final_score.to_f) + student_work.update_column("final_score", format("%.2f",final_score.to_f)) score = student_work.final_score - student_work.late_penalty - student_work.work_score = format("%.2f",(score < 0 ? 0 : score).to_f) if score + student_work.update_column("work_score", format("%.2f",(score < 0 ? 0 : score).to_f)) if score end end diff --git a/app/views/repositories/commits.html.erb b/app/views/repositories/commits.html.erb index 0502b6235..0103552db 100644 --- a/app/views/repositories/commits.html.erb +++ b/app/views/repositories/commits.html.erb @@ -1,4 +1,4 @@ -
+
    <%= render :partial => 'shixun_navigation' %> diff --git a/app/views/repositories/shixun_commit_diff.html.erb b/app/views/repositories/shixun_commit_diff.html.erb index 1570978b9..bd56d8878 100644 --- a/app/views/repositories/shixun_commit_diff.html.erb +++ b/app/views/repositories/shixun_commit_diff.html.erb @@ -1,4 +1,4 @@ -
    +
    <%=link_to "返回提交历史".html_safe, diff --git a/app/views/repositories/shixun_show.html.erb b/app/views/repositories/shixun_show.html.erb index 287b74392..39423fdb3 100644 --- a/app/views/repositories/shixun_show.html.erb +++ b/app/views/repositories/shixun_show.html.erb @@ -3,9 +3,14 @@

    - 使用Git提交代码时,请在Git客户端填写如下信息:
    - * 用户名:请使用您绑定的邮箱
    - * 口令:请使用您的登录口令
    + 提交代码的方法:
    + 1、在你自己的电脑安装Git tortoise客户端,
    + 或者其他你熟悉的Git客户端;
    + 2、在Git客户端向左侧的地址提交代码。
    + 注意:
    + 请务必在Git客户端填写如下信息:
    + * 用户名:使用您在本平台绑定的邮箱
    + * 口令:使用您在本平台的登录口令

    diff --git a/app/views/subjects/show.html.erb b/app/views/subjects/show.html.erb index 7573904ed..c00effaa7 100644 --- a/app/views/subjects/show.html.erb +++ b/app/views/subjects/show.html.erb @@ -309,12 +309,12 @@ } else{ $("#stage_name_notice").hide(); } - if($("input[name='shixun_id[]']").length == 0){ - status = false; - $("#sx_none_notice").show(); - } else{ - $("#sx_none_notice").hide(); - } +// if($("input[name='shixun_id[]']").length == 0){ +// status = false; +// $("#sx_none_notice").show(); +// } else{ +// $("#sx_none_notice").hide(); +// } if(status && flag){ flag = false; $("#new_stage_form").submit(); diff --git a/app/views/users/show.html.erb b/app/views/users/show.html.erb index b3ffa379e..4567d408d 100644 --- a/app/views/users/show.html.erb +++ b/app/views/users/show.html.erb @@ -223,7 +223,7 @@ <% if User.current.mail.blank? %>
  • + 新建
  • <% else %> -
  • <%= link_to "+ 新建", new_shixun_path, :target => "_blank", :class => "color-light-green fr font-14 mr20", :style => "line-height:56px" %>
  • +
  • <%= link_to "+ 新建", new_shixun_path, :class => "color-light-green fr font-14 mr20", :style => "line-height:56px" %>
  • <% end %>
    diff --git a/lib/tasks/homework_publishtime.rake b/lib/tasks/homework_publishtime.rake index 36cff6723..0a24b1503 100644 --- a/lib/tasks/homework_publishtime.rake +++ b/lib/tasks/homework_publishtime.rake @@ -86,10 +86,10 @@ namespace :homework_publishtime do homework.student_works.where("work_status != 0").each do |student_work| passed_count = homework.homework_detail_manual.answer_open_evaluation ? had_passed_changllenge_num_rake(student_work.myshixun) : had_passed_no_ans_changllenge_num_rake(student_work.myshixun) final_score =(passed_count.to_f / shixun.challenges.count) * 100 - student_work.final_score = format("%.2f",final_score.to_f) + student_work.update_column("final_score", format("%.2f",final_score.to_f)) score = student_work.final_score - student_work.late_penalty student_work.work_score = format("%.2f",(score < 0 ? 0 : score).to_f) if score - student_work.save + student_work.update_column("work_score", format("%.2f",(score < 0 ? 0 : score).to_f)) end end end diff --git a/public/javascripts/edu/base_edu.js b/public/javascripts/edu/base_edu.js index 48ea8ac4b..e56955e6d 100644 --- a/public/javascripts/edu/base_edu.js +++ b/public/javascripts/edu/base_edu.js @@ -275,11 +275,13 @@ $(function(){ $(this).parent().parent('ul').find('input[type="text"]').removeAttr('disabled'); $(this).parent().parent('ul').find('input[type="text"]').removeClass('disabled-bg'); $("#anon_relate_setting_ul").show(); - var my_date = new Date(); - var end_date = new Date(Date.parse($("input[name='homework_end_time']").val().replace(/-/g, "/"))); - var max_date = my_date > end_date ? my_date : end_date; - $("input[name='homework_evaluation_start']").val(formate_time(new Date(max_date.setDate(max_date.getDate()+7)))); - $("input[name='homework_evaluation_end']").val(formate_time(new Date(max_date.setDate(max_date.getDate()+14)))); + if($("input[name='homework_end_time']").val().trim() != ""){ + var my_date = new Date(); + var end_date = new Date(Date.parse($("input[name='homework_end_time']").val().replace(/-/g, "/"))); + var max_date = my_date > end_date ? my_date : end_date; + $("input[name='homework_evaluation_start']").val(formate_time(new Date(max_date.setDate(max_date.getDate()+7)))); + $("input[name='homework_evaluation_end']").val(formate_time(new Date(max_date.setDate(max_date.getDate()+14)))); + } $("input[name='homework_evaluation_num']").val("3"); $("input[name='homework_absence_penalty']").val("2"); $("select[name='st_proportion']").removeAttr('disabled').removeClass('disabled-bg'); @@ -305,10 +307,12 @@ $(function(){ if($(this).is(':checked')){ $(this).parent().parent('ul').find('input[type="text"]').removeAttr('disabled'); $(this).parent().parent('ul').find('input[type="text"]').removeClass('disabled-bg'); - var my_date = new Date(); - var end_date = new Date(Date.parse($("input[name='homework_evaluation_end']").val().replace(/-/g, "/"))); - var max_date = my_date > end_date ? my_date : end_date; - $("input[name='homework_appeal_time']").val(formate_time(new Date(max_date.setDate(max_date.getDate()+2)))); + if($("input[name='homework_evaluation_end']").val().trim() != ""){ + var my_date = new Date(); + var end_date = new Date(Date.parse($("input[name='homework_evaluation_end']").val().replace(/-/g, "/"))); + var max_date = my_date > end_date ? my_date : end_date; + $("input[name='homework_appeal_time']").val(formate_time(new Date(max_date.setDate(max_date.getDate()+2)))); + } $("input[name='homework_appeal_penalty']").val("2"); } else{ $(this).parent().parent('ul').find('input[type="text"]').attr('disabled', 'disabled'); @@ -435,36 +439,37 @@ $(function(){ $("#homework_absence_penalty_notice").hide(); } } - } - if($("input[name='homework_anonymous_appeal']").is(':checked')){ - if($.trim($("input[name='homework_appeal_time']").val()) == ""){ - $("#homework_appeal_time_notice").html("申诉结束时间不能为空").show(); - result = false; - } else{ - var archive_time = Date.parse($("input[name='homework_archive_time']").val()); - var eva_end = Date.parse($("input[name='homework_evaluation_end']").val()); - var appeal_time = Date.parse($("input[name='homework_appeal_time']").val()); - if(eva_end >= appeal_time){ - $("#homework_appeal_time_notice").html("申诉结束时间应晚于匿评结束时间").show(); + + if($("input[name='homework_anonymous_appeal']").is(':checked')){ + if($.trim($("input[name='homework_appeal_time']").val()) == ""){ + $("#homework_appeal_time_notice").html("申诉结束时间不能为空").show(); result = false; - } else if(archive_time <= appeal_time){ - $("#homework_appeal_time_notice").html("申诉结束时间应早于作业结束时间").show(); - result = false; - } else { - $("#homework_appeal_time_notice").hide(); - } - } - if($.trim($("input[name='homework_appeal_penalty']").val()) == ""){ - result = false; - $("#homework_appeal_penalty_notice").html("违规匿评扣分不能为空").show(); - } else{ - var str = $.trim($("input[name='homework_appeal_penalty']").val()); - var regex = /^\d+$/; - if(!regex.test(str) || parseInt(str) < 0 || parseInt(str) > 50) { - result = false; - $("#homework_appeal_penalty_notice").html("请输入0-50之间的正整数").show(); } else{ - $("#homework_appeal_penalty_notice").hide(); + var archive_time = Date.parse($("input[name='homework_archive_time']").val()); + var eva_end = Date.parse($("input[name='homework_evaluation_end']").val()); + var appeal_time = Date.parse($("input[name='homework_appeal_time']").val()); + if(eva_end >= appeal_time){ + $("#homework_appeal_time_notice").html("申诉结束时间应晚于匿评结束时间").show(); + result = false; + } else if(archive_time <= appeal_time){ + $("#homework_appeal_time_notice").html("申诉结束时间应早于作业结束时间").show(); + result = false; + } else { + $("#homework_appeal_time_notice").hide(); + } + } + if($.trim($("input[name='homework_appeal_penalty']").val()) == ""){ + result = false; + $("#homework_appeal_penalty_notice").html("违规匿评扣分不能为空").show(); + } else{ + var str = $.trim($("input[name='homework_appeal_penalty']").val()); + var regex = /^\d+$/; + if(!regex.test(str) || parseInt(str) < 0 || parseInt(str) > 50) { + result = false; + $("#homework_appeal_penalty_notice").html("请输入0-50之间的正整数").show(); + } else{ + $("#homework_appeal_penalty_notice").hide(); + } } } }