From fa4a2eb0ddb4cc0233dfd48d415ed4aaed5ce387 Mon Sep 17 00:00:00 2001 From: cxt Date: Tue, 15 Dec 2015 18:37:00 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9C=AA=E7=AD=94=E9=A2=98=E7=9A=84=E5=AD=A6?= =?UTF-8?q?=E7=94=9F=E6=B5=8B=E9=AA=8C=E5=88=86=E6=95=B0=E4=B8=BA0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/exercise_controller.rb | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/app/controllers/exercise_controller.rb b/app/controllers/exercise_controller.rb index 75751e4f7..73da3b9c4 100644 --- a/app/controllers/exercise_controller.rb +++ b/app/controllers/exercise_controller.rb @@ -1,8 +1,10 @@ class ExerciseController < ApplicationController 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_course, :only => [:index,:new,:create,:student_exercise_list] + 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,:student_exercise_list] + before_filter :find_course, :only => [:index,:new,:create] include ExerciseHelper def index @@ -354,8 +356,18 @@ class ExerciseController < ApplicationController end 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? - @exercise = Exercise.find params[:id] @all_exercises = @course.exercises.where("exercise_status > 1").order("created_at desc") @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) @@ -543,11 +555,11 @@ class ExerciseController < ApplicationController def show_student_result @user = User.find params[:user_id] @can_edit_excercise = false - @exercise_user = ExerciseUser.where("user_id =? and exercise_id=?", @user.id, @exercise.id).first @exercise_questions = @exercise.exercise_questions score = calculate_student_score(@exercise, @user) eu = get_exercise_user(@exercise.id, @user.id) eu.update_attributes(:score => score) + @exercise_user = ExerciseUser.where("user_id =? and exercise_id=?", @user.id, @exercise.id).first respond_to do |format| format.html {render :layout => 'base_courses'} end