Merge branch 'sw_new_course' of http://repository.trustie.net/xianbo/trustie2 into sw_new_course

Conflicts:
	app/helpers/exercise_helper.rb

解决冲突
sw_new_course
huang 10 years ago
commit 7f5fa7fb6f

@ -5,6 +5,7 @@ class ExerciseController < ApplicationController
before_filter :find_course, :only => [:index,:new,:create,:student_exercise_list] before_filter :find_course, :only => [:index,:new,:create,:student_exercise_list]
include ExerciseHelper include ExerciseHelper
include ExerciseHelper
def index def index
remove_invalid_exercise(@course) remove_invalid_exercise(@course)
@is_teacher = User.current.allowed_to?(:as_teacher,@course) @is_teacher = User.current.allowed_to?(:as_teacher,@course)

@ -8,7 +8,7 @@ module ExerciseHelper
#判断用户是否已经提交了问卷 #判断用户是否已经提交了问卷
def has_commit_exercise?(exercise_id, user_id) def has_commit_exercise?(exercise_id, user_id)
pu = PollUser.find_by_poll_id_and_user_id(exercise_id, user_id) pu = ExerciseUser.find_by_excercise_id_and_user_id(exercise_id, user_id)
if pu.nil? if pu.nil?
false false
else else
@ -16,4 +16,13 @@ module ExerciseHelper
end end
end end
def convert_to_char(str)
result = ""
if str.count >= 1
for i in 0 .. str.count do i
result += (str[i].to_i + 64).chr
end
end
end
end end

@ -7,14 +7,14 @@
<!--<label class="fl c_grey f14" style="margin-top: 4px;">发布日期(可选)</label>--> <!--<label class="fl c_grey f14" style="margin-top: 4px;">发布日期(可选)</label>-->
<%# end %> <%# end %>
<div class="calendar_div fl mr10"> <div class="calendar_div fl mr10">
<input type="text" name="exercise[publish_time]" id="exercise_publish_time" placeholder="发布时间" class="InputBox fl W120 calendar_input" readonly="readonly" value="<%= exercise.publish_time%>" > <input type="text" name="exercise[publish_time]" id="exercise_publish_time" placeholder="发布时间" class="InputBox fl W120 calendar_input" readonly="readonly" value="<%= Time.parse(format_time(exercise.publish_time)).strftime("%Y-%m-%d") if exercise.publish_time %>" >
<%= calendar_for('exercise_publish_time')%> <%= calendar_for('exercise_publish_time')%>
</div> </div>
<%# if edit_mode %> <%# if edit_mode %>
<!--<label class="fl c_grey f14" style="margin-top: 4px;">截止日期:</label>--> <!--<label class="fl c_grey f14" style="margin-top: 4px;">截止日期:</label>-->
<%# end %> <%# end %>
<div class="calendar_div fl"> <div class="calendar_div fl">
<input type="text" name="exercise[end_time]" id="exercise_end_time" placeholder="截止时间" class="InputBox fl W120 calendar_input" readonly="readonly" value="<%= exercise.end_time%>" > <input type="text" name="exercise[end_time]" id="exercise_end_time" placeholder="截止时间" class="InputBox fl W120 calendar_input" readonly="readonly" value="<%= Time.parse(format_time(exercise.end_time)).strftime("%Y-%m-%d") if exercise.end_time %>" >
<%= calendar_for('exercise_end_time')%> <%= calendar_for('exercise_end_time')%>
</div> </div>
<div class="fl ml10 f14 fontGrey2"><span class="mr5">考试时长:</span><input name="exercise[time]" id="exercise_time" type="text" class="examTime mr5" value="<%=exercise.time %>" />分钟</div> <div class="fl ml10 f14 fontGrey2"><span class="mr5">考试时长:</span><input name="exercise[time]" id="exercise_time" type="text" class="examTime mr5" value="<%=exercise.time %>" />分钟</div>

