From a29ab60481a788aaa1fb6ae9413bf760fed07980 Mon Sep 17 00:00:00 2001 From: guange <8863824@gmail.com> Date: Thu, 10 Sep 2015 11:34:10 +0800 Subject: [PATCH 1/7] =?UTF-8?q?=E8=80=81=E5=B8=88=E7=9A=84=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=E7=BB=93=E6=9E=9C=E8=83=BD=E6=98=BE=E7=A4=BA=E5=87=BA?= =?UTF-8?q?=E6=9D=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/student_work_controller.rb | 2 +- app/controllers/users_controller.rb | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/controllers/student_work_controller.rb b/app/controllers/student_work_controller.rb index 593d6bf53..018a293e3 100644 --- a/app/controllers/student_work_controller.rb +++ b/app/controllers/student_work_controller.rb @@ -631,7 +631,7 @@ class StudentWorkController < ApplicationController unless @homework.save logger.debug @homework.errors.full_messages else - student_work = @homework.student_works.where(user_id: User.current.id).first + student_work = StudentWork.where(homework_common_id: @homework.id, user_id: User.current.id).first end end student_work diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 9b2d49f2d..d71b24fc8 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -354,7 +354,7 @@ class UsersController < ApplicationController @user = User.current @homework = HomeworkCommon.find(params[:homework_id]) @is_test = params[:is_test] == 'true' - @student_work = @homework.student_works.where(user_id: User.current.id).first + @student_work = StudentWork.where(homework_common_id: @homework.id, user_id: User.current.id).first if @student_work.nil? @student_work = StudentWork.new end @@ -369,7 +369,7 @@ class UsersController < ApplicationController def user_commit_homework homework = HomeworkCommon.find(params[:homework]) - student_work = homework.student_works.where(user_id: User.current.id).first + student_work = StudentWork.where(homework_common_id: homework.id, user_id: User.current.id).first if student_work student_work.save flash[:notice] = l(:notice_successful_create) From 487f46bb3277c4e89fdec3acf63463995d610134 Mon Sep 17 00:00:00 2001 From: sw <939547590@qq.com> Date: Fri, 11 Sep 2015 11:46:12 +0800 Subject: [PATCH 2/7] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E5=9B=BE=E7=89=87?= =?UTF-8?q?=E5=90=8E=E5=A4=A7=E5=B0=8F=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/my/save_user_avatar.js.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/my/save_user_avatar.js.erb b/app/views/my/save_user_avatar.js.erb index 03608a768..1e24a4a7c 100644 --- a/app/views/my/save_user_avatar.js.erb +++ b/app/views/my/save_user_avatar.js.erb @@ -1,3 +1,3 @@ -$("#nh_user_tx").replaceWith('<%= image_tag(url_to_avatar(@user), :id=>'nh_user_tx',:style=>"width:90px;height:90px;overflow:hidden",:alt=>"头像") %>'); +$("#nh_user_tx").replaceWith('<%= image_tag(url_to_avatar(@user), :id=>'nh_user_tx',:style=>"width:78px;height:78px;overflow:hidden",:alt=>"头像") %>'); $("#nh_user_logo").replaceWith('<%= image_tag(url_to_avatar(@user), :id=>'nh_user_logo',:width =>"40",:height => "40",:alt=>"头像") %>'); hideModal(); \ No newline at end of file From e9f9dd44b9f602e7d582277f56fdfa68bf809284 Mon Sep 17 00:00:00 2001 From: guange <8863824@gmail.com> Date: Fri, 11 Sep 2015 14:59:30 +0800 Subject: [PATCH 3/7] =?UTF-8?q?=E7=BC=96=E7=A8=8B=E4=BD=9C=E4=B8=9A?= =?UTF-8?q?=E7=9A=84=E4=BF=AE=E6=94=B9=E5=8A=9F=E8=83=BD=E6=90=9E=E5=AE=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/homework_common_controller.rb | 14 +++ app/models/homework_common.rb | 2 +- app/views/users/_user_homework_form.html.erb | 61 ++++++++---- public/javascripts/homework.js | 99 ++++++++++--------- 4 files changed, 106 insertions(+), 70 deletions(-) diff --git a/app/controllers/homework_common_controller.rb b/app/controllers/homework_common_controller.rb index d4c02860e..71782ee28 100644 --- a/app/controllers/homework_common_controller.rb +++ b/app/controllers/homework_common_controller.rb @@ -154,7 +154,21 @@ class HomeworkCommonController < ApplicationController #编程作业相关属性 if @homework.homework_type == 2 + @homework.homework_detail_programing ||= HomeworkDetailPrograming.new + @homework_detail_programing = @homework.homework_detail_programing + @homework_detail_programing.ta_proportion = params[:ta_proportion] || 0.6 + @homework_detail_programing.language = params[:language_type].to_i + @homework.homework_tests.delete_all + inputs = params[:program][:input] + if Array === inputs + inputs.each_with_index do |val, i| + @homework.homework_tests << HomeworkTest.new( + input: val, + output: params[:program][:output][i] + ) + end + end end if @homework.save diff --git a/app/models/homework_common.rb b/app/models/homework_common.rb index 0bff38558..c1e5666ac 100644 --- a/app/models/homework_common.rb +++ b/app/models/homework_common.rb @@ -60,6 +60,6 @@ class HomeworkCommon < ActiveRecord::Base self.homework_type == 2 && self.homework_detail_programing end - delegate :language_name, :to => :homework_detail_programing + delegate :language_name, :language, :to => :homework_detail_programing end diff --git a/app/views/users/_user_homework_form.html.erb b/app/views/users/_user_homework_form.html.erb index b4118bd2a..d221e50c8 100644 --- a/app/views/users/_user_homework_form.html.erb +++ b/app/views/users/_user_homework_form.html.erb @@ -1,6 +1,11 @@ <% content_for :header_tags do %> <%= javascript_include_tag "/assets/kindeditor/kindeditor",'/assets/kindeditor/pasteimg'%> <%= javascript_include_tag 'homework','baiduTemplate' %> + <% end %>
@@ -57,7 +62,7 @@
- + @@ -83,28 +88,42 @@ - diff --git a/public/javascripts/homework.js b/public/javascripts/homework.js index 773a2c209..e07b6b979 100644 --- a/public/javascripts/homework.js +++ b/public/javascripts/homework.js @@ -58,10 +58,10 @@ $(function(){ ); }; - $('#test-program-btn').live('click', test_program); + $('#test-program-btn').on('click', test_program); - $('#commit-program-work-btn').live('click', function(){ + $('#commit-program-work-btn').on('click', function(){ if(!valid_form()){ return; } @@ -89,11 +89,10 @@ $(function(){ $(".HomeWorkCon form").submit(); }); - $('form.edit_student_work').live('keydown', '#program-src', function(){ + $('form.edit_student_work').on('keydown', '#program-src', function(){ tested = false; }); - //发布作业 $('#program-src').focus(function(){ @@ -104,70 +103,74 @@ $(function(){ $('input.date-input').datepicker(datepickerOptions); - $('a.pic_date').live('click', function(){ + $('a.pic_date').on('click', function(){ $(this).parent().prev().first().focus(); }) - $('a.ProBtn').live('click', function(){ - $("#BluePopupBox").dialog({ + $("#BluePopupBox").dialog({ modal: true, + autoOpen: false, dialogClass: 'BluePopupBox', minWidth: 753 - }); - $(".ui-dialog-titlebar").hide(); + }); - $("a.CloseBtn").live('click', function(){ + $('a.ProBtn').on('click', function(){ + $("#BluePopupBox").dialog("open"); + $(".ui-dialog-titlebar").hide(); + $("a.CloseBtn").on('click', function(){ $("#BluePopupBox" ).dialog("close"); }); $('#textarea_input_test').focus(); + }); - $("#BluePopupBox a.BlueCirBtn").live('click', function(){ - var test_numbers = 0; - var valid = true; - var input = null; - var output = null; - var input_groups = []; - $.each($('#BluePopupBox textarea.InputBox'), function(i, val){ - if ($(val).val().length<=0) { - $(val)[0].focus(); - valid =false; - return false; - } - if (test_numbers %2==0) { - input = $(val).val(); - } else { - output = $(val).val(); - input_groups.push({input: input, output: output}); - } - test_numbers += 1; - }); - - var language = $('select.language_type').val() == 1 ? 'C语言' : 'C++语言'; - - if (valid) { - $("input[name=homework_type]").val(2); - $('span.program_detail_info').text('('+language+','+test_numbers/2+'组测试)'); - //保存js值 - var data = { - language_type: $('select.language_type').val(), - input_groups: input_groups - }; - //构建到form中 - $('.program-input').remove(); - var html=bt('t:program-input-list',data); - $("input[name=homework_type]").after(html); - $("#BluePopupBox" ).dialog( "close" ); + $("#BluePopupBox a.BlueCirBtn").on('click', function(){ + var test_numbers = 0; + var valid = true; + var input = null; + var output = null; + var input_groups = []; + $.each($('#BluePopupBox textarea.InputBox'), function(i, val){ + if ($(val).val().length<=0) { + $(val)[0].focus(); + valid =false; + return false; } + if (test_numbers %2==0) { + input = $(val).val(); + } else { + output = $(val).val(); + input_groups.push({input: input, output: output}); + } + test_numbers += 1; }); + + var language = $('select.language_type').val() == 1 ? 'C语言' : 'C++语言'; + + if (valid) { + $("input[name=homework_type]").val(2); + $('span.program_detail_info').text('('+language+','+test_numbers/2+'组测试)'); + //保存js值 + var data = { + language_type: $('select.language_type').val(), + input_groups: input_groups + }; + //构建到form中 + $('.program-input').remove(); + var html=bt('t:program-input-list',data); + $("input[name=homework_type]").after(html); + if($( "#BluePopupBox" ).dialog( "isOpen" )){ + $("#BluePopupBox").dialog( "close" ); + } + } }); - $("#BluePopupBox").live('click', 'a.icon_add', function(){ + $("#BluePopupBox").on('click', 'a.icon_add', function(){ var html = bt('t:test-answer-list', null); $(this).parent('.mt10').after(html); }); - $("#BluePopupBox").live('click', 'a.icon_remove', function(){ + $("#BluePopupBox").on('click', 'a.icon_remove', function(){ $(this).parent('.mt10').remove(); }); }); \ No newline at end of file From 96405d7c0c4a735c1145c392a2df791c3029275f Mon Sep 17 00:00:00 2001 From: sw <939547590@qq.com> Date: Fri, 11 Sep 2015 15:38:58 +0800 Subject: [PATCH 4/7] =?UTF-8?q?=E5=8F=96=E6=B6=88=E4=B9=8B=E5=90=8E?= =?UTF-8?q?=E7=BC=96=E7=A8=8B=E6=8C=89=E9=92=AE=E6=97=A0=E6=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/javascripts/homework.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/javascripts/homework.js b/public/javascripts/homework.js index e07b6b979..9a5d6aa37 100644 --- a/public/javascripts/homework.js +++ b/public/javascripts/homework.js @@ -115,7 +115,7 @@ $(function(){ minWidth: 753 }); - $('a.ProBtn').on('click', function(){ + $('a.ProBtn').live('click', function(){ $("#BluePopupBox").dialog("open"); $(".ui-dialog-titlebar").hide(); $("a.CloseBtn").on('click', function(){ From 37f235c2ab57185b742be2ce3b1b5651d75faa55 Mon Sep 17 00:00:00 2001 From: sw <939547590@qq.com> Date: Fri, 11 Sep 2015 16:22:35 +0800 Subject: [PATCH 5/7] =?UTF-8?q?=E5=AF=BC=E5=85=A5=E7=BC=96=E7=A8=8B?= =?UTF-8?q?=E4=BD=9C=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/users_controller.rb | 15 ++++++++ app/views/users/_user_homework_form.html.erb | 38 +------------------ .../users/_user_programing_attr.html.erb | 36 ++++++++++++++++++ app/views/users/user_select_homework.js.erb | 2 + public/javascripts/homework.js | 2 +- 5 files changed, 55 insertions(+), 38 deletions(-) create mode 100644 app/views/users/_user_programing_attr.html.erb diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index f1608515f..dcea9e276 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -329,11 +329,13 @@ class UsersController < ApplicationController #导入作业,确定按钮 def user_select_homework homework = HomeworkCommon.find_by_id params[:checkMenu] + homework_detail_programing = homework.homework_detail_programing @homework = HomeworkCommon.new if homework @homework.name = homework.name @homework.description = homework.description @homework.end_time = homework.end_time + @homework.homework_type = homework.homework_type @homework.course_id = homework.course_id homework.attachments.each do |attachment| att = attachment.copy @@ -343,6 +345,19 @@ class UsersController < ApplicationController att.save @homework.attachments << att end + + if homework_detail_programing + @homework.homework_detail_programing = HomeworkDetailPrograming.new + @homework_detail_programing = @homework.homework_detail_programing + @homework_detail_programing.ta_proportion = homework_detail_programing.ta_proportion + @homework_detail_programing.language = homework_detail_programing.language + homework.homework_tests.each_with_index do |homework_test| + @homework.homework_tests << HomeworkTest.new( + input: homework_test.input, + output: homework_test.output + ) + end + end end respond_to do |format| format.js diff --git a/app/views/users/_user_homework_form.html.erb b/app/views/users/_user_homework_form.html.erb index d221e50c8..b22053f6d 100644 --- a/app/views/users/_user_homework_form.html.erb +++ b/app/views/users/_user_homework_form.html.erb @@ -89,41 +89,5 @@ diff --git a/app/views/users/_user_programing_attr.html.erb b/app/views/users/_user_programing_attr.html.erb new file mode 100644 index 000000000..6a3b4a773 --- /dev/null +++ b/app/views/users/_user_programing_attr.html.erb @@ -0,0 +1,36 @@ + +

编程作业的测试集设置

+
+
+
+ +
+ <% if edit_mode && homework.is_program_homework? %> + <% homework.homework_tests.each_with_index do |test, index| %> +
+ + + + <% if index != 0 %> + + <% end %> +
+
+ <% end %> + <% else %> +
+ + + +
+
+ <% end %> + +
+ 确  定 +
+
+ +
\ No newline at end of file diff --git a/app/views/users/user_select_homework.js.erb b/app/views/users/user_select_homework.js.erb index acffd2506..001c45fa4 100644 --- a/app/views/users/user_select_homework.js.erb +++ b/app/views/users/user_select_homework.js.erb @@ -5,4 +5,6 @@ $("#homework_end_time").val("<%= @homework.end_time%>"); $("#course_id").val("<%= @homework.course_id%>"); $("#homework_attachments").html("<%= escape_javascript(render :partial => 'users/user_homework_attachment', :locals => { :container => @homework,:has_program => true })%>"); homework_description_editor.html("<%= escape_javascript(@homework.description.html_safe)%>"); +$("#BluePopupBox").html("<%=escape_javascript( render :partial => 'users/user_programing_attr', :locals => {:edit_mode => true, :homework => @homework})%>"); +$("input[name='homework_type']").val("<%= @homework.homework_type%>"); $("#homework_editor").show(); diff --git a/public/javascripts/homework.js b/public/javascripts/homework.js index 9a5d6aa37..45902ef16 100644 --- a/public/javascripts/homework.js +++ b/public/javascripts/homework.js @@ -124,7 +124,7 @@ $(function(){ $('#textarea_input_test').focus(); }); - $("#BluePopupBox a.BlueCirBtn").on('click', function(){ + $("#BluePopupBox a.BlueCirBtn").live('click', function(){ var test_numbers = 0; var valid = true; var input = null; From 90a52aa01b7b8f375fc6bc9157bf704002a50d2a Mon Sep 17 00:00:00 2001 From: sw <939547590@qq.com> Date: Fri, 11 Sep 2015 16:26:35 +0800 Subject: [PATCH 6/7] =?UTF-8?q?=E5=AF=BC=E5=85=A5=E7=BC=96=E7=A8=8B?= =?UTF-8?q?=E4=BD=9C=E4=B8=9A=E5=90=8E=E3=80=81=E6=B5=8B=E8=AF=95=E9=9B=86?= =?UTF-8?q?=E6=95=B0=E9=87=8F=E4=B8=8D=E6=98=BE=E7=A4=BA=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/users/user_select_homework.js.erb | 1 + 1 file changed, 1 insertion(+) diff --git a/app/views/users/user_select_homework.js.erb b/app/views/users/user_select_homework.js.erb index 001c45fa4..5bea36d90 100644 --- a/app/views/users/user_select_homework.js.erb +++ b/app/views/users/user_select_homework.js.erb @@ -8,3 +8,4 @@ homework_description_editor.html("<%= escape_javascript(@homework.description.ht $("#BluePopupBox").html("<%=escape_javascript( render :partial => 'users/user_programing_attr', :locals => {:edit_mode => true, :homework => @homework})%>"); $("input[name='homework_type']").val("<%= @homework.homework_type%>"); $("#homework_editor").show(); +$("#BluePopupBox a.BlueCirBtn").click(); From 760b70971a396fab23df72a488abf1adf58d2669 Mon Sep 17 00:00:00 2001 From: sw <939547590@qq.com> Date: Fri, 11 Sep 2015 16:27:34 +0800 Subject: [PATCH 7/7] =?UTF-8?q?=E5=8F=96=E6=B6=88=E5=AF=BC=E5=85=A5?= =?UTF-8?q?=E7=BC=96=E7=A8=8B=E4=BD=9C=E4=B8=9A=E6=97=B6=E5=AF=B9homework?= =?UTF-8?q?=5Ftype=E7=9A=84=E8=B5=8B=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/users/user_select_homework.js.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/users/user_select_homework.js.erb b/app/views/users/user_select_homework.js.erb index 5bea36d90..308f74938 100644 --- a/app/views/users/user_select_homework.js.erb +++ b/app/views/users/user_select_homework.js.erb @@ -6,6 +6,6 @@ $("#course_id").val("<%= @homework.course_id%>"); $("#homework_attachments").html("<%= escape_javascript(render :partial => 'users/user_homework_attachment', :locals => { :container => @homework,:has_program => true })%>"); homework_description_editor.html("<%= escape_javascript(@homework.description.html_safe)%>"); $("#BluePopupBox").html("<%=escape_javascript( render :partial => 'users/user_programing_attr', :locals => {:edit_mode => true, :homework => @homework})%>"); -$("input[name='homework_type']").val("<%= @homework.homework_type%>"); +//$("input[name='homework_type']").val("<%#= @homework.homework_type%>"); $("#homework_editor").show(); $("#BluePopupBox a.BlueCirBtn").click();