|
|
|
@ -21,14 +21,12 @@ class ExerciseController < ApplicationController
|
|
|
|
|
render_403
|
|
|
|
|
return
|
|
|
|
|
end
|
|
|
|
|
# 问卷消息状态更新
|
|
|
|
|
# REDO:问卷添加消息
|
|
|
|
|
#已提交问卷的用户不能再访问该界面
|
|
|
|
|
if has_commit_exercise?(@poll.id,User.current.id) && (!User.current.admin?)
|
|
|
|
|
redirect_to poll_index_url(:polls_type => "Course", :polls_group_id => @course.id)
|
|
|
|
|
if has_commit_exercise?(@exercise.id, User.current.id) && (!User.current.admin?)
|
|
|
|
|
redirect_to poll_index_url(:course_id=> @course.id)
|
|
|
|
|
else
|
|
|
|
|
@can_edit_poll = (!has_commit_poll?(@poll.id,User.current.id)) || User.current.admin?
|
|
|
|
|
@percent = get_percent(@poll,User.current)
|
|
|
|
|
@can_edit_poll = (!has_commit_exercise?(@exercise.id,User.current.id)) || User.current.admin?
|
|
|
|
|
@percent = get_percent(@exercise,User.current)
|
|
|
|
|
poll_questions = @poll.poll_questions
|
|
|
|
|
@poll_questions = paginateHelper poll_questions,5 #分页
|
|
|
|
|
respond_to do |format|
|
|
|
|
@ -36,7 +34,6 @@ class ExerciseController < ApplicationController
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def new
|
|
|
|
|
option = {
|
|
|
|
@ -45,8 +42,8 @@ class ExerciseController < ApplicationController
|
|
|
|
|
:course_id => @course.id,
|
|
|
|
|
:exercise_status => 1,
|
|
|
|
|
:user_id => User.current.id,
|
|
|
|
|
:start_at => "",
|
|
|
|
|
:end_at => ""
|
|
|
|
|
:time => "",
|
|
|
|
|
:end_time => ""
|
|
|
|
|
}
|
|
|
|
|
@exercise = Exercise.create option
|
|
|
|
|
if @exercise
|
|
|
|
@ -92,7 +89,63 @@ class ExerciseController < ApplicationController
|
|
|
|
|
|
|
|
|
|
#统计结果
|
|
|
|
|
def statistics_result
|
|
|
|
|
@exercise = Exercise.find(params[:id])
|
|
|
|
|
exercise_questions = @exercise.poll_questions
|
|
|
|
|
@exercise_questions = paginateHelper exercise_questions, 5
|
|
|
|
|
respond_to do |format|
|
|
|
|
|
format.html{render :layout => 'base_courses'}
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
#添加题目
|
|
|
|
|
#question_type 1:单选 2:多选 3:填空题
|
|
|
|
|
def create_exercise_question
|
|
|
|
|
question_title = params[:exercise_questions_title].nil? || params[:poll_questions_title].empty? ? l(:label_enter_single_title) : params[:poll_questions_title]
|
|
|
|
|
option = {
|
|
|
|
|
:is_necessary => (params[:is_necessary]=="true" ? 1 : 0),
|
|
|
|
|
:question_title => question_title,
|
|
|
|
|
:question_type => params[:question_type] || 1,
|
|
|
|
|
:question_number => @poll.poll_questions.count + 1
|
|
|
|
|
}
|
|
|
|
|
@poll_questions = @poll.poll_questions.new option
|
|
|
|
|
if params[:question_answer]
|
|
|
|
|
for i in 1..params[:question_answer].count
|
|
|
|
|
answer = (params[:question_answer].values[i-1].nil? || params[:question_answer].values[i-1].empty?) ? l(:label_new_answer) : params[:question_answer].values[i-1]
|
|
|
|
|
question_option = {
|
|
|
|
|
:answer_position => i,
|
|
|
|
|
:answer_text => answer
|
|
|
|
|
}
|
|
|
|
|
@poll_questions.poll_answers.new question_option
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
# 如果是插入的话,那么从插入的这个id以后的question_num都将要+1
|
|
|
|
|
if params[:quest_id]
|
|
|
|
|
@is_insert = true
|
|
|
|
|
@poll.poll_questions.where("question_number > #{params[:quest_num].to_i}").update_all(" question_number = question_number + 1")
|
|
|
|
|
@poll_question_num = params[:quest_num].to_i
|
|
|
|
|
@poll_questions.question_number = params[:quest_num].to_i + 1
|
|
|
|
|
end
|
|
|
|
|
if @poll_questions.save
|
|
|
|
|
respond_to do |format|
|
|
|
|
|
format.js
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
#发布问卷
|
|
|
|
|
def publish_excercise
|
|
|
|
|
@exercise.exercise_status = 2
|
|
|
|
|
@exercise.publish_time = Time.now
|
|
|
|
|
if @exercise.save
|
|
|
|
|
if params[:is_remote]
|
|
|
|
|
redirect_to poll_index_url(:course_id => @course.id)
|
|
|
|
|
else
|
|
|
|
|
respond_to do |format|
|
|
|
|
|
format.js
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def student_exercise_list
|
|
|
|
|