|
|
|
@ -518,27 +518,27 @@ class ExercisesController < ApplicationController
|
|
|
|
|
common_group = exercise_groups_ids & course_id #传入的班级与问卷已存在的班级的交集,即表示已有分班的
|
|
|
|
|
new_group_ids = course_id - common_group #新传入的班级id
|
|
|
|
|
if common_group.count > 0 #判断试卷的分班设置是否存在,存在则更新,负责则新建
|
|
|
|
|
ex_group_params = {
|
|
|
|
|
exercise_group_sets = exercise_groups.find_in_exercise_group("course_group_id",common_group)
|
|
|
|
|
exercise_group_sets.each do |the_group_setting|
|
|
|
|
|
ex_group_params = {
|
|
|
|
|
:publish_time => exercise_publish_time,
|
|
|
|
|
:end_time => exercise_end_time
|
|
|
|
|
}
|
|
|
|
|
exercise_group_sets = exercise_groups.find_in_exercise_group("course_group_id",common_group)
|
|
|
|
|
the_group_setting = exercise_group_sets.first
|
|
|
|
|
if the_group_setting.present?
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
the_group_setting_status = set_exercise_status(the_group_setting.publish_time,the_group_setting.end_time)
|
|
|
|
|
if the_group_setting_status == 2
|
|
|
|
|
ex_group_params = {
|
|
|
|
|
:publish_time => the_group_setting.publish_time,
|
|
|
|
|
:end_time => exercise_end_time
|
|
|
|
|
:publish_time => the_group_setting.publish_time,
|
|
|
|
|
:end_time => exercise_end_time
|
|
|
|
|
}
|
|
|
|
|
elsif the_group_setting_status == 3
|
|
|
|
|
ex_group_params = {
|
|
|
|
|
:publish_time => the_group_setting.publish_time,
|
|
|
|
|
:end_time => the_group_setting.end_time
|
|
|
|
|
:publish_time => the_group_setting.publish_time,
|
|
|
|
|
:end_time => the_group_setting.end_time
|
|
|
|
|
}
|
|
|
|
|
end
|
|
|
|
|
the_group_setting.update_attributes!(ex_group_params)
|
|
|
|
|
end
|
|
|
|
|
exercise_group_sets.update_all(ex_group_params)
|
|
|
|
|
end
|
|
|
|
|
if new_group_ids.size > 0
|
|
|
|
|
new_group_ids.each do |c|
|
|
|
|
@ -560,8 +560,9 @@ class ExercisesController < ApplicationController
|
|
|
|
|
error_count == 0
|
|
|
|
|
normal_status(-1,"已发布/已截止的试卷不允许修改时间")
|
|
|
|
|
else
|
|
|
|
|
# 未发布的分班设置才能删除
|
|
|
|
|
if old_exercise_groups.size > 0
|
|
|
|
|
old_all_ex_groups = exercise_groups.find_in_exercise_group("course_group_id",old_exercise_groups)
|
|
|
|
|
old_all_ex_groups = exercise_groups.find_in_exercise_group("course_group_id",old_exercise_groups).exercise_group_not_published
|
|
|
|
|
old_all_ex_groups.destroy_all
|
|
|
|
|
end
|
|
|
|
|
#试卷更新为exercise_group_setting的发布时间最小,截止时间最大
|
|
|
|
@ -720,8 +721,8 @@ class ExercisesController < ApplicationController
|
|
|
|
|
if exercise.unified_setting
|
|
|
|
|
ex_status = exercise.exercise_status #则为试卷的状态
|
|
|
|
|
else
|
|
|
|
|
ex_status = exercise.exercise_group_settings.find_in_exercise_group("course_group_id",params[:group_ids])
|
|
|
|
|
.exercise_group_not_published.present? ? 1 : 0
|
|
|
|
|
ex_status = @course.course_groups.where(id: params[:group_ids]).size !=
|
|
|
|
|
exercise.exercise_group_settings.where("course_group_id", params[:group_ids]).exercise_group_published.size ? 1 : 0
|
|
|
|
|
end
|
|
|
|
|
if ex_status == 1 #如果试卷存在已发布的,或者是已截止的,那么则直接跳过
|
|
|
|
|
g_course = group_ids #表示是否传入分班参数,如果传入分班的参数,那么试卷的统一设置需修改
|
|
|
|
@ -739,8 +740,8 @@ class ExercisesController < ApplicationController
|
|
|
|
|
g_course.each_with_index do |i, index|
|
|
|
|
|
exercise_group_setting = exercise.exercise_group_settings.find_in_exercise_group("course_group_id",i).first #根据课堂分班的id,寻找试卷所在的班级
|
|
|
|
|
group_end_time = params[:detail] ? group_end_times[index] : ex_end_time
|
|
|
|
|
if exercise_group_setting #如果该试卷分组存在,则更新,否则新建
|
|
|
|
|
exercise_group_setting.update_attributes(publish_time: Time.now, end_time: group_end_time)
|
|
|
|
|
if exercise_group_setting.present? #如果该试卷分组存在,则更新,否则新建
|
|
|
|
|
exercise_group_setting.update_attributes!(publish_time: Time.now, end_time: group_end_time)
|
|
|
|
|
else
|
|
|
|
|
p_course_group = {
|
|
|
|
|
:exercise_id => exercise.id,
|
|
|
|
@ -1425,18 +1426,24 @@ class ExercisesController < ApplicationController
|
|
|
|
|
|
|
|
|
|
@exercise_questions = @exercise.exercise_questions&.includes(:exercise_choices,:exercise_answers,:exercise_standard_answers,:exercise_shixun_challenges,:exercise_shixun_answers)
|
|
|
|
|
|
|
|
|
|
@paging_type = "percent"
|
|
|
|
|
# 按题型排序
|
|
|
|
|
percent_sort = "desc"
|
|
|
|
|
|
|
|
|
|
if params[:sort].present?
|
|
|
|
|
@paging_type = params[:sort].to_s
|
|
|
|
|
percent_sort = params[:sort]
|
|
|
|
|
end
|
|
|
|
|
# @paging_type = "percent"
|
|
|
|
|
# # 按题型排序
|
|
|
|
|
# if params[:sort].present?
|
|
|
|
|
# @paging_type = params[:sort].to_s
|
|
|
|
|
# end
|
|
|
|
|
|
|
|
|
|
ques_result_all = exercise_commit_result(@exercise_questions,@exercise_commit_user_ids)
|
|
|
|
|
|
|
|
|
|
if @paging_type == "percent"
|
|
|
|
|
@question_result_hash = ques_result_all.sort_by{|s| s[:percent]}
|
|
|
|
|
#默认降序排列
|
|
|
|
|
if percent_sort == "desc"
|
|
|
|
|
@question_result_hash = ques_result_all.sort_by{|s| s[:percent]}.reverse
|
|
|
|
|
else
|
|
|
|
|
@question_result_hash = ques_result_all.sort_by{|s| s[:"#{@paging_type}"]}
|
|
|
|
|
@question_result_hash = ques_result_all.sort_by{|s| s[:percent]}
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
@exercise_questions_count = @exercise_questions.size
|
|
|
|
|