@ -1,22 +1,21 @@
<% exercise.exercise_questions.each do |exercise_question|%>
<% exercise.exercise_questions.each do |poll_question|%> <div id="poll_questions_<%= exercise_question.id%>">
<div id="poll_questions_<%= poll_question.id%>"> <div id="show_poll_questions_<%= exercise_question.id %>">
<!--<div id="show_poll_questions_<%= poll_question.id %>"> <% if exercise_question.question_type == 1%>
<%# if poll_question.question_type == 1%> <%= render :partial => 'show_MC', :locals => {:exercise_question => exercise_question} %>
<%#= render :partial => 'show_MC', :locals => {:poll_question => poll_question} %> <% elsif exercise_question.question_type == 2%>
<%# elsif poll_question.question_type == 2%> <%= render :partial => 'show_MCQ', :locals => {:exercise_question => exercise_question} %>
<%#= render :partial => 'show_MCQ', :locals => {:poll_question => poll_question} %> <% elsif exercise_question.question_type == 3%>
<%# elsif poll_question.question_type == 3%> <%= render :partial => 'show_single', :locals => {:exercise_question => exercise_question} %>
<%#= render :partial => 'show_single', :locals => {:poll_question => poll_question} %> <% end%>
<%# end%> </div>
</div>--> <div id="edit_poll_questions_<%= exercise_question.id %>" style="display: none;">
<div id="edit_poll_questions_<%= poll_question.id %>" style="display: none;"> <% if exercise_question.question_type == 1%>
<% if poll_question.question_type == 1%> <%= render :partial => 'edit_MC', :locals => {:exercise_question => exercise_question} %>
<%= render :partial => 'edit_MC', :locals => {:poll_question => poll_question} %> <% elsif exercise_question.question_type == 2%>
<% elsif poll_question.question_type == 2%> <%= render :partial => 'edit_MCQ', :locals => {:exercise_question => exercise_question} %>
<%= render :partial => 'edit_MCQ', :locals => {:poll_question => poll_question} %> <% elsif exercise_question.question_type == 3%>
<% elsif poll_question.question_type == 3%> <%= render :partial => 'edit_single', :locals => {:exercise_question => exercise_question} %>
<%= render :partial => 'edit_single', :locals => {:poll_question => poll_question} %>
<% end%> <% end%>
</div> </div>
</div> </div>

@ -231,7 +231,7 @@
//添加标题时确定按钮 //添加标题时确定按钮
function add_poll_question(doc) function add_poll_question(doc)
{ {
var title = $.trim($("#question_title").val()); var title = $.trim($("#poll_questions_title").val());
if(title.length == 0){alert("标题不能为空");}else{doc.parent().parent().parent().submit();} if(title.length == 0){alert("标题不能为空");}else{doc.parent().parent().parent().submit();}
} }
//修改标题时确定按钮 //修改标题时确定按钮
@ -340,7 +340,7 @@
<div class="ur_buttons"> <a class="ur_button_submit" onclick="poll_submit();"> 提交 </a> <div class="ur_buttons"> <a class="ur_button_submit" onclick="poll_submit();"> 提交 </a>
<div class="polls_cha"> <div class="polls_cha">
<input name="" value="" type="checkbox"> <input name="show_result" value="" type="checkbox">
<label for="">允许学生查看测验结果</label> <label for="">允许学生查看测验结果</label>
</div> </div>
</div> </div>

@ -9,10 +9,15 @@
<div class="ur_editor_title"> <div class="ur_editor_title">
<label>问题:&nbsp;&nbsp;</label> <label>问题:&nbsp;&nbsp;</label>
<input name="question_type" value="1" type="hidden"> <input name="question_type" value="1" type="hidden">
<input name="question_title" id="question_title" class="questionTitle" placeholder="请输入单选题题目" type="text"> <input name="question_title" id="poll_questions_title" class="questionTitle" placeholder="请输入单选题题目" type="text">
</div> </div>
<div class="ur_editor_content"> <div class="ur_editor_content">
<ul> <ul>
<li class="ur_item">
<label>分数<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label>
<input type="text" name="question_score" style="width:40px; text-align:center; padding-left:0px;">分
</li>
<div class="cl"></div>
<li class="ur_item"> <li class="ur_item">
<label>选项<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label> <label>选项<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label>
<input maxlength="200" type='text' name='question_answer[0]' placeholder='新建选项'> <input maxlength="200" type='text' name='question_answer[0]' placeholder='新建选项'>

