2015-01-12 16:56:53 +08:00
|
|
|
class PollController < ApplicationController
|
2015-01-13 15:59:02 +08:00
|
|
|
before_filter :find_poll_and_course, :only => [:edit,:update,:destroy,:show,:statistics_result]
|
2015-01-12 16:56:53 +08:00
|
|
|
before_filter :find_container, :only => [:new,:create, :index]
|
2015-01-13 10:23:26 +08:00
|
|
|
before_filter :is_member_of_course, :only => [:index,:show]
|
|
|
|
before_filter :is_course_teacher, :only => [:new,:create,:edit,:update,:destroy]
|
2015-01-12 16:56:53 +08:00
|
|
|
|
|
|
|
def index
|
|
|
|
if @course
|
2015-01-13 11:44:28 +08:00
|
|
|
@is_teacher = User.current.allowed_to?(:as_teacher,@course)
|
|
|
|
polls = Poll.where("polls_type = 'Course' and polls_group_id = #{@course.id}")
|
|
|
|
@polls = paginateHelper polls,10 #分页
|
2015-01-12 16:56:53 +08:00
|
|
|
respond_to do |format|
|
|
|
|
format.html{render :layout => 'base_courses'}
|
|
|
|
end
|
|
|
|
elsif @project
|
|
|
|
#项目的问卷调查相关代码
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
def show
|
|
|
|
@poll = Poll.find params[:id]
|
2015-01-13 15:59:02 +08:00
|
|
|
@poll_questions = @poll.poll_questions
|
|
|
|
|
|
|
|
respond_to do |format|
|
|
|
|
format.html {render :layout => 'base_courses'}
|
|
|
|
end
|
2015-01-12 16:56:53 +08:00
|
|
|
end
|
|
|
|
|
|
|
|
def new
|
|
|
|
if @course
|
|
|
|
option = {
|
|
|
|
:polls_name => l(:label_poll_new),
|
|
|
|
:polls_type => @course.class.to_s,
|
|
|
|
:polls_group_id => @course.id,
|
|
|
|
:polls_status => 1,
|
|
|
|
:user_id => User.current.id,
|
|
|
|
:published_at => Time.now,
|
|
|
|
:closed_at => Time.now,
|
|
|
|
:polls_description => ""
|
|
|
|
}
|
|
|
|
@poll = Poll.create option
|
|
|
|
if @poll
|
|
|
|
respond_to do |format|
|
|
|
|
format.html{render :layout => 'base_courses'}
|
|
|
|
end
|
|
|
|
end
|
|
|
|
elsif @project
|
|
|
|
#项目的问卷调查相关代码
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
def create
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
def edit
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
def update
|
|
|
|
@poll.polls_name = params[:polls_name]
|
|
|
|
if @poll.save
|
|
|
|
respond_to do |format|
|
|
|
|
format.html { redirect_to poll_index_url(:polls_type => @course.class.to_s, :polls_group_id => @course.id) }
|
|
|
|
end
|
|
|
|
else
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
def destroy
|
2015-01-12 17:55:22 +08:00
|
|
|
if @poll && @poll.destroy
|
2015-01-12 16:56:53 +08:00
|
|
|
respond_to do |format|
|
|
|
|
format.js
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2015-01-13 15:59:02 +08:00
|
|
|
def statistics_result
|
|
|
|
respond_to do |format|
|
|
|
|
format.html{render :layout => 'base_courses'}
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2015-01-13 20:13:50 +08:00
|
|
|
#添加单选题
|
|
|
|
def add_mc
|
|
|
|
|
|
|
|
end
|
|
|
|
|
2015-01-12 16:56:53 +08:00
|
|
|
private
|
|
|
|
def find_poll_and_course
|
|
|
|
@poll = Poll.find params[:id]
|
|
|
|
@course = Course.find @poll.polls_group_id
|
|
|
|
rescue Exception => e
|
|
|
|
render_404
|
|
|
|
end
|
|
|
|
|
|
|
|
def find_container
|
|
|
|
if params[:polls_type] && params[:polls_group_id]
|
|
|
|
case params[:polls_type]
|
|
|
|
when "Course"
|
|
|
|
@course = Course.find_by_id params[:polls_group_id]
|
|
|
|
when "Project"
|
|
|
|
@project = Project.find_by_id params[:polls_group_id]
|
|
|
|
end
|
|
|
|
else
|
|
|
|
render_404
|
|
|
|
end
|
|
|
|
end
|
2015-01-13 10:23:26 +08:00
|
|
|
|
|
|
|
def is_member_of_course
|
|
|
|
render_403 unless(@course && User.current.member_of_course?(@course))
|
|
|
|
end
|
|
|
|
|
|
|
|
def is_course_teacher
|
2015-01-13 11:44:28 +08:00
|
|
|
render_403 unless(@course && User.current.allowed_to?(:as_teacher,@course))
|
2015-01-13 10:23:26 +08:00
|
|
|
end
|
2015-01-12 16:56:53 +08:00
|
|
|
end
|