diff --git a/app/controllers/homework_commons_controller.rb b/app/controllers/homework_commons_controller.rb index 8e3436aa6..6918610df 100644 --- a/app/controllers/homework_commons_controller.rb +++ b/app/controllers/homework_commons_controller.rb @@ -1106,7 +1106,7 @@ class HomeworkCommonsController < ApplicationController else homework.unified_setting = false # 创建作业分班设置:homework_group_setting - create_homework_group_settings(homework) + homework.create_homework_group_settings # 选中的分班设置的发布时间改为当前时间,截止时间改为传的截止时间参数 if params[:detail] @@ -1142,7 +1142,7 @@ class HomeworkCommonsController < ApplicationController # 发消息 HomeworkCommonPushNotifyJob.perform_later(homework.id, tiding_group_ids) else - create_homework_group_settings(homework) + homework.create_homework_group_settings none_publish_settings = homework.homework_group_settings.where(course_group_id: publish_groups).none_published if params[:detail] @@ -1216,7 +1216,7 @@ class HomeworkCommonsController < ApplicationController # 分组设置 if !params[:group_ids].blank? # 确保之前是统一设置或者有新创建的分班的数据一致性 - create_homework_group_settings(homework) + homework.create_homework_group_settings homework.unified_setting = false if homework.unified_setting && end_groups.length != @course.course_groups_count @@ -1587,15 +1587,6 @@ class HomeworkCommonsController < ApplicationController end - def create_homework_group_settings homework - if homework.homework_group_settings.size != @course.course_groups.size - @course.course_groups.where.not(id: homework.homework_group_settings.pluck(:course_group_id)).each do |group| - homework.homework_group_settings << HomeworkGroupSetting.new(course_group_id: group.id, course_id: @course.id, - publish_time: homework.publish_time, end_time: homework.end_time) - end - end - end - def get_new_code_reviews_result homework if homework.code_reviews_new_results? # 获取最新的查询id diff --git a/app/models/homework_common.rb b/app/models/homework_common.rb index def3b6b0d..d37650c37 100644 --- a/app/models/homework_common.rb +++ b/app/models/homework_common.rb @@ -285,6 +285,15 @@ class HomeworkCommon < ApplicationRecord homework_challenge_settings.find_by(challenge_id: challenge_id)&.score.to_f end + def create_homework_group_settings + if homework_group_settings.size != course.course_groups.size + course.course_groups.where.not(id: homework_group_settings.pluck(:course_group_id)).each do |group| + homework_group_settings << HomeworkGroupSetting.new(course_group_id: group.id, course_id: course.id, + publish_time: publish_time, end_time: end_time) + end + end + end + def update_homework_work_score if unified_setting works = student_works diff --git a/app/services/update_homework_publish_setting_service.rb b/app/services/update_homework_publish_setting_service.rb index 10287ce64..6350e0dc7 100644 --- a/app/services/update_homework_publish_setting_service.rb +++ b/app/services/update_homework_publish_setting_service.rb @@ -29,7 +29,7 @@ class UpdateHomeworkSettingService < ApplicationService else raise(Error, "分班发布设置不能为空") if params[:group_settings].blank? # 创建作业的分班设置 - create_homework_group_settings homework + homework.create_homework_group_settings setting_group_ids = [] @@ -81,7 +81,7 @@ class UpdateHomeworkSettingService < ApplicationService homework.end_time = params[:end_time] elsif !homework.unified_setting - create_homework_group_settings homework + homework.create_homework_group_settings raise(Error, "分班发布设置不能为空") if params[:group_settings].blank? params[:group_settings].each do |setting| group_settings = HomeworkGroupSetting.where(homework_common_id: homework.id, course_group_id: setting[:group_id])