From 764dffd95e57474f238d650cb0d0f672ee923740 Mon Sep 17 00:00:00 2001 From: yuanke <249218296@qq.com> Date: Fri, 15 Apr 2016 17:07:38 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=A8=E6=80=81=E9=87=8C=E9=9D=A2=E5=8A=A0?= =?UTF-8?q?=E4=B8=8A=E4=BB=A3=E7=A0=81=E6=9F=A5=E9=87=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/student_work_controller.rb | 13 +- .../courses/_compare_code_tips_1.html.erb | 19 +-- app/views/courses/_show_compare_code.html.erb | 2 +- app/views/courses/code_repeat.html.erb | 2 +- .../student_work/_student_work_list.html.erb | 2 +- app/views/student_work/work_canrepeat.js.erb | 101 ++++++++++++ app/views/users/_course_homework.html.erb | 151 +----------------- config/routes.rb | 2 + public/stylesheets/courses.css | 2 +- public/stylesheets/new_user.css | 10 ++ 10 files changed, 142 insertions(+), 162 deletions(-) create mode 100644 app/views/student_work/work_canrepeat.js.erb diff --git a/app/controllers/student_work_controller.rb b/app/controllers/student_work_controller.rb index 6383a0d24..2849bdf90 100644 --- a/app/controllers/student_work_controller.rb +++ b/app/controllers/student_work_controller.rb @@ -5,7 +5,7 @@ class StudentWorkController < ApplicationController include ApplicationHelper require 'bigdecimal' require "base64" - before_filter :find_homework, :only => [:new, :index, :create, :student_work_absence_penalty, :absence_penalty_list, :evaluation_list, :program_test,:program_test_ex,:code_repeattest,:set_score_rule,:forbidden_anonymous_comment,:delete_work,:new_student_work_project,:student_work_project,:cancel_relate_project,:search_course_students] + before_filter :find_homework, :only => [:new, :index, :create, :student_work_absence_penalty, :absence_penalty_list, :evaluation_list, :program_test,:program_test_ex,:code_repeattest,:work_canrepeat,:set_score_rule,:forbidden_anonymous_comment,:delete_work,:new_student_work_project,:student_work_project,:cancel_relate_project,:search_course_students] before_filter :find_work, :only => [:edit, :update, :show, :destroy, :add_score, :praise_student_work,:retry_work,:revise_attachment] before_filter :member_of_course, :only => [:new, :create, :show, :add_score, :praise_student_work] before_filter :author_of_work, :only => [:edit, :update, :destroy] @@ -188,7 +188,7 @@ class StudentWorkController < ApplicationController #找出该作业的所有提交作业 def find_all_student_work_by_homeid() - all_studentwork = StudentWork.where("homework_common_id =?", @homework.id) + all_studentwork = StudentWork.where("homework_common_id =#{@homework.id} and is_test = 0 ") all_studentwork end @@ -222,6 +222,15 @@ class StudentWorkController < ApplicationController JSON.parse(res.body) end + def work_canrepeat + @homework_id = params[:homework] + @course_id = params[:course_id] + + all_studentwork = find_all_student_work_by_homeid() + + @work_count = all_studentwork.count + end + #代码查重 status: 0完成 -2不需要查重 -1查重失败不支持该语言 def code_repeattest tStarttime = Time.now diff --git a/app/views/courses/_compare_code_tips_1.html.erb b/app/views/courses/_compare_code_tips_1.html.erb index 4dc073797..a2230bd46 100644 --- a/app/views/courses/_compare_code_tips_1.html.erb +++ b/app/views/courses/_compare_code_tips_1.html.erb @@ -37,11 +37,12 @@ console.log(data); if (data.status == 0) { - $("#ajax-modal").html('<%= escape_javascript( render :partial => 'courses/compare_code_tips_2',:locals => {:des=>"查重完成,是否立即查看结果?",:status=>1, :homework=> homework,:courseid=> courseid})%>'); + $("#ajax-modal").html('<%= escape_javascript( render :partial => 'courses/compare_code_tips_2',:locals => {:des=>"查重完成,是否立即查看结果?",:status=>1, :homework=> homework,:courseid=> courseid})%>'); showModal('ajax-modal', '580px'); $('#ajax-modal').siblings().remove(); - $('#ajax-modal').before(""); - $('#ajax-modal').parent().css("top","40%").css("left","50%"); + $('#ajax-modal').before(""); + //$('#ajax-modal').parent().css("top","40%").css("left","50%"); + $('#ajax-modal').parent().css("top","30%").css("left","50%").css("padding-top","10px").css("position","fixed"); $('#ajax-modal').parent().addClass("resourceUploadPopup"); $('#ajax-modal').css("padding-left","16px").css("padding-bottom","16px"); @@ -54,8 +55,8 @@ $("#ajax-modal").html('<%= escape_javascript( render :partial => 'courses/compare_code_tips_2',:locals => {:des=>"对不起目前只支持java/c/c++的代码查重!",:status=>0, :homework=> homework,:courseid=> courseid})%>'); showModal('ajax-modal', '580px'); $('#ajax-modal').siblings().remove(); - $('#ajax-modal').before(""); - $('#ajax-modal').parent().css("top","40%").css("left","50%"); + $('#ajax-modal').before(""); + $('#ajax-modal').parent().css("top","30%").css("left","50%").css("padding-top","10px").css("position","fixed"); $('#ajax-modal').parent().addClass("resourceUploadPopup"); $('#ajax-modal').css("padding-left","16px").css("padding-bottom","16px"); @@ -69,8 +70,8 @@ $("#ajax-modal").html('<%= escape_javascript( render :partial => 'courses/compare_code_tips_2',:locals => {:des=>"对不起该作业的作品过少不能查重!",:status=>0, :homework=> homework,:courseid=> courseid})%>'); showModal('ajax-modal', '580px'); $('#ajax-modal').siblings().remove(); - $('#ajax-modal').before(""); - $('#ajax-modal').parent().css("top","40%").css("left","50%"); + $('#ajax-modal').before(""); + $('#ajax-modal').parent().css("top","30%").css("left","50%").css("padding-top","10px").css("position","fixed"); $('#ajax-modal').parent().addClass("resourceUploadPopup"); $('#ajax-modal').css("padding-left","16px").css("padding-bottom","16px"); @@ -85,8 +86,8 @@ $("#ajax-modal").html('<%= escape_javascript( render :partial => 'courses/compare_code_tips_2',:locals => {:des=>"对不起,服务器繁忙请稍后再试!",:status=>0, :homework=> homework,:courseid=> courseid})%>'); showModal('ajax-modal', '580px'); $('#ajax-modal').siblings().remove(); - $('#ajax-modal').before(""); - $('#ajax-modal').parent().css("top","40%").css("left","50%"); + $('#ajax-modal').before(""); + $('#ajax-modal').parent().css("top","30%").css("left","50%").css("padding-top","10px").css("position","fixed"); $('#ajax-modal').parent().addClass("resourceUploadPopup"); $('#ajax-modal').css("padding-left","16px").css("padding-bottom","16px"); diff --git a/app/views/courses/_show_compare_code.html.erb b/app/views/courses/_show_compare_code.html.erb index 00bea362e..0d5dd36ec 100644 --- a/app/views/courses/_show_compare_code.html.erb +++ b/app/views/courses/_show_compare_code.html.erb @@ -12,7 +12,7 @@ <% if @simi_value.to_i >= 90 %>
相似度<%=@simi_value.to_i%>%
<% else %> -
相似度<%=@simi_valu.to_i%>%
+
相似度<%=@simi_value.to_i%>%
<% end %>