@ -6,34 +6,49 @@
</div> </div>
<div class="ur_editor_content"> <div class="ur_editor_content">
<ul> <ul>
<li class="ur_item">
<label>分数<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label>
<input type="text" name="question_score" style="width:40px; text-align:center; padding-left:0px;">分
</li>
<div class="cl"></div>
<li class="ur_item"> <li class="ur_item">
<label>选项<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label> <label>选项<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label>
<input placeholder="新建选项" type="text"> <input maxlength="200" type='text' name='question_answer[0]' placeholder='新建选项'>
<a class="icon_add" title="向下插入选项" onclick="add_single_answer($(this));"></a> <a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a> </li> <a class="icon_add" title="向下插入选项" onclick="add_single_answer($(this));"></a>
<a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a>
</li>
<div class="cl"></div> <div class="cl"></div>
<li class="ur_item"> <li class="ur_item">
<label>选项<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label> <label>选项<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label>
<input placeholder="新建选项" type="text"> <input maxlength="200" type='text' name='question_answer[1]' placeholder='新建选项'>
<a class="icon_add" title="向下插入选项" onclick="add_single_answer($(this));"></a> <a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a> </li> <a class="icon_add" title="向下插入选项" onclick="add_single_answer($(this));"></a>
<a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a>
</li>
<div class="cl"></div> <div class="cl"></div>
<li class="ur_item"> <li class="ur_item">
<label>选项<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label> <label>选项<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label>
<input placeholder="新建选项" type="text"> <input maxlength="200" type='text' name='question_answer[2]' placeholder='新建选项'>
<a class="icon_add" title="向下插入选项" onclick="add_single_answer($(this));"></a> <a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a> </li> <a class="icon_add" title="向下插入选项" onclick="add_single_answer($(this));"></a>
<a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a>
</li>
<div class="cl"></div> <div class="cl"></div>
<li class="ur_item"> <li class="ur_item">
<label>选项<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label> <label>选项<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label>
<input placeholder="新建选项" type="text"> <input maxlength="200" type='text' name='question_answer[3]' placeholder='新建选项'>
<a class="icon_add" title="向下插入选项" onclick="add_single_answer($(this));"></a> <a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a> </li> <a class="icon_add" title="向下插入选项" onclick="add_single_answer($(this));"></a>
<a class="icon_remove" title="删除" onclick="remove_single_answer($(this))"></a>
</li>
<div class="cl"></div> <div class="cl"></div>
<li class="ur_item"> <li class="ur_item">
<label>标准答案<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label> <label>标准答案<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label>
<input placeholder="若标准答案为AB,C在答案输入框填 <input name="exercise_choice" placeholder="若标准答案为AB,C在答案输入框填入ABC即可" type="text">
入ABC即可" type="text">
</li> </li>
<div class="cl"></div> <div class="cl"></div>
</ul> </ul>
</div> </div>
<div class="ur_editor_footer"> <a class="btn btn_dark btn_submit c_white" data-button="ok" onclick="add_poll_question($(this));"> 保存 </a> <a class="btn btn_light btn_cancel" data-button="cancel" onclick="$(this).parent().parent().parent().remove();"> 取消 </a> </div> <div class="ur_editor_footer">
<a class="btn btn_dark btn_submit c_white" data-button="ok" onclick="add_poll_question($(this));"> 保存 </a>
<a class="btn btn_light btn_cancel" data-button="cancel" onclick="$(this).parent().parent().parent().remove();"> 取消 </a>
</div>
<div class="cl"></div> <div class="cl"></div>
</div> </div>

