试卷答题详情优化

dev_local
daiao 6 years ago
parent 1d39f457fd
commit a910375cfb

@ -73,7 +73,7 @@ class ExerciseController < ApplicationController
# message.update_attributes(:viewed => true) if message.viewed == 0
# end
# end
@is_teacher = User.current.allowed_to?(:as_teacher,@course) || User.current.admin?
@is_teacher = User.current.allowed_to?(:as_teacher, @course) || User.current.admin?
unless @is_teacher
ActiveRecord::Base.transaction do
@ -96,20 +96,20 @@ class ExerciseController < ApplicationController
time = (@exercise_user.start_at.to_i + @exercise.time.to_i * 60) > @exercise.end_time.to_i ? @exercise.end_time : Time.at(@exercise_user.start_at.to_i + @exercise.time.to_i * 60)
@exercise_user.update_attributes(:status => true, :end_at => time, :commit_status => 1)
s_score = calculate_student_score(@exercise, @exercise_user.user)
@exercise_user.update_attributes(:objective_score => s_score, :score => (s_score + (@exercise_user.subjective_score && @exercise_user.subjective_score > 0 ? @exercise_user.subjective_score : 0)))
if @exercise_user.user.exercise_answer.where(:exercise_question_id => @exercise.exercise_questions.where(:question_type => 4).map(&:id)).empty?
score = (@exercise_user.subjective_score && @exercise_user.subjective_score > 0 ?
@exercise_user.subjective_score : 0) + s_score
@exercise_user.update_attributes(:objective_score => s_score, :score => score)
unless @exercise_user.user.exercise_answer.exists?(:exercise_question_id =>
@exercise.exercise_questions.where(:question_type => 4))
@exercise_user.update_attributes(:subjective_score => 0)
end
end
end
member = @exercise.course.members.where(:user_id => User.current.id).first if @exercise_user.commit_status == 1
setting_time = exercise_group_setting @exercise, member.try(:course_group) if @exercise_user.commit_status == 1
if @exercise_user.commit_status == 1 && setting_time.end_time > Time.now
if @exercise.time == -1
@cancel_commit = true
else
@cancel_commit = (Time.now.to_i - @exercise_user.start_at.to_i) < @exercise.time.to_i * 60
if @exercise_user.commit_status == 1
member = @course.members.where(:user_id => User.current.id).first
setting_time = exercise_group_setting @exercise, member.try(:course_group)
if setting_time.end_time > Time.now
@cancel_commit = @exercise.time == -1 ? true : (Time.now.to_i - @exercise_user.start_at.to_i) < @exercise.time.to_i * 60
end
end

@ -6,5 +6,7 @@ class CreateLoginIpInfos < ActiveRecord::Migration
t.integer :status
t.timestamps
end
add_index :login_ip_infos, :user_id, :unique => true
end
end
Loading…
Cancel
Save