试卷评阅页的页面优化

competitions
cxt 5 years ago
parent 5c66769b54
commit 558a7051ab

@ -1152,7 +1152,7 @@ class ExercisesController < ApplicationController
# 1 老师权限0 学生权限 # 1 老师权限0 学生权限
@is_teacher_or = (@user_course_identity < Course::STUDENT) ? 1 : 0 @is_teacher_or = (@user_course_identity < Course::STUDENT) ? 1 : 0
@student_status = 2 @student_status = 2
@exercise_questions = @exercise.exercise_questions.includes(:exercise_shixun_challenges,:exercise_standard_answers,:exercise_answers,:exercise_shixun_answers).order("question_number ASC") @exercise_questions = @exercise.exercise_questions.includes(:exercise_shixun_challenges,:exercise_standard_answers,:exercise_answers,:exercise_shixun_answers,:exercise_answer_comments).order("question_number ASC")
@question_status = [] @question_status = []
get_exercise_status = @exercise.get_exercise_status(current_user) #当前用户的试卷状态 get_exercise_status = @exercise.get_exercise_status(current_user) #当前用户的试卷状态
@ex_answer_status = @exercise.get_exercise_status(@ex_user&.user) #当前试卷用户的试卷状态 @ex_answer_status = @exercise.get_exercise_status(@ex_user&.user) #当前试卷用户的试卷状态
@ -1709,9 +1709,9 @@ class ExercisesController < ApplicationController
ques_number = q.question_number ques_number = q.question_number
end end
if q.question_type != Exercise::PRACTICAL if q.question_type != Exercise::PRACTICAL
ques_vote = q.exercise_answers.search_exercise_answer("user_id",user_id) ques_vote = q.exercise_answers.select{|answer| answer.user_id == user_id}
else else
ques_vote = q.exercise_shixun_answers.search_shixun_answers("user_id",user_id) ques_vote = q.exercise_shixun_answers.select{|answer| answer.user_id == user_id}
end end
ques_status = 0 ques_status = 0
if ques_vote.present? if ques_vote.present?

@ -10,9 +10,9 @@ module ExercisesHelper
exercise_obj_status.each do |q| exercise_obj_status.each do |q|
q_type = q.question_type q_type = q.question_type
if q_type == Exercise::PRACTICAL if q_type == Exercise::PRACTICAL
answers_content = q.exercise_shixun_answers.search_shixun_answers("user_id",user_id) answers_content = q.exercise_shixun_answers.select{|answer| answer.user_id == user_id}
else else
answers_content = q.exercise_answers.search_answer_users("user_id",user_id) answers_content = q.exercise_answers.select{|answer| answer.user_id == user_id}
end end
if q_type <= Exercise::JUDGMENT if q_type <= Exercise::JUDGMENT
@ -40,7 +40,7 @@ module ExercisesHelper
ques_score = 0.0 ques_score = 0.0
end end
else else
ques_score = answers_content.score_reviewed.select(:score).pluck(:score).sum ques_score = answers_content.select{|answer| answer.score >= 0.0}.pluck(:score).sum
end end
if ques_score >= q.question_score #满分作答为正确 if ques_score >= q.question_score #满分作答为正确
@ -64,7 +64,7 @@ module ExercisesHelper
exercise_sub_status = exercise_questions.find_by_custom("question_type",Exercise::SUBJECTIVE) #主观题 exercise_sub_status = exercise_questions.find_by_custom("question_type",Exercise::SUBJECTIVE) #主观题
@ex_sub_array = [] #主观题的已答/未答 @ex_sub_array = [] #主观题的已答/未答
exercise_sub_status.each do |s| exercise_sub_status.each do |s|
sub_answer = s.exercise_answers.search_answer_users("user_id",user_id) #主观题只有一个回答 sub_answer = s.exercise_answers.select{|answer| answer.user_id == user_id} #主观题只有一个回答
if sub_answer.present? && sub_answer.first.score >= 0.0 if sub_answer.present? && sub_answer.first.score >= 0.0
if s.question_score <= sub_answer.first.score if s.question_score <= sub_answer.first.score
stand_status = 1 stand_status = 1
@ -772,12 +772,12 @@ module ExercisesHelper
question_comment = [] question_comment = []
# user_score_pre = nil # user_score_pre = nil
if ques_type == 5 if ques_type == 5
exercise_answers = q.exercise_shixun_answers.search_shixun_answers("user_id",ex_answerer_id) exercise_answers = q.exercise_shixun_answers.select{|answer| answer.user_id == ex_answerer_id}
else else
exercise_answers = q.exercise_answers.search_exercise_answer("user_id",ex_answerer_id) #试卷用户的回答 exercise_answers = q.exercise_answers.select{|answer| answer.user_id == ex_answerer_id} #试卷用户的回答
end end
if student_status == 2 #当前为老师,或为学生且已提交 if student_status == 2 #当前为老师,或为学生且已提交
user_score_pre = exercise_answers.score_reviewed user_score_pre = exercise_answers.select{|answer| answer.score >= 0.0}
if ques_type == 4 #主观题时且没有大于0的分数时为空 if ques_type == 4 #主观题时且没有大于0的分数时为空
user_score = user_score_pre.present? ? user_score_pre.pluck(:score).sum : nil user_score = user_score_pre.present? ? user_score_pre.pluck(:score).sum : nil
elsif ques_type == 5 || ques_type == 3 elsif ques_type == 5 || ques_type == 3
@ -829,7 +829,7 @@ module ExercisesHelper
if ex_type == 4 #填空题/主观题/实训题有评论的 if ex_type == 4 #填空题/主观题/实训题有评论的
q_answer_id = exercise_answers.present? ? exercise_answers.first.id : nil q_answer_id = exercise_answers.present? ? exercise_answers.first.id : nil
question_comment = q.exercise_answer_comments.search_answer_comments("exercise_answer_id",q_answer_id) question_comment = q.exercise_answer_comments.select{|comment| comment.exercise_answer_id == q_answer_id}
end end
{ {
"user_score": (user_score.present? ? user_score.round(1).to_s : nil), "user_score": (user_score.present? ? user_score.round(1).to_s : nil),

@ -65,7 +65,7 @@ json.exercise_questions do
shixun_type: user_ques_answers[:shixun_type], shixun_type: user_ques_answers[:shixun_type],
ques_position: nil, ques_position: nil,
edit_type:nil edit_type:nil
if user_ques_comments.count > 0 if user_ques_comments.size > 0
json.question_comments do json.question_comments do
json.partial! "exercises/exercise_comments", question_comment:user_ques_answers[:question_comment].first json.partial! "exercises/exercise_comments", question_comment:user_ques_answers[:question_comment].first
end end

Loading…
Cancel
Save