@ -1,11 +1,16 @@
<div class="questionContainer"> <div class="questionContainer">
<div class="ur_editor_title"> <div class="ur_editor_title">
<label>问题:&nbsp;&nbsp;</label> <label>问题:&nbsp;&nbsp;</label>
<input name="question_type" value="1" type="hidden"> <input name="question_type" value="3" type="hidden">
<input maxlength="250" class="questionTitle" name="poll_questions_title" id="poll_questions_title" placeholder="请输入填空题的内容(注意:目前填空题暂时仅支持一个空)" type="text"> <input maxlength="250" class="questionTitle" name="questions_title" id="poll_questions_title" placeholder="请输入填空题的内容(注意:目前填空题暂时仅支持一个空)" type="text">
</div> </div>
<div class="ur_editor_content"> <div class="ur_editor_content">
<ul> <ul>
<li class="ur_item">
<label>分数<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label>
<input type="text" name="question_score" style="width:40px; text-align:center; padding-left:0px;">分
</li>
<div class="cl"></div>
<li class="ur_item"> <li class="ur_item">
<label>候选答案一<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label> <label>候选答案一<span class="ur_index"></span>&nbsp;&nbsp;&nbsp;</label>
<input name="question_answer[0]" placeholder="请输入候选答案一" type="text"> <input name="question_answer[0]" placeholder="请输入候选答案一" type="text">
@ -23,6 +28,9 @@
<div class="cl"></div> <div class="cl"></div>
</ul> </ul>
</div> </div>
<div class="ur_editor_footer"> <a class="btn btn_dark btn_submit c_white" data-button="ok" onclick="add_poll_question($(this));"> 保存 </a> <a class="btn btn_light btn_cancel" data-button="cancel" onclick="$(this).parent().parent().parent().remove();"> 取消 </a> </div> <div class="ur_editor_footer">
<a class="btn btn_dark btn_submit c_white" data-button="ok" onclick="add_poll_question($(this));"> 保存 </a>
<a class="btn btn_light btn_cancel" data-button="cancel" onclick="$(this).parent().parent().parent().remove();"> 取消 </a>
</div>
<div class="cl"></div> <div class="cl"></div>
</div> </div>

@ -0,0 +1,36 @@
<div>
<div class="testEditTitle"> 第<%= exercise_question.question_number%>题.(<%= exercise_question.question_score %>分)<br />
<%= exercise_question.question_title %><span class="ml10">(<%= convert_to_char(exercise_question.exercise_standard_answers.first.exercise_choice_id.to_s) %>)</span></div>
<%#= link_to("", delete_poll_question_poll_index_path(:poll_question => poll_question.id),
method: :delete, :confirm => l(:text_are_you_sure), :remote => true, :class => "ur_icon_de") %>
<a class="ur_icon_edit" title="编辑" onclick="pollQuestionEdit(<%= exercise_question.id%>);"></a>
<a class='ur_icon_add' title='向下插入' id="add_mc_<%=exercise_question.id%>" onclick="chooseQuestionType('mc',<%=exercise_question.id%>);"></a>
<div class="cl"></div>
<div class="ur_inputs">
<table class="ur_table" >
<tbody>
<% exercise_question.exercise_choices.reorder("choice_position").each_with_index do |exercise_choice,index| %>
<tr>
<td>
<label>
<input class="ur_radio" type="radio" name="<%= exercise_question %>" value="<%= exercise_choice.choice_text%>" >
<%= convert_to_char((index+1).to_s)%>&nbsp;&nbsp;<%= exercise_choice.choice_text%>
</label>
</td>
</tr>
<% end %>
</tbody>
</table>
</div>
</div><!--单选题显示 end-->
<!-- 新增问题 -->
<div id="insert_new_poll_question_mc_<%=exercise_question.id%>">
</div>
<div id="div_mc_<%=exercise_question.id%>" style="width: 50px;border: 1px solid #cbcbcb; display:none;position: absolute;padding: 5px;background: white">
<ul>
<li><a href="javascript:void(0);" onclick=" dismiss('mc',<%=exercise_question.id%>);insert_MC('mc',<%=exercise_question.question_number%>,<%=exercise_question.id%>);">单选</a></li>
<!--<li><a href="javascript:void(0);" onclick=" dismiss('mc',<%#=poll_question.id%>);insert_MCQ('mc',<%#=poll_question.question_number%>,<%#=poll_question.id%>);">多选</a></li>
<li><a href="javascript:void(0);" onclick=" dismiss('mc',<%#=poll_question.id%>);insert_SINGLE('mc',<%#=poll_question.question_number%>,<%#=poll_question.id%>);">单行主观</a></li>-->
</ul>
</div>

