diff --git a/app/controllers/exercise_controller.rb b/app/controllers/exercise_controller.rb
index 0a95fd025..6d6d429b6 100644
--- a/app/controllers/exercise_controller.rb
+++ b/app/controllers/exercise_controller.rb
@@ -1,7 +1,7 @@
class ExerciseController < ApplicationController
layout "base_courses"
- before_filter :find_exercise_and_course, :only => [:create_exercise_question, :edit, :update, :show, :destroy, :commit_exercise, :commit_answer,:publish_exercise,:republish_exercise]
+ before_filter :find_exercise_and_course, :only => [:create_exercise_question, :edit, :update, :show, :destroy, :commit_exercise, :commit_answer,:publish_exercise,:republish_exercise,:show_student_result]
before_filter :find_course, :only => [:index,:new,:create,:student_exercise_list]
include ExerciseHelper
@@ -34,7 +34,7 @@ class ExerciseController < ApplicationController
render_403
return
end
- exercise_end = Time.parse(format_time(@exercise.end_time)).strftime("%Y-%m-%d %H:%M:%S") > Time.now.strftime("%Y-%m-%d %H:%M:%S")
+ exercise_end = @exercise.end_time > Time.now
if @exercise.time == -1
@can_edit_excercise = exercise_end
else
@@ -59,6 +59,9 @@ class ExerciseController < ApplicationController
# @percent = get_percent(@exercise,User.current)
exercise_questions = @exercise.exercise_questions
@exercise_questions = paginateHelper exercise_questions,5 #分页
+ score = calculate_student_score(@exercise, User.current)
+ eu = get_exercise_user(@exercise.id, User.current.id)
+ eu.update_attributes(:score => score)
respond_to do |format|
format.html {render :layout => 'base_courses'}
end
@@ -342,10 +345,10 @@ class ExerciseController < ApplicationController
@exercise = Exercise.find params[:id]
@all_exercises = @course.exercises.where("exercise_status > 1").order("created_at desc")
@exercise_count = @exercise.exercise_users.where('score is not NULL').count
- if @is_teacher || (!@exercise.exercise_users.where(:user_id => User.current.id).empty? && Time.parse(@exercise.end_time.to_s).strftime("%Y-%m-%d-%H-%M-%S") <= Time.now.strftime("%Y-%m-%d-%H-%M-%S"))
+ if @is_teacher || (!@exercise.exercise_users.where(:user_id => User.current.id).empty? && @exercise.end_time <= Time.now)
@exercise_users_list = @exercise.exercise_users.where('score is not NULL')
@show_all = true;
- elsif !@exercise.exercise_users.where(:user_id => User.current.id).empty? && Time.parse(@exercise.end_time.to_s).strftime("%Y-%m-%d-%H-%M-%S") > Time.now.strftime("%Y-%m-%d-%H-%M-%S")
+ elsif !@exercise.exercise_users.where(:user_id => User.current.id).empty? && @exercise.end_time > Time.now
@exercise_users_list = @exercise.exercise_users.where("user_id = ? and score is not NULL",User.current.id)
else
@exercise_users_list = []
@@ -359,7 +362,7 @@ class ExerciseController < ApplicationController
def commit_answer
eq = ExerciseQuestion.find(params[:exercise_question_id])
# 已提交过的且是限时的则不允许答题
- if (has_commit_exercise?(@exercise.id,User.current.id) && (!User.current.admin?) && @exercise.time != -1) || Time.parse(format_time(@exercise.end_time)).strftime("%Y-%m-%d %H:%M:%S") < Time.now.strftime("%Y-%m-%d %H:%M:%S")
+ if (has_commit_exercise?(@exercise.id,User.current.id) && (!User.current.admin?) && @exercise.time != -1) || @exercise.end_time < Time.now
render :json => {:text => "failure"}
return
end
@@ -483,7 +486,7 @@ class ExerciseController < ApplicationController
@exercise.update_attributes(:publish_time => Time.now)
redirect_to exercise_url(@exercise)
return
- elsif Time.parse(@exercise.publish_time.to_s).strftime("%Y-%m-%d-%H-%M-%S") > Time.now.strftime("%Y-%m-%d-%H-%M-%S")
+ elsif @exercise.publish_time > Time.now
@exercise.update_attributes(:show_result => params[:show_result])
redirect_to exercise_url(@exercise)
return
@@ -521,6 +524,20 @@ class ExerciseController < ApplicationController
end
end
+ #查看学生的答卷情况
+ def show_student_result
+ @user = User.find params[:user_id]
+ @can_edit_excercise = false
+ @exercise_user = ExerciseUser.where("user_id =? and exercise_id=?", @user.id, @exercise.id).first
+ @exercise_questions = @exercise.exercise_questions
+ score = calculate_student_score(@exercise, @user)
+ eu = get_exercise_user(@exercise.id, @user.id)
+ eu.update_attributes(:score => score)
+ respond_to do |format|
+ format.html {render :layout => 'base_courses'}
+ end
+ end
+
# 计算学生得分
def calculate_student_score(exercise, user)
score = 0
diff --git a/app/views/exercise/_edit_head.html.erb b/app/views/exercise/_edit_head.html.erb
index c8ba0c4d7..b69f52a56 100644
--- a/app/views/exercise/_edit_head.html.erb
+++ b/app/views/exercise/_edit_head.html.erb
@@ -30,10 +30,11 @@
\ No newline at end of file
diff --git a/app/views/exercise/_exercise_form.html.erb b/app/views/exercise/_exercise_form.html.erb
index e283f8b0c..f0bef74bf 100644
--- a/app/views/exercise/_exercise_form.html.erb
+++ b/app/views/exercise/_exercise_form.html.erb
@@ -9,7 +9,7 @@
var popWindow ; //弹出框的引用
var importPollPopWindow; //选择导入的弹出框引用
function edit_head(){
- $("#polls_description").val($("#polls_description_div").html());
+ $("#exercise_description").val($("#exercise_description_div").html());
}
$(function(){
//点击空白处
diff --git a/app/views/exercise/_exercise_student_result.html.erb b/app/views/exercise/_exercise_student_result.html.erb
index 93e52b0a1..529a73da3 100644
--- a/app/views/exercise/_exercise_student_result.html.erb
+++ b/app/views/exercise/_exercise_student_result.html.erb
@@ -32,8 +32,8 @@
第<%= list_index+1%>题:<%= exercise_question.question_title %> (<%= exercise_question.question_score %>分)
- <% answer = get_user_answer(exercise_question, User.current)%>
- <% standard_answer = get_user_standard_answer(exercise_question, User.current)%>
+ <% answer = get_user_answer(exercise_question, user)%>
+ <% standard_answer = get_user_standard_answer(exercise_question, user)%>
<% if !answer.empty? && !standard_answer.empty? && answer.first.exercise_choice.choice_position == standard_answer.first.exercise_choice_id %>
√
<% else %>
@@ -49,7 +49,7 @@
- <%= radio_button "exercise",exercise_question.id.to_s+"exercise_choice_id",exercise_choice.id,:class=>"ur_radio",:checked => answer_be_selected?(exercise_choice,User.current),:disabled => !@can_edit_excercise %>
+ <%= radio_button "exercise",exercise_question.id.to_s+"exercise_choice_id",exercise_choice.id,:class=>"ur_radio",:checked => answer_be_selected?(exercise_choice,user),:disabled => !@can_edit_excercise %>
<%= convert_to_char((index+1).to_s)%> <%= exercise_choice.choice_text%>
@@ -71,9 +71,9 @@
第<%= list_index+1%>题:<%= exercise_question.question_title %> (<%= exercise_question.question_score %>分)
- <% answer = get_user_answer(exercise_question, User.current)%>
- <% standard_answer = get_user_standard_answer(exercise_question, User.current)%>
- <% if !standard_answer.empty? && get_mulscore(exercise_question, User.current).to_i == standard_answer.first.exercise_choice_id %>
+ <% answer = get_user_answer(exercise_question, user)%>
+ <% standard_answer = get_user_standard_answer(exercise_question, user)%>
+ <% if !standard_answer.empty? && get_mulscore(exercise_question, user).to_i == standard_answer.first.exercise_choice_id %>
√
<% else %>
×
@@ -88,7 +88,7 @@
- <%= @can_edit_poll?"":"disabled=disabled" %> >
+ <%= @can_edit_excercise?"":"disabled=disabled" %> >
<%= convert_to_char((index+1).to_s)%> <%= exercise_choice.choice_text%>
@@ -110,8 +110,8 @@
diff --git a/app/views/exercise/_show_head.html.erb b/app/views/exercise/_show_head.html.erb
index f385e58b8..cfa814c2e 100644
--- a/app/views/exercise/_show_head.html.erb
+++ b/app/views/exercise/_show_head.html.erb
@@ -11,7 +11,6 @@
测验时长:<%= exercise.time %>分钟
<% end %>
- <%= exercise.exercise_description.nil? ? "" : exercise.exercise_description.html_safe%>
-
+ <%= exercise.exercise_description.nil? ? "" :exercise.exercise_description.html_safe%>
\ No newline at end of file
diff --git a/app/views/exercise/_student_exercise.html.erb b/app/views/exercise/_student_exercise.html.erb
index 25bf3f7cd..4e27d57cb 100644
--- a/app/views/exercise/_student_exercise.html.erb
+++ b/app/views/exercise/_student_exercise.html.erb
@@ -44,7 +44,13 @@
- <%= exercise.user.show_name%>
+ <% name = exercise.user.show_name %>
+ <% if Time.parse(h(@exercise.end_time)).strftime("%Y-%m-%d-%H-%M-%S") <= Time.now.strftime("%Y-%m-%d-%H-%M-%S") %>
+ <%= link_to name,show_student_result_exercise_path(@exercise,:user_id => exercise.user.id) %>
+ <% else %>
+ <%=name%>
+ <%#= link_to name,'',:title=>"截止日期未到,暂不能查看学生答题结果。" %>
+ <% end %>
<%= exercise.user.user_extensions.nil? ? "--" : exercise.user.user_extensions.student_id%>
diff --git a/app/views/exercise/show.html.erb b/app/views/exercise/show.html.erb
index f47710d1c..c488ec203 100644
--- a/app/views/exercise/show.html.erb
+++ b/app/views/exercise/show.html.erb
@@ -5,6 +5,6 @@
<% if @can_edit_excercise %>
<%=render :partial => 'exercise_student', :locals => {:exercise =>@exercise, :exercise_questions => @exercise_questions,:exercise_user => @exercise_user} %>
<% else %>
- <%=render :partial => 'exercise_student_result', :locals => {:exercise =>@exercise, :exercise_questions => @exercise_questions,:exercise_user => @exercise_user} %>
+ <%=render :partial => 'exercise_student_result', :locals => {:exercise =>@exercise, :exercise_questions => @exercise_questions,:exercise_user => @exercise_user,:user=>User.current} %>
<% end %>
<% end %>
\ No newline at end of file
diff --git a/app/views/exercise/show_student_result.html.erb b/app/views/exercise/show_student_result.html.erb
new file mode 100644
index 000000000..6b32a0dd0
--- /dev/null
+++ b/app/views/exercise/show_student_result.html.erb
@@ -0,0 +1 @@
+<%=render :partial => 'exercise_student_result', :locals => {:exercise =>@exercise, :exercise_questions => @exercise_questions,:exercise_user => @exercise_user,:user =>@user} %>
\ No newline at end of file
diff --git a/config/routes.rb b/config/routes.rb
index 8998d50f2..d12a38425 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -174,6 +174,7 @@ RedmineApp::Application.routes.draw do
get 'export_exercise'
get 'publish_exercise'
get 'republish_exercise'
+ get 'show_student_result'
post 'create_exercise_question'
post 'commit_answer'
post 'commit_exercise'
diff --git a/public/stylesheets/courses.css b/public/stylesheets/courses.css
index ac3a78020..5bf3c8b6d 100644
--- a/public/stylesheets/courses.css
+++ b/public/stylesheets/courses.css
@@ -1166,9 +1166,7 @@ a:hover.testEdit{ background:url(images/icons.png) -21px -272px no-repeat;}
.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;}
-.mr100 {margin-right:100px;}
.ur_button_submit{ display:block; width:106px; height:31px; margin:0 auto; background:#15bccf; color:#fff; font-size:16px; text-align:center; padding-top:4px; margin-bottom:10px; }
-
/*20151123课程排行榜Tim*/
.courseMenuSetting {background:url(../images/homepage_icon2.png) -190px -365px no-repeat; width:15px; height:15px; margin-top:3px; float:right; margin-right:5px;}
.courseMenuSetting:hover {background:url(../images/homepage_icon2.png) -190px -407px no-repeat;}
@@ -1176,4 +1174,5 @@ a:hover.testEdit{ background:url(images/icons.png) -21px -272px no-repeat;}
.rankList li {width:73px; padding:8px 0px 0px 0px; text-align:center; float:left; position:relative;}
.rankList li p {width:100%; overflow:hidden; white-space:normal; text-overflow:ellipsis; color:#585858;word-wrap: normal; word-break: normal;}
.rankPortrait {border-radius:50%; width:35px; height:35px;}
-.numIntro {position:absolute; text-align:left; z-index:999; box-shadow:0px 2px 8px rgba(146, 153, 169, 0.5); border:1px solid #eaeaea; background-color:#ffffff; padding:3px 5px; left:15px; color:#585858; white-space: nowrap;}
\ No newline at end of file
+.numIntro {position:absolute; text-align:left; z-index:999; box-shadow:0px 2px 8px rgba(146, 153, 169, 0.5); border:1px solid #eaeaea; background-color:#ffffff; padding:3px 5px; left:15px; color:#585858; white-space: nowrap;}
+.font_cus {font-family: "微软雅黑","宋体"; font-size: 12px; line-height: 1.5;}
\ No newline at end of file