Merge branch 'dev_aliyun' of https://bdgit.educoder.net/Hjqreturn/educoder into dev_aliyun

dev_new_shixunsrepository
杨树林 5 years ago
commit 7c4a7e2182

@ -92,11 +92,11 @@ class HomeworkCommonsController < ApplicationController
@homework_commons = @homework_commons.order(order_str).page(page).per(15)
if @homework_type == 4
@homework_commons = @homework_commons.includes(:homework_detail_manual, :published_settings, :shixuns)
@homework_commons = @homework_commons.includes(:homework_detail_manual, :published_settings, :homework_group_settings, :shixuns, :course_second_category, user: :user_extension)
elsif @homework_type == 3
@homework_commons = @homework_commons.includes(:homework_detail_manual, :published_settings, :homework_detail_group)
@homework_commons = @homework_commons.includes(:homework_detail_manual, :published_settings, :homework_group_settings, :homework_detail_group, :course_second_category, user: :user_extension)
else
@homework_commons = @homework_commons.includes(:homework_detail_manual, :published_settings)
@homework_commons = @homework_commons.includes(:homework_detail_manual, :published_settings, :homework_group_settings, :course_second_category, user: :user_extension)
end
end
@ -902,7 +902,8 @@ class HomeworkCommonsController < ApplicationController
def publish_groups
@current_user = current_user
if @homework.publish_immediately @current_user
charge_ids = @course.charge_group_ids(@current_user)
if @homework.publish_immediately charge_ids
# 可立即发布的分班:当前用户管理的分班去除已发布的分班
group_ids = @course.charge_group_ids(@current_user) - @homework.homework_group_settings.group_published.pluck(:course_group_id)
@course_groups = @course.course_groups.where(id: group_ids)
@ -1031,7 +1032,8 @@ class HomeworkCommonsController < ApplicationController
def end_groups
@current_user = current_user
if @homework.end_immediately @current_user
charge_ids = @course.charge_group_ids(@current_user)
if @homework.end_immediately charge_ids
# 可立即截止的分班:统一设置则是用户管理的所有分班,否则是当前用户管理的分班中已发布且未截止的
charge_group_ids = @course.charge_group_ids(@current_user) # 当前用户管理的分班
group_ids = @homework.unified_setting ? charge_group_ids :
@ -1313,7 +1315,7 @@ class HomeworkCommonsController < ApplicationController
# 最新一次的查重时间
@last_review_time = format_time @homework.homework_group_reviews.last.try(:created_at)
@charge_ids = @course.charge_group_ids(@current_user)
end
# 代码查重代码的详情

@ -183,7 +183,7 @@ module HomeworkCommonsHelper
student_works = homework_common.teacher_works(member)
count[:commit_count] = student_works.select{|work| work.work_status != 0 }.size
count[:uncommit_count] = student_works.select{|work| work.work_status == 0 }.size
count[:compelete_count] = Myshixun.where(id: student_works.pluck(:myshixun_id).reject(&:blank?), status: 1).size
count[:compelete_count] = Myshixun.where(id: student_works.pluck(:myshixun_id).reject{|ms| ms==0}, status: 1).size
count[:all_count] = student_works.size
count
end

@ -257,7 +257,7 @@ class Course < ApplicationRecord
# 老师负责的分班id
def charge_group_ids user
member = course_member(user.id)
member = user.is_a?(CourseMember) ? user : course_member(user.id)
group_ids = if member.present?
member.teacher_course_groups.size > 0 ? member.teacher_course_groups.pluck(:course_group_id) : course_groups.pluck(:id)
elsif user.admin_or_business?

@ -141,15 +141,17 @@ class HomeworkCommon < ApplicationRecord
end
# 作业能否立即发布
def publish_immediately user
homework_detail_manual.try(:comment_status) == 0 || homework_group_settings.where(course_group_id: course.charge_group_ids(user)).
none_published.count > 0
def publish_immediately charge_ids
homework_detail_manual.try(:comment_status) == 0 ||
homework_group_settings.select{|setting| charge_ids.include?(setting.course_group_id) &&
(setting.publish_time.nil? || setting.publish_time > Time.now)}.size > 0
end
# 作业能否立即截止
def end_immediately user
(unified_setting && homework_detail_manual.try(:comment_status) == 1 && end_time > Time.now) || homework_group_settings.
where(course_group_id: course.charge_group_ids(user)).published_no_end.count > 0
def end_immediately charge_ids
(unified_setting && homework_detail_manual.try(:comment_status) == 1 && end_time > Time.now) ||
homework_group_settings.select{|setting| charge_ids.include?(setting.course_group_id) &&
!setting.publish_time.nil? && setting.publish_time < Time.now && setting.end_time > Time.now}.size > 0
end
# 学生是否提交了作品

@ -1,5 +1,6 @@
# 教师身份的立即发布、立即截止、代码查重入口的判断
json.publish_immediately identity < Course::STUDENT && homework.publish_immediately(user)
json.end_immediately identity < Course::STUDENT && homework.end_immediately(user)
charge_ids = homework.course.charge_group_ids(user)
json.publish_immediately identity < Course::STUDENT && homework.publish_immediately(charge_ids)
json.end_immediately identity < Course::STUDENT && homework.end_immediately(charge_ids)
json.code_review identity < Course::STUDENT && homework.code_review if homework.homework_type == 'practice'
json.view_answer homework.view_answer(identity, user.id) if homework.homework_type != "practice"

@ -1,7 +1,9 @@
json.partial! "homework_public_navigation", locals: {homework: @homework, course: @course, user: @current_user}
json.last_review_time @last_review_time
json.publish_immediately @user_course_identity < Course::STUDENT && @homework.publish_immediately(@current_user)
json.end_immediately @user_course_identity < Course::STUDENT && @homework.end_immediately(@current_user)
json.publish_immediately @user_course_identity < Course::STUDENT && @homework.publish_immediately(@charge_ids)
json.end_immediately @user_course_identity < Course::STUDENT && @homework.end_immediately(@charge_ids)
# 分班情况
json.group_info do

@ -24,6 +24,10 @@ json.homeworks @homework_commons.each do |homework|
# 只有在主目录才显示
json.upper_category_name homework.course_second_category&.name unless params[:category]
charge_ids = @course.charge_group_ids(@member)
json.publish_immediately @user_course_identity < Course::STUDENT && homework.publish_immediately(charge_ids)
json.end_immediately @user_course_identity < Course::STUDENT && homework.end_immediately(charge_ids)
unless curr_status[:status].include?("未发布")
work_count = calculate_work_count homework, @member
json.commit_count work_count[:commit_count]

Loading…
Cancel
Save