@ -1,6 +1,12 @@
<div class="ur_page_head ur_editor02" ><!--头部显示 start--> <div class="testStatus"><!--头部显示 start-->
<a href="javascript:" class="ur_icon_edit" title="编辑" onclick="pollsEdit();"></a> <a href="javascript:" class="testEdit" title="编辑" onclick="pollsEdit();"></a>
<!-- <a class='ur_icon_add' title='导入' id="import_btn" onclick="importPoll();"></a> -->
<h1 class="ur_page_title" id="polls_name_h"><%= exercise.exercise_name%></h1> <h1 class="ur_page_title" id="polls_name_h"><%= exercise.exercise_name%></h1>
<%= exercise.exercise_description.nil? ? "" : exercise.exercise_description.html_safe%> <div class="fontGrey2">
<span class="mr100">发布时间:<%=Time.parse(format_time(exercise.publish_time)).strftime("%Y-%m-%d %H:%M:%S") if exercise.publish_time%></span>
<span class="mr100">截止时间:<%=Time.parse(format_time(exercise.end_time)).strftime("%Y-%m-%d %H:%M:%S") if exercise.end_time %></span>
<span>考试时长:<%= exercise.time %>分钟</span></div>
<div class="testDesEdit mt5"><%= exercise.exercise_description.nil? ? "" : exercise.exercise_description.html_safe%></div>
<div class="cl"></div> <div class="cl"></div>
</div><!--头部显示 end--> <div class="cl"></div>
</div>

@ -1156,4 +1156,13 @@ a:hover.btn_cancel{ color:#666;}
.mr118 {margin-right:118px !important;} .mr118 {margin-right:118px !important;}
.questionContainer {width:698px; border:1px solid #cbcbcb;background:#eeeeee; padding:10px; margin-bottom:10px;} .questionContainer {width:698px; border:1px solid #cbcbcb;background:#eeeeee; padding:10px; margin-bottom:10px;}
.questionTitle{ width:644px; height:30px; border:1px solid #cbcbcb; padding-left:5px; background:#fff;} .questionTitle{ width:644px; height:30px; border:1px solid #cbcbcb; padding-left:5px; background:#fff;}
.examTime {width:40px; border:1px solid #cbcbcb; outline:none; height:28px; text-align:center; padding-left:0px; } .examTime {width:40px; border:1px solid #cbcbcb; outline:none; height:28px; text-align:center; padding-left:0px; }
.testStatus{width:698px; border:1px solid #cbcbcb; padding:10px; margin-bottom:10px; background:#ffffff; position:relative; color:#767676;}
.testEdit{ background:url(images/icons.png) 0px -272px no-repeat; width:16px; height:27px; display:block;float:right; bottom:10px; right:10px; position:absolute;}
a:hover.testEdit{ background:url(images/icons.png) -21px -272px no-repeat;}
.mr100 {margin-right:100px;}
.testDesEdit {width:670px; overflow:hidden;}
.testEditTitle{ padding:10px 0px ; float:left; width:564px; }
.questionEditContainer {border:1px solid #cbcbcb;background:#eeeeee; padding:10px; margin-bottom:10px; margin-top:10px;}
.fillInput {border:1px solid #cbcbcb; padding-left:5px; background-color:#ffffff; width:693px; height:30px; color:#888888;}
.mr130 {margin-right:130px;}
Loading…
Cancel
Save