<%=dst_name%>

diff --git a/app/views/courses/code_repeat.html.erb b/app/views/courses/code_repeat.html.erb index ccca72a20..0748dc30f 100644 --- a/app/views/courses/code_repeat.html.erb +++ b/app/views/courses/code_repeat.html.erb @@ -48,7 +48,7 @@ <%= link_to("查看", show_comparecode_course_path(:homework_id => @homework.id,:src_id => student_work.id,:dst_id => student_work.simi_id.to_i),:class => "cha-btn",:remote => true ) %> <%else%> -
  • +
  • --
  • --
  • --
  • --
  • diff --git a/app/views/student_work/_student_work_list.html.erb b/app/views/student_work/_student_work_list.html.erb index f6d310269..213bf267a 100644 --- a/app/views/student_work/_student_work_list.html.erb +++ b/app/views/student_work/_student_work_list.html.erb @@ -19,7 +19,7 @@ <%if @homework.homework_type == 2 %> - 代码查重 + <%= link_to "代码查重", work_canrepeat_student_work_index_path(homework:@homework.id, course_id:@course.id), class: 'BlueCirBtn fr',:remote => true %> <% end %> <%= select_tag(:student_work_in_group,options_for_select(course_group_list(@course),@group), {:class => "classSplit"}) unless course_group_list(@course).empty? %> <% end%> diff --git a/app/views/student_work/work_canrepeat.js.erb b/app/views/student_work/work_canrepeat.js.erb new file mode 100644 index 000000000..d4efd470e --- /dev/null +++ b/app/views/student_work/work_canrepeat.js.erb @@ -0,0 +1,101 @@ +//代码查重 +var homework_id = <%=@homework.id%>; +<% if @work_count <= 1 %> + //弹框 + $("#ajax-modal").html('<%= escape_javascript( render :partial => 'courses/compare_code_tips_2',:locals => {:des=>"对不起该作业的作品过少不能查重!",:status=>0, :homework=> @homework,:courseid=> @course_id})%>'); + showModal('ajax-modal', '580px'); + $('#ajax-modal').siblings().remove(); + $('#ajax-modal').before(""); + $('#ajax-modal').parent().css("top", "30%").css("left", "50%").css("padding-top", "10px").css("position", "fixed"); + $('#ajax-modal').parent().addClass("resourceUploadPopup"); + $('#ajax-modal').css("padding-left", "16px").css("padding-bottom", "16px"); + + function closeModal() { + hideModal($(".blue-border-box")); + } +<% else %> + <% if !@homework.simi_time %> + test_repeat(); + <% else%> + $("#ajax-modal").html('<%= escape_javascript( render :partial => 'courses/compare_code_tips_1',:locals => {:homework=> @homework,:courseid=>@course_id })%>'); + $('#compare-tips-1').html('您上次查重的时间为<%= Time.parse(@homework.simi_time.to_s).strftime("%Y-%m-%d %H-%M-%S")%>'); + showModal('ajax-modal', '580px'); + $('#ajax-modal').siblings().remove(); + $('#ajax-modal').before(""); + $('#ajax-modal').parent().css("top", "30%").css("left", "50%").css("padding-top", "10px").css("position", "fixed"); + $('#ajax-modal').parent().addClass("resourceUploadPopup"); + $('#ajax-modal').css("padding-left", "16px").css("padding-bottom", "16px"); + + function closeModal() { + hideModal($(".blue-border-box")); + } + <% end %> + + //请求查重 + var test_repeat = function () { + $.post( + '/student_work/code_repeattest', + {homework: homework_id}, + function (data, status) { + if (data.status == 0) { + $("#ajax-modal").html('<%= escape_javascript( render :partial => 'courses/compare_code_tips_2',:locals => {:des=>"查重完成是否立即查看结果?",:status=>1, :homework=> @homework,:courseid=> @course_id})%>'); + showModal('ajax-modal', '580px'); + $('#ajax-modal').siblings().remove(); + $('#ajax-modal').before(""); + $('#ajax-modal').parent().css("top", "30%").css("left", "50%").css("padding-top", "10px").css("position", "fixed"); + $('#ajax-modal').parent().addClass("resourceUploadPopup"); + $('#ajax-modal').css("padding-left", "16px").css("padding-bottom", "16px"); + + function closeModal() { + hideModal($(".blue-border-box")); + } + } + else if (data.status == -1) { + // confirm("对不起只支持java/c/c++的代码查重!"); + $("#ajax-modal").html('<%= escape_javascript( render :partial => 'courses/compare_code_tips_2',:locals => {:des=>"对不起目前只支持java/c/c++的代码查重!",:status=>0, :homework=> @homework,:courseid=> @course_id})%>'); + showModal('ajax-modal', '580px'); + $('#ajax-modal').siblings().remove(); + $('#ajax-modal').before(""); + $('#ajax-modal').parent().css("top", "30%").css("left", "50%").css("padding-top", "10px").css("position", "fixed"); + $('#ajax-modal').parent().addClass("resourceUploadPopup"); + $('#ajax-modal').css("padding-left", "16px").css("padding-bottom", "16px"); + + function closeModal() { + hideModal($(".blue-border-box")); + } + + } + else if (data.status == -2) { + // confirm("对不起该作业的作品过少不能查重!"); + $("#ajax-modal").html('<%= escape_javascript( render :partial => 'courses/compare_code_tips_2',:locals => {:des=>"对不起该作业的作品过少不能查重!",:status=>0, :homework=> @homework,:courseid=> @course_id})%>'); + showModal('ajax-modal', '580px'); + $('#ajax-modal').siblings().remove(); + $('#ajax-modal').before(""); + $('#ajax-modal').parent().css("top", "30%").css("left", "50%").css("padding-top", "10px").css("position", "fixed"); + $('#ajax-modal').parent().addClass("resourceUploadPopup"); + $('#ajax-modal').css("padding-left", "16px").css("padding-bottom", "16px"); + + function closeModal() { + hideModal($(".blue-border-box")); + } + } + } + ).fail(function (xhr, status) { + // confirm("对不起,服务器繁忙请稍后再试!"); + $("#ajax-modal").html('<%= escape_javascript( render :partial => 'courses/compare_code_tips_2',:locals => {:des=>"对不起,服务器繁忙请稍后再试!",:status=>0, :homework=> @homework,:courseid=> @course_id})%>'); + showModal('ajax-modal', '580px'); + $('#ajax-modal').siblings().remove(); + $('#ajax-modal').before(""); + $('#ajax-modal').parent().css("top", "30%").css("left", "50%").css("padding-top", "10px").css("position", "fixed"); + $('#ajax-modal').parent().addClass("resourceUploadPopup"); + $('#ajax-modal').css("padding-left", "16px").css("padding-bottom", "16px"); + + function closeModal() { + hideModal($(".blue-border-box")); + } + }); + }; +<% end %> + + + diff --git a/app/views/users/_course_homework.html.erb b/app/views/users/_course_homework.html.erb index 07a7194a7..351001bb8 100644 --- a/app/views/users/_course_homework.html.erb +++ b/app/views/users/_course_homework.html.erb @@ -46,10 +46,6 @@ <% end%> <% end%> - <% if is_teacher && activity.homework_type == 2 %> - 代码查重 - <% end %> -
    <% if activity.homework_type == 3 && activity.homework_detail_group.base_on_project == 1%> 系统提示:该作业要求各组长<%=link_to "创建项目", new_project_path(:host=>Setting.host_name),:class=>"linkBlue",:title=>"新建项目",:style=>"text-decoration:underline;"%>,组成员加入项目,然后由组长关联项目。谢谢配合! @@ -80,7 +76,10 @@
    <%= link_to "模拟答题", new_user_commit_homework_users_path(homework_id: activity.id, is_test: true), class: 'c_blue test-program-btn', title: '教师可以通过模拟答题设置作业的标准答案' %>
    - <% end %> +
    + <%= link_to "代码查重", work_canrepeat_student_work_index_path(homework: activity.id, course_id: activity.course.id), class: 'c_blue test-program-btn',:remote => true %> +
    + <% end %> <% if activity.homework_type == 2%>
    语言: @@ -382,146 +381,4 @@ $("#relatePWrap_<%=user_activity_id %>").toggleClass('relatePWrap'); $("#moreProject_<%=user_activity_id %>").show(); }); - - //代码查重 - function code_repeat(){ - - var homework_id = <%=@homework.id%>; - var course_id = <%=@course.id%>; - - console.log("course_id=",course_id); - console.log("homework_id=",homework_id); - - if(<%= @stundet_works.count <=1 %>) - { - //弹框 - $("#ajax-modal").html('<%= escape_javascript( render :partial => 'courses/compare_code_tips_2',:locals => {:des=>"对不起该作业的作品过少不能查重!",:status=>0, :homework=> @homework,:courseid=> @course.id})%>'); - showModal('ajax-modal', '580px'); - $('#ajax-modal').siblings().remove(); - $('#ajax-modal').before(""); - $('#ajax-modal').parent().css("top","40%").css("left","50%"); - $('#ajax-modal').parent().addClass("resourceUploadPopup"); - $('#ajax-modal').css("padding-left","16px").css("padding-bottom","16px"); - - function closeModal(){ - hideModal($(".blue-border-box")); - } - return; - } - - //先请求下上次查询的时间 - $.post( - '/student_work/last_codecomparetime', - {homework: homework_id}, - function(data,status){ - if (data.status == 0) { - var homework_simi_time = data.comparetime; - - if (homework_simi_time == 0){ - //没进行过代码查重则直接查重 - test_repeat(); - } - else{ - $("#ajax-modal").html('<%= escape_javascript( render :partial => 'courses/compare_code_tips_1',:locals => {:homework=> @homework,:courseid=> @course.id })%>'); - $('#compare-tips-1').html('您上次查重的时间为'+homework_simi_time); - showModal('ajax-modal', '580px'); - $('#ajax-modal').siblings().remove(); - $('#ajax-modal').before(""); - $('#ajax-modal').parent().css("top","40%").css("left","50%"); - $('#ajax-modal').parent().addClass("resourceUploadPopup"); - $('#ajax-modal').css("padding-left","16px").css("padding-bottom","16px"); - console.log(homework_simi_time); - - function closeModal(){ - hideModal($(".blue-border-box")); - } - } - } - } - ).fail(function(xhr, status){ -// confirm("对不起,服务器繁忙请稍后再试!"); - $("#ajax-modal").html('<%= escape_javascript( render :partial => 'courses/compare_code_tips_2',:locals => {:des=>"对不起,服务器繁忙请稍后再试!",:status=>0, :homework=> @homework,:courseid=> @course.id})%>'); - showModal('ajax-modal', '580px'); - $('#ajax-modal').siblings().remove(); - $('#ajax-modal').before(""); - $('#ajax-modal').parent().css("top","40%").css("left","50%"); - $('#ajax-modal').parent().addClass("resourceUploadPopup"); - $('#ajax-modal').css("padding-left","16px").css("padding-bottom","16px"); - - function closeModal(){ - hideModal($(".blue-border-box")); - } - return; - }); - - //请求查重 - var test_repeat = function(){ - $.post( - '/student_work/code_repeattest', - {homework: homework_id}, - function(data,status){ - console.log("result = "); - console.log(data); - - if (data.status == 0) { - $("#ajax-modal").html('<%= escape_javascript( render :partial => 'courses/compare_code_tips_2',:locals => {:des=>"查重完成是否立即查看结果?",:status=>1, :homework=> @homework,:courseid=> @course.id})%>'); - showModal('ajax-modal', '580px'); - $('#ajax-modal').siblings().remove(); - $('#ajax-modal').before(""); - $('#ajax-modal').parent().css("top","40%").css("left","50%"); - $('#ajax-modal').parent().addClass("resourceUploadPopup"); - $('#ajax-modal').css("padding-left","16px").css("padding-bottom","16px"); - - function closeModal(){ - hideModal($(".blue-border-box")); - } - } - else if (data.status == -1){ -// confirm("对不起只支持java/c/c++的代码查重!"); - $("#ajax-modal").html('<%= escape_javascript( render :partial => 'courses/compare_code_tips_2',:locals => {:des=>"对不起目前只支持java/c/c++的代码查重!",:status=>0, :homework=> @homework,:courseid=> @course.id})%>'); - showModal('ajax-modal', '580px'); - $('#ajax-modal').siblings().remove(); - $('#ajax-modal').before(""); - $('#ajax-modal').parent().css("top","40%").css("left","50%"); - $('#ajax-modal').parent().addClass("resourceUploadPopup"); - $('#ajax-modal').css("padding-left","16px").css("padding-bottom","16px"); - - function closeModal(){ - hideModal($(".blue-border-box")); - } - - } - else if (data.status == -2){ -// confirm("对不起该作业的作品过少不能查重!"); - $("#ajax-modal").html('<%= escape_javascript( render :partial => 'courses/compare_code_tips_2',:locals => {:des=>"对不起该作业的作品过少不能查重!",:status=>0, :homework=> @homework,:courseid=> @course.id})%>'); - showModal('ajax-modal', '580px'); - $('#ajax-modal').siblings().remove(); - $('#ajax-modal').before(""); - $('#ajax-modal').parent().css("top","40%").css("left","50%"); - $('#ajax-modal').parent().addClass("resourceUploadPopup"); - $('#ajax-modal').css("padding-left","16px").css("padding-bottom","16px"); - - function closeModal(){ - hideModal($(".blue-border-box")); - } - } - return; - } - ).fail(function(xhr, status){ -// confirm("对不起,服务器繁忙请稍后再试!"); - $("#ajax-modal").html('<%= escape_javascript( render :partial => 'courses/compare_code_tips_2',:locals => {:des=>"对不起,服务器繁忙请稍后再试!",:status=>0, :homework=> @homework,:courseid=> @course.id})%>'); - showModal('ajax-modal', '580px'); - $('#ajax-modal').siblings().remove(); - $('#ajax-modal').before(""); - $('#ajax-modal').parent().css("top","40%").css("left","50%"); - $('#ajax-modal').parent().addClass("resourceUploadPopup"); - $('#ajax-modal').css("padding-left","16px").css("padding-bottom","16px"); - - function closeModal(){ - hideModal($(".blue-border-box")); - } - return; - }); - }; - } diff --git a/config/routes.rb b/config/routes.rb index 3e2a7485b..fd7546749 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -268,6 +268,7 @@ RedmineApp::Application.routes.draw do get 'retry_work' get 'praise_student_work' get 'forbidden_anonymous_comment' + get 'work_canrepeat' end collection do post 'add_score_reply' @@ -286,6 +287,7 @@ RedmineApp::Application.routes.draw do post 'code_repeattest' post 'last_codecomparetime' post 'set_score_rule' + get 'work_canrepeat' end end diff --git a/public/stylesheets/courses.css b/public/stylesheets/courses.css index 21d6f9e92..d58d951d0 100644 --- a/public/stylesheets/courses.css +++ b/public/stylesheets/courses.css @@ -1296,7 +1296,7 @@ a.contributor_course{float: right; color: #888; font-size: 12px; font-weight: no /*20160310分班样式*/ .select-class-option {width:125px;} -/* 弹框 */ +/* 代码查重弹框 */ a.Blue-btn{ display:block; margin-right:15px;width:65px; height:22px; background-color:#ffffff; line-height:24px; vertical-align:middle; text-align:center; border:1px solid #3598db; color:#3598db; -moz-border-radius:5px; -webkit-border-radius:5px; border-radius:5px;} a:hover.Blue-btn{ background:#3598db; color:#fff;} .fl{ float:left;} diff --git a/public/stylesheets/new_user.css b/public/stylesheets/new_user.css index 4558437a2..6bd386f9f 100644 --- a/public/stylesheets/new_user.css +++ b/public/stylesheets/new_user.css @@ -1487,3 +1487,13 @@ a.choose-active {background-color:#269ac9; color:#ffffff;} a.st_up{ display: block; width:8px; float:left; height:13px; background:url(../images/pic_up.png) 0 0 no-repeat; margin-top:5px; margin-left:3px;} a.st_down{ display: block; width:8px; float:left; height:13px; background:url(../images/pic_up.png) 0 -22px no-repeat; margin-top:5px; margin-left:3px;} a.st_img { display:block;width:32px; height:32px; border:1px solid #CCC; padding:1px;} + +/* 代码查重弹框 */ +a.Blue-btn{ display:block; margin-right:15px;width:65px; height:22px; background-color:#ffffff; line-height:24px; vertical-align:middle; text-align:center; border:1px solid #3598db; color:#3598db; -moz-border-radius:5px; -webkit-border-radius:5px; border-radius:5px;} +a:hover.Blue-btn{ background:#3598db; color:#fff;} +.fl{ float:left;} +.fr{ float:right;} +.blue-border-box{ width:500px; padding:20px; margin:0 auto; background:#fff;} +.box-con h4{ font-size:14px; font-weight: bold; width:450px; text-align:center;} +.box-con{ width:450px; margin:0 auto; text-align:center;} +.box-con-a{ width:170px; margin:0 auto; margin-top:10px;}