导入作者是我,但是问卷在其他课程里的问卷,可以多选
This commit is contained in:
parent
4767c2827f
commit
5d82f3336e
|
@ -410,6 +410,68 @@ class PollController < ApplicationController
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# 将其他地方的问卷导出来
|
||||||
|
def other_poll
|
||||||
|
# 查作者是我,且不在当前课程内的问卷 进行导入
|
||||||
|
@polls = Poll.where("user_id = #{User.current.id} and polls_type = 'course' and polls_group_id != #{params[:polls_group_id]}")
|
||||||
|
@polls_group_id = params[:polls_group_id]
|
||||||
|
respond_to do |format|
|
||||||
|
format.js
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# 将问卷导入本课程
|
||||||
|
def import_other_poll
|
||||||
|
course_id = params[:course_id]
|
||||||
|
@course = Course.find(course_id)
|
||||||
|
params[:polls].each_with_index do |p,i|
|
||||||
|
poll = Poll.find(p)
|
||||||
|
option = {
|
||||||
|
:polls_name => poll.polls_name,
|
||||||
|
:polls_type => 'Course',
|
||||||
|
:polls_group_id => course_id,
|
||||||
|
:polls_status => 1,
|
||||||
|
:user_id => User.current.id,
|
||||||
|
:published_at => Time.now,
|
||||||
|
:closed_at => Time.now,
|
||||||
|
:show_result => 1,
|
||||||
|
:polls_description => poll.polls_description
|
||||||
|
}
|
||||||
|
@poll = Poll.create option
|
||||||
|
|
||||||
|
poll.poll_questions.each do | q|
|
||||||
|
#question_title = params[:poll_questions_title].nil? || params[:poll_questions_title].empty? ? l(:label_enter_single_title) : params[:poll_questions_title]
|
||||||
|
option = {
|
||||||
|
:is_necessary => q[:is_necessary],
|
||||||
|
:question_title => q[:question_title],
|
||||||
|
:question_type => q[:question_type] || 1,
|
||||||
|
:question_number => q[:question_number]
|
||||||
|
}
|
||||||
|
@poll_questions = @poll.poll_questions.new option
|
||||||
|
|
||||||
|
for i in 1..q.poll_answers.count
|
||||||
|
answer = q.poll_answers[i-1].nil? ? l(:label_new_answer) : q.poll_answers[i-1][:answer_text]
|
||||||
|
question_option = {
|
||||||
|
:answer_position => i,
|
||||||
|
:answer_text => answer
|
||||||
|
}
|
||||||
|
@poll_questions.poll_answers.new question_option
|
||||||
|
end
|
||||||
|
end
|
||||||
|
@poll.save
|
||||||
|
end
|
||||||
|
@is_teacher = User.current.allowed_to?(:as_teacher,@course)
|
||||||
|
if @is_teacher
|
||||||
|
polls = Poll.where("polls_type = 'Course' and polls_group_id = #{@course.id}")
|
||||||
|
else
|
||||||
|
polls = Poll.where("polls_type = 'Course' and polls_group_id = #{@course.id} and polls_status = 2")
|
||||||
|
end
|
||||||
|
@polls = paginateHelper polls,20 #分页
|
||||||
|
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]
|
||||||
|
|
|
@ -74,4 +74,13 @@ module PollHelper
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
#带勾选框的问卷列表
|
||||||
|
def poll_check_box_tags(name,polls,current_poll)
|
||||||
|
s = ''
|
||||||
|
polls.each do |poll|
|
||||||
|
s << "<label>#{ check_box_tag name, poll.id, false, :id => nil } #{h poll.polls_name} [#{ h Course.find(poll.polls_group_id).name}]</label><br/>"
|
||||||
|
end
|
||||||
|
s.html_safe
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
|
@ -41,6 +41,7 @@
|
||||||
<li class="polls_de_grey fr ml5">导出</li>
|
<li class="polls_de_grey fr ml5">导出</li>
|
||||||
<% elsif poll.polls_status == 2 || poll.polls_status == 3 %>
|
<% elsif poll.polls_status == 2 || poll.polls_status == 3 %>
|
||||||
<li><%= link_to "导出", export_poll_poll_path(poll.id,:format => "xls"), :class => "polls_de fr ml5"%></li>
|
<li><%= link_to "导出", export_poll_poll_path(poll.id,:format => "xls"), :class => "polls_de fr ml5"%></li>
|
||||||
|
|
||||||
<% end%>
|
<% end%>
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -3,20 +3,14 @@
|
||||||
<span>(<%= @obj_count%>)</span>
|
<span>(<%= @obj_count%>)</span>
|
||||||
</h2>
|
</h2>
|
||||||
<% if @is_teacher%>
|
<% if @is_teacher%>
|
||||||
|
<%= link_to "导入", other_poll_poll_index_path(:polls_group_id => @course.id), :remote=>true,:class => "newbtn"%>
|
||||||
<%= link_to l(:label_new_poll), new_poll_path(:polls_type => "Course",:polls_group_id => @course.id), :class => "newbtn" %>
|
<%= link_to l(:label_new_poll), new_poll_path(:polls_type => "Course",:polls_group_id => @course.id), :class => "newbtn" %>
|
||||||
<% end%>
|
<% end%>
|
||||||
</div>
|
</div>
|
||||||
<div class="cl"></div>
|
<div class="cl"></div>
|
||||||
<div class="polls_list">
|
<div id="polls_list" class="polls_list">
|
||||||
<% @polls.each do |poll|%>
|
|
||||||
<ul id="polls_<%= poll.id %>" class="polls_list_ul">
|
<%= render :partial => 'polls_list', :locals => {:polls => @polls,:obj_pages=>@obj_pages,:obj_count=>@obj_count} %>
|
||||||
<%= render :partial => 'poll', :locals => {:poll => poll} %>
|
|
||||||
</ul>
|
|
||||||
<div class="cl"></div>
|
|
||||||
<% end%>
|
|
||||||
|
|
||||||
<ul class="wlist">
|
|
||||||
<%= pagination_links_full @obj_pages, @obj_count, :per_page_links => false, :remote => false, :flag => true%>
|
|
||||||
</ul>
|
|
||||||
<div class="cl"></div>
|
<div class="cl"></div>
|
||||||
</div><!--列表end-->
|
</div><!--列表end-->
|
|
@ -80,6 +80,11 @@
|
||||||
$('#ajax-modal').parent().css("top","").css("left","");
|
$('#ajax-modal').parent().css("top","").css("left","");
|
||||||
$('#ajax-modal').parent().addClass("popbox_polls");
|
$('#ajax-modal').parent().addClass("popbox_polls");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function closeModal()
|
||||||
|
{
|
||||||
|
hideModal($("#popbox_upload"));
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
<div class="polls_content02" id="polls">
|
<div class="polls_content02" id="polls">
|
||||||
<%= render :partial => 'poll_list'%>
|
<%= render :partial => 'poll_list'%>
|
||||||
|
|
|
@ -83,10 +83,13 @@ RedmineApp::Application.routes.draw do
|
||||||
get 'close_poll'
|
get 'close_poll'
|
||||||
get 'export_poll'
|
get 'export_poll'
|
||||||
get 'import_poll'
|
get 'import_poll'
|
||||||
|
|
||||||
end
|
end
|
||||||
collection do
|
collection do
|
||||||
delete 'delete_poll_question'
|
delete 'delete_poll_question'
|
||||||
post 'update_poll_question'
|
post 'update_poll_question'
|
||||||
|
get 'other_poll'
|
||||||
|
post 'import_other_poll'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -130,7 +130,7 @@ a:hover.btn_de{ background:#ff5d31;}
|
||||||
a.btn_pu{ border:1px solid #3cb761; color:#3cb761; }
|
a.btn_pu{ border:1px solid #3cb761; color:#3cb761; }
|
||||||
a:hover.btn_pu{ background:#3cb761;}
|
a:hover.btn_pu{ background:#3cb761;}
|
||||||
.pollsbtn_grey{ border:1px solid #b1b1b1; color:#b1b1b1; padding:0px 9px; height:19px; padding-top:3px; }
|
.pollsbtn_grey{ border:1px solid #b1b1b1; color:#b1b1b1; padding:0px 9px; height:19px; padding-top:3px; }
|
||||||
.polls_title_w { width:300px; overflow: hidden;white-space: nowrap;text-overflow: ellipsis;}
|
.polls_title_w { width:280px; overflow: hidden;white-space: nowrap;text-overflow: ellipsis;}
|
||||||
.polls_title_st { max-width:530px; overflow: hidden;white-space: nowrap;text-overflow: ellipsis;}
|
.polls_title_st { max-width:530px; overflow: hidden;white-space: nowrap;text-overflow: ellipsis;}
|
||||||
.polls_de_grey{ color:#b1b1b1; margin-top:3px;}
|
.polls_de_grey{ color:#b1b1b1; margin-top:3px;}
|
||||||
.ml5{ margin-left:5px;}
|
.ml5{ margin-left:5px;}
|
||||||
|
|
Loading…
Reference in New Issue