问卷调查增加重新发布功能

This commit is contained in:
sw 2015-01-20 11:42:28 +08:00
parent e493ae22cf
commit 7b9d88ecfe
5 changed files with 63 additions and 41 deletions

View File

@ -1,8 +1,8 @@
class PollController < ApplicationController class PollController < ApplicationController
before_filter :find_poll_and_course, :only => [:edit,:update,:destroy,:show,:statistics_result,:create_poll_question,:commit_poll,:commit_answer,:publish_poll] before_filter :find_poll_and_course, :only => [:edit,:update,:destroy,:show,:statistics_result,:create_poll_question,:commit_poll,:commit_answer,:publish_poll,:republish_poll]
before_filter :find_container, :only => [:new,:create, :index] before_filter :find_container, :only => [:new,:create, :index]
before_filter :is_member_of_course, :only => [:index,:show] before_filter :is_member_of_course, :only => [:index,:show]
before_filter :is_course_teacher, :only => [:new,:create,:edit,:update,:destroy,:publish_poll] before_filter :is_course_teacher, :only => [:new,:create,:edit,:update,:destroy,:publish_poll,:republish_poll]
include PollHelper include PollHelper
def index def index
if @course if @course
@ -311,6 +311,19 @@ class PollController < ApplicationController
end end
end end
#重新发布问卷
def republish_poll
@poll.poll_questions.each do |poll_question|
poll_question.poll_votes.destroy_all
end
@poll.poll_users.destroy_all
@poll.polls_status = 1
@poll.save
respond_to do |format|
format.js
end
end
private private
def find_poll_and_course def find_poll_and_course
@poll = Poll.find params[:id] @poll = Poll.find params[:id]
@ -337,7 +350,8 @@ class PollController < ApplicationController
end end
def is_course_teacher def is_course_teacher
render_403 unless(@course && User.current.allowed_to?(:as_teacher,@course)) @is_teacher = User.current.allowed_to?(:as_teacher,@course)
render_403 unless(@course && @is_teacher)
end end
#获取未完成的题目 #获取未完成的题目

View File

@ -0,0 +1,43 @@
<li title="<%= poll.polls_name %>">
<% if @is_teacher %>
<% if has_commit_poll?(poll.id ,User.current) %>
<sapn class="polls_title fl"> <%= poll.polls_name %></sapn>
<% else %>
<%= link_to poll.polls_name, poll_path(poll.id), :class => "polls_title fl" %>
<% end %>
<% else %>
<% if has_commit_poll?(poll.id ,User.current) && poll.polls_status == 2 %>
<sapn class="polls_title fl" >
<%= poll.polls_name %>
</sapn>
<% elsif (!has_commit_poll?(poll.id ,User.current)) && poll.polls_status == 2 %>
<%= link_to poll.polls_name, poll_path(poll.id), :class => "polls_title fl" %>
<% end %>
<% end %>
</li>
<li>
<%if @is_teacher && poll.polls_status == 2%>
<%= link_to l(:label_statistical_results), statistics_result_poll_path(poll.id), :class => "pollsbtn fl ml10"%>
<% end%>
</li>
<li>
<% if @is_teacher %>
<!--新建状态的问卷可删除-->
<%= link_to(l(:button_delete), poll,
method: :delete, :confirm => l(:text_are_you_sure), :remote => true, :class => "polls_de fr ml20 mr10") %>
<% end%>
</li>
<li>
<% if @is_teacher && poll.polls_status == 1%>
<!--新建状态的问卷可编辑-->
<%= link_to l(:button_edit), edit_poll_path(poll.id), :class => "polls_de fr ml20"%>
<% end%>
</li>
<li>
<% if @is_teacher && poll.polls_status == 2%>
<%= link_to "重新发布", republish_poll_poll_path(poll.id), :remote => true, :class => 'polls_de fr ml20' %>
<% end %>
</li>
<li class="polls_date fr">
<%= format_time poll.created_at%>
</li>

View File

@ -12,44 +12,7 @@
<div class="polls_list"> <div class="polls_list">
<% @polls.each do |poll|%> <% @polls.each do |poll|%>
<ul id="polls_<%= poll.id %>"> <ul id="polls_<%= poll.id %>">
<li title="<%= poll.polls_name %>"> <%= render :partial => 'poll', :locals => {:poll => poll} %>
<% if @is_teacher %>
<% if has_commit_poll?(poll.id ,User.current) %>
<sapn class="polls_title fl"> <%= poll.polls_name %></sapn>
<% else %>
<%= link_to poll.polls_name, poll_path(poll.id), :class => "polls_title fl" %>
<% end %>
<% else %>
<% if has_commit_poll?(poll.id ,User.current) && poll.polls_status == 2 %>
<sapn class="polls_title fl" >
<%= poll.polls_name %>
</sapn>
<% elsif (!has_commit_poll?(poll.id ,User.current)) && poll.polls_status == 2 %>
<%= link_to poll.polls_name, poll_path(poll.id), :class => "polls_title fl" %>
<% end %>
<% end %>
</li>
<li>
<%if @is_teacher && poll.polls_status == 2%>
<%= link_to l(:label_statistical_results), statistics_result_poll_path(poll.id), :class => "pollsbtn fl ml10"%>
<% end%>
</li>
<li>
<% if @is_teacher %>
<!--新建状态的问卷可删除-->
<%= link_to(l(:button_delete), poll,
method: :delete, :confirm => l(:text_are_you_sure), :remote => true, :class => "polls_de fr ml20 mr10") %>
<% end%>
</li>
<li>
<% if @is_teacher && poll.polls_status == 1%>
<!--新建状态的问卷可编辑-->
<%= link_to l(:button_edit), edit_poll_path(poll.id), :class => "polls_de fr ml20"%>
<% end%>
</li>
<li class="polls_date fr">
<%= format_time poll.created_at%>
</li>
</ul> </ul>
<div class="cl"></div> <div class="cl"></div>
<% end%> <% end%>

View File

@ -0,0 +1 @@
$("#polls_<%= @poll.id %>").html("<%= escape_javascript(render :partial => 'poll',:locals => {:poll => @poll}) %>");

View File

@ -65,6 +65,7 @@ RedmineApp::Application.routes.draw do
post 'create_poll_question' post 'create_poll_question'
post 'commit_poll' post 'commit_poll'
get 'publish_poll' get 'publish_poll'
get 'republish_poll'
end end
collection do collection do
delete 'delete_poll_question' delete 'delete_poll_question'