From f7ac2b0ef5e67b8bb8aa48b7bc8953455c5a6eb5 Mon Sep 17 00:00:00 2001 From: cxt Date: Fri, 27 Nov 2015 15:19:13 +0800 Subject: [PATCH] =?UTF-8?q?=E8=80=81=E5=B8=88=E6=9F=A5=E7=9C=8B=E5=AD=A6?= =?UTF-8?q?=E7=94=9F=E7=9A=84=E7=AD=94=E5=8D=B7=E7=BB=93=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/exercise_controller.rb | 29 +++++++++++++++---- app/views/exercise/_edit_head.html.erb | 5 ++-- app/views/exercise/_exercise_form.html.erb | 2 +- .../_exercise_student_result.html.erb | 20 ++++++------- app/views/exercise/_show_head.html.erb | 3 +- app/views/exercise/_student_exercise.html.erb | 8 ++++- app/views/exercise/show.html.erb | 2 +- .../exercise/show_student_result.html.erb | 1 + config/routes.rb | 1 + public/stylesheets/courses.css | 4 +-- 10 files changed, 50 insertions(+), 25 deletions(-) create mode 100644 app/views/exercise/show_student_result.html.erb 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 @@ @@ -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 @@ @@ -110,8 +110,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? && standard_answer.include?(answer.first.answer_text) %> √ <% else %> @@ -126,7 +126,7 @@ <% end %>
- > + >
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 d137553ad..cbff8558f 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -168,6 +168,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 17ed37e05..25ba6e488 100644 --- a/public/stylesheets/courses.css +++ b/public/stylesheets/courses.css @@ -1166,5 +1166,5 @@ 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; } \ No newline at end of file +.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; } +.font_cus {font-family: "微软雅黑","宋体"; font-size: 12px; line-height: 1.5;} \ No newline at end of file