|
|
|
@ -1,5 +1,5 @@
|
|
|
|
|
class PollController < ApplicationController
|
|
|
|
|
before_filter :find_poll_and_course, :only => [:edit,:update,:destroy,:show,:statistics_result,:create_poll_question]
|
|
|
|
|
before_filter :find_poll_and_course, :only => [:edit,:update,:destroy,:show,:statistics_result,:create_poll_question,:commit_poll]
|
|
|
|
|
before_filter :find_container, :only => [:new,:create, :index]
|
|
|
|
|
before_filter :is_member_of_course, :only => [:index,:show]
|
|
|
|
|
before_filter :is_course_teacher, :only => [:new,:create,:edit,:update,:destroy]
|
|
|
|
@ -146,8 +146,20 @@ class PollController < ApplicationController
|
|
|
|
|
render :text => "failure"
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
elsif pq.question_type == 3
|
|
|
|
|
elsif pq.question_type == 4
|
|
|
|
|
elsif pq.question_type == 3 || pq.question_type == 4
|
|
|
|
|
pv = PollVote.find_by_poll_question_id_and_user_id(params[:poll_question_id],User.current.id)
|
|
|
|
|
if pv.nil?
|
|
|
|
|
pv = PollVote.new
|
|
|
|
|
pv.user_id = User.current.id
|
|
|
|
|
pv.poll_question_id = params[:poll_question_id]
|
|
|
|
|
end
|
|
|
|
|
pv.vote_text = params[:vote_text]
|
|
|
|
|
if pv.save
|
|
|
|
|
render :text => pv.vote_text
|
|
|
|
|
else
|
|
|
|
|
render :text => "failure"
|
|
|
|
|
end
|
|
|
|
|
else
|
|
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
@ -159,6 +171,24 @@ class PollController < ApplicationController
|
|
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
#提交问卷
|
|
|
|
|
def commit_poll
|
|
|
|
|
@uncomplete_question = get_uncomplete_question(@poll)
|
|
|
|
|
if @uncomplete_question.count < 1
|
|
|
|
|
pu = get_poll_user(@poll.id,User.current.id)
|
|
|
|
|
pu.user_id = User.current.id
|
|
|
|
|
pu.poll_id = @poll.id
|
|
|
|
|
if pu.save
|
|
|
|
|
#redirect_to poll_index_path(:polls_group_id => @course.id,:polls_type => 'Course')
|
|
|
|
|
end
|
|
|
|
|
else
|
|
|
|
|
|
|
|
|
|
end
|
|
|
|
|
respond_to do |format|
|
|
|
|
|
format.js
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
private
|
|
|
|
|
def find_poll_and_course
|
|
|
|
|
@poll = Poll.find params[:id]
|
|
|
|
@ -187,4 +217,25 @@ class PollController < ApplicationController
|
|
|
|
|
def is_course_teacher
|
|
|
|
|
render_403 unless(@course && User.current.allowed_to?(:as_teacher,@course))
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
#获取未完成的题目
|
|
|
|
|
def get_uncomplete_question poll
|
|
|
|
|
necessary_questions = poll.poll_questions.where("#{PollQuestion.table_name}.is_necessary = 1")
|
|
|
|
|
uncomplete_question = []
|
|
|
|
|
necessary_questions.each do |question|
|
|
|
|
|
if question.poll_votes.nil? || question.poll_votes.count < 1
|
|
|
|
|
uncomplete_question << question
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
uncomplete_question
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
#PollUser记录用户是否已提交问卷有对应的记录则已提交,没有则新建一个
|
|
|
|
|
def get_poll_user poll_id,user_id
|
|
|
|
|
pu = PollUser.find_by_poll_id_and_user_id(poll_id,user_id)
|
|
|
|
|
if pu.nil?
|
|
|
|
|
pu = PollUser.new
|
|
|
|
|
end
|
|
|
|
|
pu
|
|
|
|
|
end
|
|
|
|
|
end
|