未答题的学生测验分数为0

This commit is contained in:
cxt 2015-12-15 18:37:00 +08:00
parent f7a932d7b9
commit fa4a2eb0dd
1 changed files with 16 additions and 4 deletions

View File

@ -1,8 +1,10 @@
class ExerciseController < ApplicationController class ExerciseController < ApplicationController
layout "base_courses" layout "base_courses"
before_filter :find_exercise_and_course, :only => [:create_exercise_question, :edit, :update, :show, :destroy, :commit_exercise, :commit_answer,:publish_exercise,:republish_exercise,:show_student_result] before_filter :find_exercise_and_course, :only => [:create_exercise_question, :edit, :update, :show, :destroy,
before_filter :find_course, :only => [:index,:new,:create,:student_exercise_list] :commit_exercise, :commit_answer,:publish_exercise,:republish_exercise,
:show_student_result,:student_exercise_list]
before_filter :find_course, :only => [:index,:new,:create]
include ExerciseHelper include ExerciseHelper
def index def index
@ -354,8 +356,18 @@ class ExerciseController < ApplicationController
end end
def student_exercise_list def student_exercise_list
if @exercise.end_time <= Time.now
@course.student.each do |student|
if ExerciseUser.where("user_id = ? && exercise_id = ?",student.student_id,@exercise.id).empty?
ExerciseUser.create(:user_id => student.student_id, :exercise_id => @exercise.id, :start_at => @exercise.end_time, :status => false,:score=>0)
end
s_score = calculate_student_score(@exercise, student.student)
exercise_user = ExerciseUser.where("user_id =? and exercise_id=?", student.student_id, @exercise.id).first
exercise_user.update_attributes(:score => s_score)
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?
@exercise = Exercise.find params[:id]
@all_exercises = @course.exercises.where("exercise_status > 1").order("created_at desc") @all_exercises = @course.exercises.where("exercise_status > 1").order("created_at desc")
@exercise_count = @exercise.exercise_users.where('score is not NULL').count @exercise_count = @exercise.exercise_users.where('score is not NULL').count
if @is_teacher || (!@exercise.exercise_users.where(:user_id => User.current.id).empty? && @exercise.end_time <= Time.now) if @is_teacher || (!@exercise.exercise_users.where(:user_id => User.current.id).empty? && @exercise.end_time <= Time.now)
@ -543,11 +555,11 @@ class ExerciseController < ApplicationController
def show_student_result def show_student_result
@user = User.find params[:user_id] @user = User.find params[:user_id]
@can_edit_excercise = false @can_edit_excercise = false
@exercise_user = ExerciseUser.where("user_id =? and exercise_id=?", @user.id, @exercise.id).first
@exercise_questions = @exercise.exercise_questions @exercise_questions = @exercise.exercise_questions
score = calculate_student_score(@exercise, @user) score = calculate_student_score(@exercise, @user)
eu = get_exercise_user(@exercise.id, @user.id) eu = get_exercise_user(@exercise.id, @user.id)
eu.update_attributes(:score => score) eu.update_attributes(:score => score)
@exercise_user = ExerciseUser.where("user_id =? and exercise_id=?", @user.id, @exercise.id).first
respond_to do |format| respond_to do |format|
format.html {render :layout => 'base_courses'} format.html {render :layout => 'base_courses'}
end end