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 @@ -