|
|
|
@ -3,7 +3,7 @@ class ExerciseController < ApplicationController
|
|
|
|
|
|
|
|
|
|
before_filter :find_exercise_and_course, :only => [:create_exercise_question, :edit, :update, :show]
|
|
|
|
|
before_filter :find_course, :only => [:index,:new,:create,:student_exercise_list]
|
|
|
|
|
helper :Exercise
|
|
|
|
|
include ExerciseHelper
|
|
|
|
|
|
|
|
|
|
include ExerciseHelper
|
|
|
|
|
def index
|
|
|
|
@ -30,8 +30,8 @@ class ExerciseController < ApplicationController
|
|
|
|
|
if has_commit_exercise?(@exercise.id, User.current.id) && (!User.current.admin?)
|
|
|
|
|
redirect_to exercise_index_url(:course_id=> @course.id)
|
|
|
|
|
else
|
|
|
|
|
@can_edit_poll = (!has_commit_exercise?(@exercise.id,User.current.id)) || User.current.admin?
|
|
|
|
|
@percent = get_percent(@exercise,User.current)
|
|
|
|
|
@can_edit_excercise = (!has_commit_exercise?(@exercise.id,User.current.id)) || User.current.admin?
|
|
|
|
|
# @percent = get_percent(@exercise,User.current)
|
|
|
|
|
exercise_questions = @exercise.exercise_questions
|
|
|
|
|
@exercise_questions = paginateHelper exercise_questions,5 #分页
|
|
|
|
|
respond_to do |format|
|
|
|
|
@ -146,7 +146,7 @@ class ExerciseController < ApplicationController
|
|
|
|
|
if @exercise_questions.save
|
|
|
|
|
standart_answer = ExerciseStandardAnswer.new
|
|
|
|
|
standart_answer.exercise_question_id = @exercise_questions.id
|
|
|
|
|
@exercise_questions.question_type == 3 ? standart_answer.answer_text = params[:exercise_choice] : standart_answer.exercise_choice_id = params[:exercise_choice]
|
|
|
|
|
@exercise_questions.question_type == 3 ? standart_answer.answer_text = translate_standard_answer(params[:exercise_choice]) : standart_answer.exercise_choice_id = translate_standard_answer(params[:exercise_choice])
|
|
|
|
|
standart_answer.save
|
|
|
|
|
respond_to do |format|
|
|
|
|
|
format.js
|
|
|
|
@ -240,6 +240,35 @@ class ExerciseController < ApplicationController
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
private
|
|
|
|
|
# 获取问题的答案
|
|
|
|
|
def get_user_answer(question,user)
|
|
|
|
|
user_answer = question.poll_votes.where("#{PollVote.table_name}.user_id = #{user.id}")
|
|
|
|
|
user_answer
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
# 是否完成了答题
|
|
|
|
|
def get_complete_question(exercise,user)
|
|
|
|
|
questions = exercise.exercise_questions
|
|
|
|
|
complete_question = []
|
|
|
|
|
questions.each do |question|
|
|
|
|
|
answers = get_user_answer(question,user)
|
|
|
|
|
if !(answers.nil? || answers.count < 1)
|
|
|
|
|
complete_question << question
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
complete_question
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def get_percent exercise,user
|
|
|
|
|
complete_count = get_complete_question(exercise,user).count
|
|
|
|
|
if exercise.exercise_questions.count == 0
|
|
|
|
|
return 0
|
|
|
|
|
else
|
|
|
|
|
return (complete_count.to_f / exercise.exercise_questions.count.to_f)*100
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def remove_invalid_exercise(course)
|
|
|
|
|
exercises = course.exercises.where("exercise_name=?","")
|
|
|
|
|
unless exercises.empty?
|
|
|
|
|