From 2ac827c66fd999b1efd42f6a1362889c37681d97 Mon Sep 17 00:00:00 2001 From: yuanke <249218296@qq.com> Date: Mon, 26 Sep 2016 09:44:47 +0800 Subject: [PATCH 01/56] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E6=B5=8B=E8=AF=95=E5=87=BA=E9=94=99=E6=97=B6=E7=9A=84=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E6=89=93=E5=8D=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/student_work_controller.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/controllers/student_work_controller.rb b/app/controllers/student_work_controller.rb index f6a97e66c..cd80575a2 100644 --- a/app/controllers/student_work_controller.rb +++ b/app/controllers/student_work_controller.rb @@ -106,13 +106,13 @@ class StudentWorkController < ApplicationController rescue Timeout::Error tEndtime = Time.now tUsedtime = (tEndtime.to_i-tStarttime.to_i)*1000+(tEndtime.usec - tStarttime.usec)/1000 - logger.debug "program_test_ex user wait time = #{tUsedtime} 毫秒" + logger.info "program_test_ex user wait time = #{tUsedtime} 毫秒" #status 0:答案正确 -5program_test_ex 函数出错 -4judge代码出错 -3http超时 -2:编译错误 -1:答案错误 2:程序运行超时 resultObj[:status] = -3 CodeTests.create(:homework_id=>@homework.id,:language=>@homework.homework_detail_programing.language,:status=>-3,:wait_time=>tUsedtime,:student_work_id=>student_work.id) rescue => e #-4 judge代码 出错 - logger.debug "program_test_error #{e}" + logger.info "program_test_error #{e}" resultObj[:status] = -4 tmpstatus = -4 CodeTests.create(:homework_id=>@homework.id,:language=>@homework.homework_detail_programing.language,:status=>tmpstatus,:time_used=>0,:wait_time=>0,:student_work_id=>student_work.id) @@ -217,7 +217,7 @@ class StudentWorkController < ApplicationController end rescue #-5 program_test_ex 函数出错 - logger.debug "program_test_error 2" + logger.info "program_test_error 2" resultObj[:status] = -5 tmpstatus = -5 CodeTests.create(:homework_id=>@homework.id,:language=>@homework.homework_detail_programing.language,:status=>tmpstatus,:time_used=>0,:wait_time=>0,:student_work_id=>student_work.id) From 9bfb749e705411b5e17ef6643a4ee8e1e9d47384 Mon Sep 17 00:00:00 2001 From: cxt Date: Mon, 26 Sep 2016 10:17:45 +0800 Subject: [PATCH 02/56] =?UTF-8?q?=E7=8F=AD=E7=BA=A7=E8=B5=84=E6=BA=90?= =?UTF-8?q?=E5=BA=93=E7=9A=84=E8=AF=BE=E5=86=85=E6=90=9C=E7=B4=A2=E6=94=B9?= =?UTF-8?q?=E6=88=90=E7=8F=AD=E5=86=85=E6=90=9C=E7=B4=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/files/_course_file.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/files/_course_file.html.erb b/app/views/files/_course_file.html.erb index 045eec6f7..1157961fe 100644 --- a/app/views/files/_course_file.html.erb +++ b/app/views/files/_course_file.html.erb @@ -98,7 +98,7 @@
<%= form_tag( search_course_files_path(@course), method: 'get',:class => "re_search",:remote=>true) do %> <%= text_field_tag 'name', params[:name], name: "name", :class => 'researchBox fl',:style=>"padding: 0px"%> - <%= submit_tag "课内搜索", :class => "blueBtn mr5 fl",:name => "incourse",:id => "incourse" %> + <%= submit_tag "班内搜索", :class => "blueBtn mr5 fl",:name => "incourse",:id => "incourse" %> <%#= submit_tag "全站搜索", :class => "blueBtn mr5 fl",:name => "insite",:id => "insite" %> <% if is_course_teacher(User.current,@course) || (@course.publish_resource==1 && User.current.member_of_course?(@course) ) %> From 42afe33dab280adc715113d25ebc1d59faa6ee3a Mon Sep 17 00:00:00 2001 From: cxt Date: Mon, 26 Sep 2016 11:12:01 +0800 Subject: [PATCH 03/56] =?UTF-8?q?=E4=BD=9C=E5=93=81=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E7=9A=84=E4=BD=9C=E4=B8=9A=E6=8F=8F=E8=BF=B0=E5=8F=AA=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E4=B8=80=E5=8D=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../_homework_post_brief.html.erb | 2 +- .../student_work/_student_work_list.html.erb | 4 ---- app/views/student_work/index.html.erb | 23 ------------------- 3 files changed, 1 insertion(+), 28 deletions(-) diff --git a/app/views/student_work/_homework_post_brief.html.erb b/app/views/student_work/_homework_post_brief.html.erb index 6b3c0d542..310b4118b 100644 --- a/app/views/student_work/_homework_post_brief.html.erb +++ b/app/views/student_work/_homework_post_brief.html.erb @@ -42,7 +42,7 @@
-
+
<%= homework.description.html_safe %>
diff --git a/app/views/student_work/_student_work_list.html.erb b/app/views/student_work/_student_work_list.html.erb index 6bcb2bb5e..77517f747 100644 --- a/app/views/student_work/_student_work_list.html.erb +++ b/app/views/student_work/_student_work_list.html.erb @@ -54,10 +54,6 @@
From 0e8df56c9aee1467e647ecfd23ae615958f8d4ee Mon Sep 17 00:00:00 2001 From: cxt Date: Mon, 26 Sep 2016 14:38:07 +0800 Subject: [PATCH 04/56] =?UTF-8?q?=E5=88=86=E7=BB=84=E4=BD=9C=E4=B8=9A?= =?UTF-8?q?=E7=9A=84=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../_evaluation_un_group_member_work.html.erb | 21 ++++++++++--------- .../student_work/_evaluation_un_work.html.erb | 10 ++++----- 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/app/views/student_work/_evaluation_un_group_member_work.html.erb b/app/views/student_work/_evaluation_un_group_member_work.html.erb index 842e1c899..3ee9ec891 100644 --- a/app/views/student_work/_evaluation_un_group_member_work.html.erb +++ b/app/views/student_work/_evaluation_un_group_member_work.html.erb @@ -1,8 +1,9 @@ +<% is_expand = st.student_work_projects.empty? %>
  • -
    +
    > <%= link_to(image_tag(url_to_avatar(st.user),:width =>"40",:height => "40", :style => "display:block;"),user_activities_path(st.user), :class => "fl") %> - <% if !st.student_work_projects.empty? %> + <% if !is_expand %> (组长) @@ -11,10 +12,10 @@ 学号:<%= st.user.user_extensions.nil? ? "--" : st.user.user_extensions.student_id%> <% else %> - + -
    - +
diff --git a/app/views/student_work/_evaluation_un_work.html.erb b/app/views/student_work/_evaluation_un_work.html.erb index bb87bfde1..2a2b7faee 100644 --- a/app/views/student_work/_evaluation_un_work.html.erb +++ b/app/views/student_work/_evaluation_un_work.html.erb @@ -95,19 +95,19 @@ <%= score.nil? ? "--" : format("%.1f",score<0 ? 0 : score)%> <% unless score.nil?%> -
+
作品最终评分为 -  <%= student_work.final_score%> 分。 +  <%= student_work.final_score%> 
迟交扣分   <%= student_work.homework_common && student_work.homework_common.teacher_priority == 1 && student_work.teacher_score ? 0 : student_work.late_penalty %> -  分, +  分
缺评扣分   <%= student_work.homework_common && student_work.homework_common.teacher_priority == 1 && student_work.teacher_score ? 0 : student_work.absence_penalty%> -  分, +  分
最终成绩为 -  <%= format("%.1f",score<0 ? 0 : score)%> 分。 +  <%= format("%.1f",score<0 ? 0 : score)%> 
<% end%> From 4db59ea0d328d2a56443fab6c2bd7366a1ab3fc1 Mon Sep 17 00:00:00 2001 From: cxt Date: Mon, 26 Sep 2016 15:07:25 +0800 Subject: [PATCH 05/56] =?UTF-8?q?=E6=88=91=E7=9A=84=E9=A2=98=E5=BA=93=20?= =?UTF-8?q?=E5=88=87=E6=8D=A2=E4=B8=A4=E6=AC=A1=E5=90=8E=E4=BD=9C=E4=B8=9A?= =?UTF-8?q?=E4=B8=A2=E5=A4=B1=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/users_controller.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 87dc127a0..792ba4690 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -625,7 +625,7 @@ class UsersController < ApplicationController visible_course_ids = visible_course.empty? ? "(-1)" : "(" + visible_course.map{|course| course.id}.join(",") + ")" @homeworks = HomeworkCommon.where("course_id in #{visible_course_ids} and publish_time <= '#{Date.today}'").order("#{@order} #{@b_sort}") end - @type = params[:type] + @type = params[:type] ? params[:type] : '1' @limit = 10 @is_remote = true @hw_count = @homeworks.count @@ -808,7 +808,7 @@ class UsersController < ApplicationController #@homeworks = @homeworks.where("homework_type = 3").reorder("#{@order} #{@b_sort}") end end - @type = params[:type] + @type = params[:type] ? params[:type] : '1' @property = params[:property] @is_import = params[:is_import] @limit = params[:is_import].to_i == 1 ? 15 : 10 From 1620a13565411cb7c3e82b055f1a2b96f16edcb3 Mon Sep 17 00:00:00 2001 From: yuanke <249218296@qq.com> Date: Tue, 27 Sep 2016 09:13:46 +0800 Subject: [PATCH 06/56] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=9B=BE=E7=89=87?= =?UTF-8?q?=E6=94=BE=E5=A4=A7js=E7=9A=84=E4=B8=80=E4=B8=AABUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/javascripts/application.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/public/javascripts/application.js b/public/javascripts/application.js index aeb9e645a..5165a67bc 100644 --- a/public/javascripts/application.js +++ b/public/javascripts/application.js @@ -1054,10 +1054,12 @@ function showNormalImage(id) { //无格式的图片不让点击显示大图,显示的话会有问题 var tmpsrc = image.attr('src'); - if (tmpsrc.indexOf('.gif') >= 0 || tmpsrc.indexOf('.jpg') >= 0 || tmpsrc.indexOf('.jpeg') >= 0 || tmpsrc.indexOf('.png') >= 0 || tmpsrc.indexOf('.bmp') >= 0 || tmpsrc.indexOf('.png') >= 0 || tmpsrc.indexOf('.BMP') >= 0 || tmpsrc.indexOf('.JPEG') >= 0 || tmpsrc.indexOf('.JPG') >= 0 || tmpsrc.indexOf('.PNG') >= 0 || tmpsrc.indexOf('.GIF') >= 0) { - var element = $("").attr("href", image.attr('src')); - image.wrap(element); - $(image).parent().colorbox({rel: 'nofollow', close: "关闭", returnFocus: false}); + if(tmpsrc){ + if (tmpsrc.indexOf('.gif') >= 0 || tmpsrc.indexOf('.jpg') >= 0 || tmpsrc.indexOf('.jpeg') >= 0 || tmpsrc.indexOf('.png') >= 0 || tmpsrc.indexOf('.bmp') >= 0 || tmpsrc.indexOf('.png') >= 0 || tmpsrc.indexOf('.BMP') >= 0 || tmpsrc.indexOf('.JPEG') >= 0 || tmpsrc.indexOf('.JPG') >= 0 || tmpsrc.indexOf('.PNG') >= 0 || tmpsrc.indexOf('.GIF') >= 0) { + var element = $("").attr("href", image.attr('src')); + image.wrap(element); + $(image).parent().colorbox({rel: 'nofollow', close: "关闭", returnFocus: false}); + } } } //$('#'+id+' a').colorbox({rel:'nofollow', close: "关闭", returnFocus: false}); //有图片才将链接变为弹出框 From cb21fb8d3d2748f45476060e5cb15d22671f5c2d Mon Sep 17 00:00:00 2001 From: Tim Date: Tue, 27 Sep 2016 10:43:10 +0800 Subject: [PATCH 07/56] =?UTF-8?q?=E8=B4=A8=E9=87=8F=E5=88=86=E6=9E=90?= =?UTF-8?q?=E5=92=8C=E5=88=86=E6=9E=90=E7=BB=93=E6=9E=9C=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E5=AE=BD=E5=BA=A6=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/quality_analysis/_result_list.html.erb | 6 +++++- app/views/quality_analysis/_show.html.erb | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/app/views/quality_analysis/_result_list.html.erb b/app/views/quality_analysis/_result_list.html.erb index 0c2bc9497..f4cd55c5f 100644 --- a/app/views/quality_analysis/_result_list.html.erb +++ b/app/views/quality_analysis/_result_list.html.erb @@ -2,7 +2,7 @@ // $("#ajax-indicator span").text("载入中..."); $("#ajax-indicator").show(); -
+

分析结果

    @@ -35,4 +35,8 @@ <%#= 数据为空时候界面,待完善 %> <% end %> + + diff --git a/app/views/quality_analysis/_show.html.erb b/app/views/quality_analysis/_show.html.erb index d6c8c0a56..0e2b9b4d4 100644 --- a/app/views/quality_analysis/_show.html.erb +++ b/app/views/quality_analysis/_show.html.erb @@ -1,5 +1,5 @@ <%= javascript_include_tag 'highcharts','highcharts-more' %> -
    +

    质量分析

    @@ -161,3 +161,7 @@
    <% end %> + + From edd03d05d04f130c6aab46c786299d9fac6bca51 Mon Sep 17 00:00:00 2001 From: Tim Date: Tue, 27 Sep 2016 14:03:26 +0800 Subject: [PATCH 08/56] =?UTF-8?q?=E6=97=A5=E5=8E=86=E4=B8=ADissue=E5=8F=B7?= =?UTF-8?q?=E4=B8=8E=E5=AE=8C=E6=88=90=E5=BA=A6=E8=B6=85=E5=87=BA=E8=BE=B9?= =?UTF-8?q?=E6=A1=86=E9=97=AE=E9=A2=98=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/helpers/issues_helper.rb | 4 ++-- app/views/calendars/show.html.erb | 6 ------ app/views/common/_calendar.html.erb | 7 +++---- public/stylesheets/css/project.css | 2 +- 4 files changed, 6 insertions(+), 13 deletions(-) diff --git a/app/helpers/issues_helper.rb b/app/helpers/issues_helper.rb index 0ab09802f..7aec64718 100644 --- a/app/helpers/issues_helper.rb +++ b/app/helpers/issues_helper.rb @@ -60,9 +60,9 @@ module IssuesHelper def states_done_ratio(issue) done_ratio = issue.done_ratio if done_ratio == 100 - "#{l(:label_done_ratio_endding)}".html_safe + "#{l(:label_done_ratio_endding)}".html_safe else - "#{l(:label_done_ratio_doing)}".html_safe + "#{l(:label_done_ratio_doing)}".html_safe end end diff --git a/app/views/calendars/show.html.erb b/app/views/calendars/show.html.erb index 26ad8501c..05ce3bcac 100644 --- a/app/views/calendars/show.html.erb +++ b/app/views/calendars/show.html.erb @@ -5,12 +5,6 @@ <%= form_tag({:controller => 'calendars', :action => 'show', :project_id => @project}, :method => :get, :id => 'query_form') do %> <%= hidden_field_tag 'set_filter', '1' %> -
    "> - <%= l(:label_filter_plural) %> -
    "> - <%= render :partial => 'queries/filters', :locals => {:query => @query} %> -
    -

    <%= link_to_previous_month(@year, @month) %> | <%= link_to_next_month(@year, @month) %>

    diff --git a/app/views/common/_calendar.html.erb b/app/views/common/_calendar.html.erb index b2aad3812..2f4c61a77 100644 --- a/app/views/common/_calendar.html.erb +++ b/app/views/common/_calendar.html.erb @@ -24,10 +24,9 @@ <%= render_issue_tooltip i %>
<% else %> - - <%= h("#{i.project} -") unless @project && @project == i.project %> - <%= link_to_version i%> - + + <%= h("#{i.project} -") unless @project && @project == i.project %> + <%= link_to_version i%> <% end %> <% end %> diff --git a/public/stylesheets/css/project.css b/public/stylesheets/css/project.css index 4a2ec5683..bfa85c5bd 100644 --- a/public/stylesheets/css/project.css +++ b/public/stylesheets/css/project.css @@ -167,7 +167,7 @@ div.thumbnails div {background:#fff;display:inline-block;margin-right:2px;} /* 里程碑 */ .roadmap_box{ background:#f8f8f8; width:648px; padding:10px; margin-top:5px; border:1px solid #ddd; color:#555;} .progress{ width:648px; height:20px; margin-bottom:5px; background:#e9e9e9;} -.closed{ background:#bae0ba; height:20px;} +.closed{ background:#bae0ba;} .done{ background:#d3edd3; display:block;height:20px;float:left;} .roadmap_box{ margin-bottom:10px;} .roadmap_list_ul{border:1px solid #ddd; border-bottom:none; margin-bottom:10px;} From a87e95d0a9b4ea548b4335a1c66382241a22d80c Mon Sep 17 00:00:00 2001 From: Tim Date: Tue, 27 Sep 2016 15:19:04 +0800 Subject: [PATCH 09/56] =?UTF-8?q?=E8=AF=BE=E7=A8=8B=E7=95=99=E8=A8=80?= =?UTF-8?q?=EF=BC=8C=E9=A1=B9=E7=9B=AE=E7=94=A8=E6=88=B7=E5=8F=8D=E9=A6=88?= =?UTF-8?q?=E6=A0=B7=E5=BC=8F=E5=90=8C=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/courses/_courses_jours.html.erb | 2 +- app/views/courses/_history.html.erb | 2 +- app/views/courses/feedback.html.erb | 2 +- app/views/words/_journal_reply_items.html.erb | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/views/courses/_courses_jours.html.erb b/app/views/courses/_courses_jours.html.erb index 0aefb0d18..3d679e591 100644 --- a/app/views/courses/_courses_jours.html.erb +++ b/app/views/courses/_courses_jours.html.erb @@ -19,7 +19,7 @@ -
+

<%= l(:label_leave_message) %>

<% if !User.current.logged?%> diff --git a/app/views/courses/_history.html.erb b/app/views/courses/_history.html.erb index 35e0726a8..eb7ecff7a 100644 --- a/app/views/courses/_history.html.erb +++ b/app/views/courses/_history.html.erb @@ -5,7 +5,7 @@
<%= link_to image_tag(url_to_avatar(journal.user),:width => '46',:height => '46'), user_path(journal.user) %>
-
+
diff --git a/app/views/courses/feedback.html.erb b/app/views/courses/feedback.html.erb index 5eae03656..3b2d3030c 100644 --- a/app/views/courses/feedback.html.erb +++ b/app/views/courses/feedback.html.erb @@ -2,7 +2,7 @@
-
+

<%= l(:label_contest_userresponse) %>

diff --git a/app/views/words/_journal_reply_items.html.erb b/app/views/words/_journal_reply_items.html.erb index a568152b3..cdfee3e9f 100644 --- a/app/views/words/_journal_reply_items.html.erb +++ b/app/views/words/_journal_reply_items.html.erb @@ -11,7 +11,7 @@ <%= image_tag url_to_avatar(nil),:width => '30',:height => '30' %> <% end %>
-
+
<% id = 'project_respond_form_'+ reply.id.to_s %> <%= link_to reply.user.show_name, user_path(reply.user) %> <%= l(:label_reply_to)%> From d976dbf673a8daa6b55107c8c0c38c998d1a1a5a Mon Sep 17 00:00:00 2001 From: yuanke <249218296@qq.com> Date: Tue, 27 Sep 2016 18:31:31 +0800 Subject: [PATCH 10/56] =?UTF-8?q?=E4=BD=9C=E4=B8=9A=E8=AF=A6=E6=83=85?= =?UTF-8?q?=E9=A1=B5=E7=9A=84=E6=98=BE=E7=A4=BA=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/student_work/_homework_post_brief.html.erb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/views/student_work/_homework_post_brief.html.erb b/app/views/student_work/_homework_post_brief.html.erb index 6b3c0d542..bcc8e2235 100644 --- a/app/views/student_work/_homework_post_brief.html.erb +++ b/app/views/student_work/_homework_post_brief.html.erb @@ -22,7 +22,7 @@ <% end %> <% is_pro = homework.homework_type == 2 && is_teacher %> -<% is_base_group = homework.homework_type == 3 && homework.homework_detail_group.base_on_project == 1 && !is_teacher %> +<% is_base_group = homework.homework_type == 3 && (homework.homework_detail_group.base_on_project == 1 || !(cur_user_works_for_homework(homework).nil?)) && !is_teacher %>
<%= render :partial => 'users/homework_opr', :locals => {:activity => homework, :is_teacher => is_teacher, :hw_status => 5, :user_activity_id => homework.id} %> <% if is_pro || is_base_group %> @@ -42,7 +42,7 @@
-
+
<%= homework.description.html_safe %>
From 8b8d87856468a9fd782bc68c549e40b75bdef60f Mon Sep 17 00:00:00 2001 From: yuanke <249218296@qq.com> Date: Tue, 27 Sep 2016 19:28:40 +0800 Subject: [PATCH 11/56] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E5=85=B3=E6=B3=A8?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E5=92=8C=E6=88=90=E5=91=98=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E8=B0=83=E6=95=B4=E5=AE=BD=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/projects/_project_member_list.html.erb | 2 +- app/views/projects/member.html.erb | 6 +++++- app/views/projects/watcherlist.html.erb | 10 +++++++--- public/stylesheets/css/public.css | 1 + 4 files changed, 14 insertions(+), 5 deletions(-) diff --git a/app/views/projects/_project_member_list.html.erb b/app/views/projects/_project_member_list.html.erb index 71ea21322..7bdac2ba4 100644 --- a/app/views/projects/_project_member_list.html.erb +++ b/app/views/projects/_project_member_list.html.erb @@ -1,4 +1,4 @@ -
+
加入时间
diff --git a/app/views/projects/member.html.erb b/app/views/projects/member.html.erb index 1f3f76ea3..eb46a41e6 100644 --- a/app/views/projects/member.html.erb +++ b/app/views/projects/member.html.erb @@ -1,4 +1,4 @@ -
+

<%= @subPage_title %>

<% if is_project_manager?(User.current, @project) %> @@ -11,3 +11,7 @@ <%= render :partial => @render_file, :locals => {:members => @members} %>
+ + diff --git a/app/views/projects/watcherlist.html.erb b/app/views/projects/watcherlist.html.erb index 76e7c9d04..180cd22b0 100644 --- a/app/views/projects/watcherlist.html.erb +++ b/app/views/projects/watcherlist.html.erb @@ -1,7 +1,7 @@ -
+

<%= l(:label_user_watcher)%>

-
+
加入时间
@@ -23,4 +23,8 @@
-<% html_title(l(:label_followers)) -%> \ No newline at end of file +<% html_title(l(:label_followers)) -%> + + \ No newline at end of file diff --git a/public/stylesheets/css/public.css b/public/stylesheets/css/public.css index d4cce2679..4937bd883 100644 --- a/public/stylesheets/css/public.css +++ b/public/stylesheets/css/public.css @@ -722,6 +722,7 @@ a.wzan_visited{background:url(../images/pic_zan.png) 0 0 no-repeat;} /* 学生列表*/ .st_list{ width:670px;} +.st_list2{ width:730px;} .st_search{ } .st_search span{ font-size:14px; font-weight:bold; color:#606060; margin-right:35px;} .st_search_input{ border:1px solid #1c9ec7; background:#fff; height:20px; color:#c4c4c4; width:220px; padding-left:5px; margin-bottom:5px;} From 7ef7c0c6f0cf34e179472f065284a45dc8b55fa6 Mon Sep 17 00:00:00 2001 From: huang Date: Tue, 27 Sep 2016 19:41:10 +0800 Subject: [PATCH 12/56] =?UTF-8?q?issue=E8=BF=87=E6=BB=A4=E6=9D=A1=E4=BB=B6?= =?UTF-8?q?=E5=AF=BC=E5=87=BA=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/issues/index.html.erb | 38 ++++++++++++++++++++++++--------- 1 file changed, 28 insertions(+), 10 deletions(-) diff --git a/app/views/issues/index.html.erb b/app/views/issues/index.html.erb index d1bde712e..73decbf95 100644 --- a/app/views/issues/index.html.erb +++ b/app/views/issues/index.html.erb @@ -44,12 +44,30 @@ // }); } - function remote_function_export() { - $("#export_issue_hidden").attr("value","1"); -// $("#issue_query_form").attr("format","xls"); - $("#issue_query_form").submit(); + function remote_function_export(project_id) { +// $("#export_issue_hidden").attr("value","1"); +// $("#issue_query_form").attr("set_filter","1"); +// $("#issue_query_form").attr("action","/projects/"+project_id+"/issues.xls"); +// $("#issue_query_form").submit(); +// $("#issue_query_form").attr("action","/projects/"+project_id+"/issues"); // $("#issue_query_form").removeAttr("format"); - $("#export_issue_hidden").attr("value","0"); +// $("#issue_query_form").attr("set_filter","0"); +// $("#export_issue_hidden").attr("value","0"); + + var tracker_id = $("#tracker_id").attr("value"); + var subject = $("#v_subject").attr("value"); + var assigned_to_id = $("#assigned_to_id").attr("value"); + var fixed_version_id = $("#fixed_version_id").attr("value"); + var status_id = $("#status_id").attr("value"); + var done_ratio = $("#done_ratio").attr("value"); + var test = $("#test").attr("value"); + var author_id = $("#author_id").attr("value"); + var issue_create_date_start = $("#issue_date_start_issue_export").attr("value"); + var issue_create_date_end = $("#issue_date_end_issue_export").attr("value"); + $("#sendexcel").attr("href","/projects/"+project_id+"/issues.xls?export=true&set_filter=1&tracker_id="+tracker_id+"&assigned_to_id="+assigned_to_id+"&fixed_version_id="+fixed_version_id+"&status_id="+status_id+"&done_ratio="+done_ratio+"&test="+test+"&author_id="+author_id+"&subject="+subject+"&issue_create_date_start="+issue_create_date_start+"&issue_create_date_end="+issue_create_date_end); + ///projects/1811/issues.xls?export=true&set_filter=1 + + } // function nh_reset_form() { @@ -106,11 +124,11 @@
  • 关闭<%#= @issues_filter_author_count %><%= @project.issues.where(:status_id => 5 ).visible.all.count %>
  • - - " class="hw_btn_blue fr" alt="导出EXCEL" onclick="remote_function_export()">导出EXCEL + + " id="sendexcel" class="hw_btn_blue fr" alt="导出EXCEL" onclick="remote_function_export('<%= @project.id %>')">导出EXCEL
    <% unless @project.enabled_modules.where("name = 'issue_tracking'").empty? %> - <%= form_tag({:controller => 'issues', :action => 'index', :project_id => @project},:remote=>'true', :method => :get,:id=>"issue_query_form", :class => 'query_form') do %> + <%= form_tag({:controller => 'issues', :action => 'index', :project_id => @project},:remote=>'xls', :method => :get,:id=>"issue_query_form", :class => 'query_form') do %> <%= hidden_field_tag 'set_filter', '1' %> <%= hidden_field_tag 'export_issue_hidden', '0' %> @@ -122,12 +140,12 @@ 清除
    - + <%= calendar_for('issue_create_date_end_show')%>
    - + <%= calendar_for('issue_create_date_start_show')%>
    From d656d3e94c909a992b486d922cbdcdf7d5a558b5 Mon Sep 17 00:00:00 2001 From: huang Date: Tue, 27 Sep 2016 19:43:11 +0800 Subject: [PATCH 13/56] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E8=AF=84=E5=88=86?= =?UTF-8?q?=E4=B8=BA0=20=E7=9A=84=E6=97=B6=E5=80=99=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/layouts/_base_project_top.html.erb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/views/layouts/_base_project_top.html.erb b/app/views/layouts/_base_project_top.html.erb index c99155fad..2610b585b 100644 --- a/app/views/layouts/_base_project_top.html.erb +++ b/app/views/layouts/_base_project_top.html.erb @@ -25,13 +25,13 @@

    项目评分: <% if @project.project_type == 0 %> - <% unless static_project_score(@project.project_score) == 0 %> + <%# unless static_project_score(@project.project_score) == 0 %> <%= link_to(format("%.2f" ,static_project_score(@project.project_score)).to_i, {:controller => 'projects', :action => 'show_projects_score', :remote => true, :id => @project.id}, :class => "sy_cblue" ) %> - <% end %> + <%# end %> <% end %> 浏览:<%= @project.visits.to_i %> From d647f7153acb6dc81b1323dd2275a1c8f16e5b33 Mon Sep 17 00:00:00 2001 From: huang Date: Tue, 27 Sep 2016 20:01:23 +0800 Subject: [PATCH 14/56] =?UTF-8?q?=E6=96=B0=E5=BB=BA=E9=87=8C=E7=A8=8B?= =?UTF-8?q?=E7=A2=91=E6=9C=AF=E8=AF=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/locales/zh.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/locales/zh.yml b/config/locales/zh.yml index d153ffe95..d57f29c39 100644 --- a/config/locales/zh.yml +++ b/config/locales/zh.yml @@ -623,7 +623,7 @@ zh: label_course_news_description: '课程必须是高校正式开设的课程,或是围绕特定主题定期发布课程资料的公共开放课程;
    如果您想创建一个协作研究空间,请您前往“我的项目”页面创建项目,谢谢!' label_course_board: 讨论区 label_version: 版本 - label_version_new: 新建版本 + label_version_new: 新建里程碑 label_close_versions: 关闭已完成的版本 label_confirmation: 确认 From b679783cc02739a9b51e0570ce1d5ca684c846c4 Mon Sep 17 00:00:00 2001 From: huang Date: Tue, 27 Sep 2016 20:04:29 +0800 Subject: [PATCH 15/56] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E5=8A=A8=E6=80=81?= =?UTF-8?q?=E4=B8=ADissue=E5=9B=9E=E5=A4=8D=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/users/_project_issue.html.erb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/views/users/_project_issue.html.erb b/app/views/users/_project_issue.html.erb index e4f24d4e0..5a0065f86 100644 --- a/app/views/users/_project_issue.html.erb +++ b/app/views/users/_project_issue.html.erb @@ -95,7 +95,9 @@

    - +
    + <%= render :partial => 'users/project_issue_reply', :locals => {:activity => activity, :user_activity_id => user_activity_id} %> +
    diff --git a/app/views/courses/_searchmembers.html.erb b/app/views/courses/_searchmembers.html.erb index b864bfd8f..fe71b721c 100644 --- a/app/views/courses/_searchmembers.html.erb +++ b/app/views/courses/_searchmembers.html.erb @@ -1,11 +1,35 @@ -<%= form_tag( searchmembers_course_path(@course), method: 'get',:class => "f_l",:remote=>true,:id => "search_student") do %> - <%= text_field_tag 'name', params[:name], name: "name", :class => 'st_search_input', :placeholder => '输入学生登录名、姓名、学号进行搜索'%> - <% if @group %> - <%= hidden_field "search_group_id", params[:search_group_id],:value => "#{@group.id}", name: 'search_group_id' %> - - <% else %> - +
    + <% if @canShowCode %> + 添加分班 + + <% end %> + +
    + + \ No newline at end of file diff --git a/app/views/courses/addgroups.js.erb b/app/views/courses/addgroups.js.erb index f0c0f4be3..494f26bae 100644 --- a/app/views/courses/addgroups.js.erb +++ b/app/views/courses/addgroups.js.erb @@ -1,2 +1,4 @@ $("#st_groups").html("<%= escape_javascript( render :partial => 'new_groups_name', locals: {:course_groups => @course_groups})%>"); -$("#member_content").html("<%= escape_javascript( render :partial => 'new_member_list', :locals => {:members => @members})%>"); \ No newline at end of file +$("#member_content").html("<%= escape_javascript( render :partial => 'new_member_list', :locals => {:members => @members})%>"); +$('#group_name').val(''); +$('#new_group_name').hide(); \ No newline at end of file diff --git a/app/views/courses/member.html.erb b/app/views/courses/member.html.erb index 4eeef6d1a..9ddca3fa5 100644 --- a/app/views/courses/member.html.erb +++ b/app/views/courses/member.html.erb @@ -1,17 +1,35 @@ -
    -
    -

    <%= @subPage_title%>

    - <% if User.current.allowed_to?(:as_teacher,@course) %> - - <%=link_to "成员管理", :controller => 'courses', :action => 'settings', :id => @course.id, :tab=>'member' %> - - <% end %> +<% if @role == 1 %> +
    +
    +

    <%= @subPage_title%>

    + <% if User.current.allowed_to?(:as_teacher,@course) %> + + <%=link_to "成员管理", :controller => 'courses', :action => 'settings', :id => @course.id, :tab=>'member' %> + + <% end %> +
    + <%= render :partial => 'course_teacher', :locals => {:members => @members} %> +
    +<% else %> +
    +
    +

    <%= @subPage_title %>

    +
    +
      +
    • +
        +
      • <%= link_to l(:label_export_excel), export_course_member_excel_course_path(@course,:format => 'xls'), :class => 'hw_more_li'%>
      • + <% if User.current.allowed_to?(:as_teacher,@course) %> +
      • + <%=link_to "成员管理", :controller => 'courses', :action => 'settings', :id => @course.id, :tab => 'member', :class => 'hw_more_li' %> +
      • + <% end %> +
      +
    • +
    +
    +
    + <%= render :partial => 'course_student', :locals => {:members => @members} %>
    -<% if @subPage_title == l(:label_student_list)%> - <%= render :partial => 'course_student', :locals => {:members => @members} %> -<% else%> - <%= render :partial => 'course_teacher', :locals => {:members => @members} %> -<% end%> -
    - +<% end %> diff --git a/public/images/sy/sy_icons02.png b/public/images/sy/sy_icons02.png new file mode 100644 index 0000000000000000000000000000000000000000..7d29ef2a9d231b23c3c502ade1f3b34e557c47b4 GIT binary patch literal 199603 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�m{XqI@Ou7k&ah6i{q1{JHfkf9xMXEt1 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 z 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 literal 0 HcmV?d00001 diff --git a/public/javascripts/course.js b/public/javascripts/course.js index b9d02d18e..dbf68ea39 100644 --- a/public/javascripts/course.js +++ b/public/javascripts/course.js @@ -46,6 +46,7 @@ function add_group(url,course_id) { function edit_group(id,url,course_id,group_id) { var group_name = $('#'+id).val(); + var group_id = $('#'+group_id).val(); $.get( url, { @@ -56,7 +57,7 @@ function edit_group(id,url,course_id,group_id) }, function (data) { if (data.valid) { - $("#update_group_"+group_id).submit(); + $("#update_group_form").submit(); } else { diff --git a/public/stylesheets/css/common.css b/public/stylesheets/css/common.css index bf37bf3a4..59e052c86 100644 --- a/public/stylesheets/css/common.css +++ b/public/stylesheets/css/common.css @@ -81,7 +81,7 @@ h4{ font-size:14px;}/*color:#3b3b3b;*/ /* Float & Clear */ .clear{ zoom:1;} -.clear:after {content:".";height:0;visibility:hidden;display:block;clear:both;} +.clear:after {clear:both;content:".";display:block;font-size:0;height:0;line-height:0;visibility:hidden} .cl{ clear:both; overflow:hidden; } .fl{float:left;} .fr{float:right;} diff --git a/public/stylesheets/css/courses.css b/public/stylesheets/css/courses.css index eccbcc9b1..a21633e44 100644 --- a/public/stylesheets/css/courses.css +++ b/public/stylesheets/css/courses.css @@ -530,7 +530,7 @@ a:hover.blueCir{ background:#3598db; color:#fff;} .courseR {width:220px; padding:10px; background-color:#ffffff; margin-top:10px;} /*20160310分班样式*/ -.select-class-option {width:125px;} +.select-class-option {width:100px;} /*20160520作品列表table*/ .hwork-table-wrap {width:720px; border-collapse:collapse; vertical-align:middle; table-layout:fixed;} diff --git a/public/stylesheets/syllabus.css b/public/stylesheets/syllabus.css index 1a04c73a5..27054d92a 100644 --- a/public/stylesheets/syllabus.css +++ b/public/stylesheets/syllabus.css @@ -634,3 +634,40 @@ a:hover.sy_class_ltitle{ color:#333;} .sy_new_name{ display:block;max-width:120px; overflow:hidden;white-space: nowrap; text-overflow:ellipsis;} .sy_new_long_name{ display:block;width:180px; overflow:hidden;white-space: nowrap; text-overflow:ellipsis;} .mt12{ margin-top:12px;} + +/*20160919分班*/ +.sy_class_nobg{ background-color:#eaebec;} +.sy_class_r_head{ border: 1px solid #e7e7e7; background-color: #fff; padding:10px 15px; position: relative;} +.sy_class_r_head h3{ font-size: 14px; color: #333;} +.sy_class_r_more{ display: block;} +.sy_class_fenban{border: 1px solid #e7e7e7; background-color: #fff; padding:15px;} +.sy_fenban_input{ height: 28px; background-color: #fff; border: 1px solid #d1d1d1;-webkit-border-radius:3px;-moz-border-radius:3px;-o-border-radius:3px;border-radius:3px; border:1px solid #d3d3d3;padding-left:5px; color:#888; box-shadow: inset 0px 0px 5px #dcdcdc; } +.sy_icons_edit{ display: inline-block; padding:9px;background:url(../images/sy/sy_icons02.png) 0 1px no-repeat; } +.sy_icons_del{ padding:9px;background:url(../images/sy/sy_icons02.png) 0 -21px no-repeat;} +.sy_icons_edit:hover{ background:url(../images/sy/sy_icons02.png) -20px 1px no-repeat; } +.sy_icons_del:hover{ background:url(../images/sy/sy_icons02.png) -20px -21px no-repeat;} +.sy_icons_tips{padding:9px;background:url(../images/sy/sy_icons02.png) 0 -66px no-repeat;} +.sy_sortupbtn{display: inline-block; width:15px; height:18px;background:url(../images/sy/sy_icons02.png) 0 -39px no-repeat;} +.sy_sortdownbtn{display: inline-block; width:15px; height:18px;background:url(../images/sy/sy_icons02.png) -22px -39px no-repeat;} +.sy_fenban_list{-webkit-border-radius:3px;-moz-border-radius:3px;-o-border-radius:3px;border-radius:3px; border:1px solid #d2d8e6; padding:5px 10px;background: #f8f9fd} +.sy_fenban_list a{ color:#3b94d6;} +.sy_fenban_list a:hover{ color:#2788d0;} +.sy_class_users_st{ width:30px; } +.sy_class_users_st_name{ display: inline-block;width:70px; overflow:hidden;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;} +.sy_class_users_st_num{ display: inline-block;width:90px; overflow:hidden;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;} +.sy_class_users_st img{ width:30px;height:30px; border: 1px solid #fff;-webkit-border-radius:50px;-moz-border-radius:50px;-o-border-radius:50px;border-radius:50px;} +.sy_fenban_select{height: 28px; background-color: #fff; border: 1px solid #d1d1d1;-webkit-border-radius:3px;-moz-border-radius:3px;-o-border-radius:3px;border-radius:3px; border:1px solid #d3d3d3;padding-left:5px; color:#888; box-shadow: inset 0px 0px 5px #dcdcdc; } +.sy_new_table_width tr th.sy_th10{ width: 10%; } +.sy_new_table_width tr th.sy_th0{ width: 12.5%; } +.sy_new_table_width tr th.sy_th15{ width: 15%; } +.sy_new_table_width tr th.sy_th7{ width: 7%;} +.sy_new_table_width tr th.sy_th13{ width: 13%;} +.sy_fenban_tap{ cursor: pointer; position: relative;} +.sy_fenban_tap:hover .sy_fenban_show{ display: block;} +.sy_fenban_show{ width:140px; z-index: 999;text-align: center; line-height:2.0; font-size:12px; font-weight: normal;color:#888;background-color:#fff; border:1px solid #eaeaea;border-radius:5px;position:absolute;left:20px; top:30px;padding:5px 0px;display:none; box-shadow: 0px 2px 8px rgba(146, 153, 169, 0.5);} +.sy_tips_box{ position: relative; cursor: pointer;} +.sy_tips_box:hover .sy_tips_box_inner{ display: block;} +.sy_tips_box_inner{ position: absolute;line-height: 2.0;padding: 5px 10px; white-space: nowrap; background-color: #fff; left:30px; top: -5px; box-shadow: 0px 2px 8px rgba(146, 153, 169, 0.5);} +.sy_tips_box_inner span { display: block; border-width: 10px;position: absolute;top: 15px; left: -18px; border-style: dashed solid dashed dashed;border-color: transparent #fff transparent transparent;font-size: 0;line-height: 0;} +.hw_search_box a.hw_btn_search{display:block; width:20px; height:20px; background:url(../images/hw/icons_hw.png) 0 -57px no-repeat; position:absolute; right:5px; top:5px;} + From 6ece9c0463739a5ee036f60ee636166633fda125 Mon Sep 17 00:00:00 2001 From: huang Date: Wed, 28 Sep 2016 10:40:56 +0800 Subject: [PATCH 20/56] =?UTF-8?q?=E6=80=A7=E8=83=BD=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/issues_controller.rb | 86 ++++++++++------------------ app/views/issues/index.html.erb | 4 +- app/views/issues/index.js.erb | 4 +- 3 files changed, 35 insertions(+), 59 deletions(-) diff --git a/app/controllers/issues_controller.rb b/app/controllers/issues_controller.rb index 263155f91..0940dbdf8 100644 --- a/app/controllers/issues_controller.rb +++ b/app/controllers/issues_controller.rb @@ -58,27 +58,26 @@ class IssuesController < ApplicationController include ApplicationHelper def index + # 为了性能所有用了两种模式,issue的@query查询所有的没有优势 + # 但是对过滤条件很有有时 if params[:set_filter] != "1" @project_base_tag = (params[:project_id] || @issue.project) ? 'base_projects':'base' - @issues_filter = Issue.where(:project_id => @project.id).order('updated_on desc') + if User.current.member_of?(@project) + @issues_filter = Issue.where(:project_id => @project.id).order('updated_on desc') + else + @issues_filter = Issue.where(:project_id => @project.id, :is_private => 0).order('updated_on desc') + end + open_and_close_num(@project) @issue_count = @issues_filter.count @limit = 10 @is_remote = true @issue_pages = Paginator.new @issue_count, @limit, params['page'] || 1 @offset ||= @issue_pages.offset @issues = paginateHelper @issues_filter, @limit - # if params[:set_filter] - # @set_filter = params[:set_filter] - # end - # @issue_count_by_group = @query.issue_count_by_group respond_to do |format| format.js format.html { render :template => 'issues/index', :layout => @project_base_tag }#by young format.api {Issue.load_visible_relations(@issues) if include_in_api_response?('relations')} - # format.json { render :json => @issues.map { |issue| issue.to_json}} #:json => @issues.map { |issue| issue.to_json} - # format.atom { render_feed(@issues, :title => "#{@project || Setting.app_title}: #{l(:label_issue_plural)}") } - # format.csv { send_data(query_to_csv(@issues, @query, params), :type => 'text/csv; header=present', :filename => 'issues.csv') } - # format.pdf { send_data(issues_to_pdf(@issues, @project, @query), :type => 'application/pdf', :filename => 'issues.pdf') } format.xls {filename = "#{@project.name.to_s}_#{l(:label_issue_list_xls)}.xls" send_data(issue_list_xls(@issues_filter), :type => 'application/octet-stream', :filename => filename_for_content_disposition(filename)) } @@ -88,20 +87,8 @@ class IssuesController < ApplicationController sort_init(@query.sort_criteria.empty? ? [['id', 'desc']] : @query.sort_criteria) sort_update(@query.sortable_columns) @query.sort_criteria = sort_criteria.to_a - @project_base_tag = (params[:project_id] || @issue.project) ? 'base_projects':'base' - if @query.valid? - # case params[:format] - # when 'csv', 'pdf' - # @limit = 10#Setting.issues_export_limit.to_i - # when 'atom' - # @limit = 10#Setting.feeds_limit.to_i - # when 'xml', 'json' - # @offset, @limit = api_offset_and_limit({:limit => 10}) - # else - # @limit = 10#per_page_option - # end @tracker_id = params[:tracker_id] @assign_to_id = params[:assigned_to_id] @author_id = params[:author_id] @@ -111,9 +98,6 @@ class IssuesController < ApplicationController @fixed_version_id = params[:fixed_version_id] @issue_count = @query.issue_count @test = params[:test] - # @issue_pages = Paginator.new @issue_count, @limit, params['page'] - # params[:page] = (params[:page] || 1).to_i + 1 #页码需要加1 - # @offset ||= @issue_pages.offset @project_sort = 'issues.updated_on desc' if params[:test] != "0" case @test @@ -127,6 +111,7 @@ class IssuesController < ApplicationController @project_sort = 'issues.updated_on asc' end end + open_and_close_num(@project) @issues_filter_assign_count = @query.issues.select{|issue| issue.assigned_to_id == User.current.id }.count @issues_filter_author_count = @query.issues.select{|issue| issue.author_id == User.current.id }.count @issues_filter = @query.issues(:order => @project_sort) @@ -135,35 +120,17 @@ class IssuesController < ApplicationController @issue_pages = Paginator.new @issue_count, @limit, params['page'] || 1 @offset ||= @issue_pages.offset @issues = paginateHelper @issues_filter, @limit - # if params[:set_filter] - # @set_filter = params[:set_filter] - # end - # @issue_count_by_group = @query.issue_count_by_group - if params[:export_issue_hidden] == "1" - # index(:format=>'xls', :export_issue_hidden => 0) - params[:export_issue_hidden] = "0" - redirect_to project_issues_path(:project_id => @project, :format => 'xls') - - # respond_to do |format| - # format.xls {filename = "#{@project.name.to_s}_#{l(:label_issue_list_xls)}.xls" - # send_data(issue_list_xls(@issues_filter), :type => 'application/octet-stream', :filename => filename_for_content_disposition(filename)) - # return - # } - # return - # end - else - respond_to do |format| - format.js - format.html { render :template => 'issues/index', :layout => @project_base_tag }#by young - format.api {Issue.load_visible_relations(@issues) if include_in_api_response?('relations')} - # format.json { render :json => @issues.map { |issue| issue.to_json}} #:json => @issues.map { |issue| issue.to_json} - format.atom { render_feed(@issues, :title => "#{@project || Setting.app_title}: #{l(:label_issue_plural)}") } - format.csv { send_data(query_to_csv(@issues, @query, params), :type => 'text/csv; header=present', :filename => 'issues.csv') } - format.pdf { send_data(issues_to_pdf(@issues, @project, @query), :type => 'application/pdf', :filename => 'issues.pdf') } - format.xls {filename = "#{@project.name.to_s}_#{l(:label_issue_list_xls)}.xls" - send_data(issue_list_xls(@issues_filter), :type => 'application/octet-stream', :filename => filename_for_content_disposition(filename)) - } - end + respond_to do |format| + format.js + format.html { render :template => 'issues/index', :layout => @project_base_tag }#by young + format.api {Issue.load_visible_relations(@issues) if include_in_api_response?('relations')} + # format.json { render :json => @issues.map { |issue| issue.to_json}} #:json => @issues.map { |issue| issue.to_json} + format.atom { render_feed(@issues, :title => "#{@project || Setting.app_title}: #{l(:label_issue_plural)}") } + format.csv { send_data(query_to_csv(@issues, @query, params), :type => 'text/csv; header=present', :filename => 'issues.csv') } + format.pdf { send_data(issues_to_pdf(@issues, @project, @query), :type => 'application/pdf', :filename => 'issues.pdf') } + format.xls {filename = "#{@project.name.to_s}_#{l(:label_issue_list_xls)}.xls" + send_data(issue_list_xls(@issues_filter), :type => 'application/octet-stream', :filename => filename_for_content_disposition(filename)) + } end else respond_to do |format| @@ -174,12 +141,21 @@ class IssuesController < ApplicationController end end end - - rescue ActiveRecord::RecordNotFound render_404 end + # 获取issue的开启统计数 + def open_and_close_num project + if User.current.member_of?(project) + @issue_open_count = Issue.where("project_id=#{project.id} and status_id in (1,2,3,4,6)").count + @issue_close_count = Issue.where(:project_id => project.id, :status_id => 5 ).count + else + @issue_open_count = Issue.where("project_id=#{project.id} and status_id in (1,2,3,4,6) and is_private = 0").count + @issue_close_count = Issue.where(:project_id => project.id, :status_id => 5, :is_private => 0).count + end + end + def show # 打开编辑内容 @is_edit = true unless params[:edit].nil? diff --git a/app/views/issues/index.html.erb b/app/views/issues/index.html.erb index 5e7669a25..732e4d9af 100644 --- a/app/views/issues/index.html.erb +++ b/app/views/issues/index.html.erb @@ -120,8 +120,8 @@ diff --git a/app/views/issues/index.js.erb b/app/views/issues/index.js.erb index d2207b1d0..f792cf70f 100644 --- a/app/views/issues/index.js.erb +++ b/app/views/issues/index.js.erb @@ -1,7 +1,7 @@ //$("#issue_list").html("<%#= escape_javascript(render :partial => 'issues/list',:locals => {:issues => @issues, :query => @query,:issue_pages=>@issue_pages,:issue_count=>@issue_count})%>"); -$("#issue_assigned_count").html("<%= escape_javascript(render :partial => 'issues/issue_filter') %>"); +//$("#issue_assigned_count").html("<%#= escape_javascript(render :partial => 'issues/issue_filter') %>"); $("#issue_filter_all").html("<%= escape_javascript(render :partial => 'issues/issue_filter_all') %>"); -$("#issue_author_count").html("<%= escape_javascript(render :partial => 'issues/issue_filter_author') %>"); +//$("#issue_author_count").html("<%#= escape_javascript(render :partial => 'issues/issue_filter_author') %>"); $("#issue_list").html("<%= escape_javascript(render :partial => 'issues/all_list',:locals => {:issues => @issues, :query => @query, :issue_pages=> @issue_pages, :issue_count => @issue_count, :project=> @project})%>"); $("#issue_list_pagination").html('<%= pagination_links_full @issue_pages, @issue_count, :issues => @issues, :per_page_links => false, :remote => @is_remote, :flag => true, :is_new => true %>'); From 69a9171430bbd8246d9fb6e3be192ba672574c83 Mon Sep 17 00:00:00 2001 From: Tim Date: Wed, 28 Sep 2016 10:47:58 +0800 Subject: [PATCH 21/56] =?UTF-8?q?=E5=88=86=E7=8F=AD=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E6=A0=B7=E5=BC=8F=E8=B0=83=E6=95=B4=EF=BC=9B=E4=BD=9C=E4=B8=9A?= =?UTF-8?q?=E5=8A=A8=E6=80=81=E7=BF=BB=E9=A1=B5=E5=B1=85=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/courses/_new_member_list.html.erb | 2 +- app/views/homework_common/_homework_index_list.html.erb | 2 +- public/stylesheets/syllabus.css | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/views/courses/_new_member_list.html.erb b/app/views/courses/_new_member_list.html.erb index 31bc91589..5a80d1d93 100644 --- a/app/views/courses/_new_member_list.html.erb +++ b/app/views/courses/_new_member_list.html.erb @@ -81,7 +81,7 @@ <% sum = hw_score + ex_score + act_score %> <%= i + 1 %> - <%= link_to image_tag(url_to_avatar(user), :width => "30", :height => "30"), user_path(member.user_id), :class => 'sy_class_users_st fl mt4 mr5' ,:alt => "用户头像" %> + <%= link_to image_tag(url_to_avatar(user), :width => "30", :height => "30", :style => "display:block;"), user_path(member.user_id), :class => 'sy_class_users_st fl mt5 mr5' ,:alt => "用户头像" %> <%= user.show_name %> diff --git a/app/views/homework_common/_homework_index_list.html.erb b/app/views/homework_common/_homework_index_list.html.erb index dcbe8d411..063621399 100644 --- a/app/views/homework_common/_homework_index_list.html.erb +++ b/app/views/homework_common/_homework_index_list.html.erb @@ -1,6 +1,6 @@ <%= render :partial => 'users/user_homework_list', :locals => {:homework_commons => homework_commons,:page => 0,:course_id => course_id} %> -
    +
      <%= pagination_links_full @obj_pages, @obj_count, :per_page_links => false, :remote => false, :flag => true%>
    diff --git a/public/stylesheets/syllabus.css b/public/stylesheets/syllabus.css index 27054d92a..917e15661 100644 --- a/public/stylesheets/syllabus.css +++ b/public/stylesheets/syllabus.css @@ -654,7 +654,7 @@ a:hover.sy_class_ltitle{ color:#333;} .sy_fenban_list a:hover{ color:#2788d0;} .sy_class_users_st{ width:30px; } .sy_class_users_st_name{ display: inline-block;width:70px; overflow:hidden;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;} -.sy_class_users_st_num{ display: inline-block;width:90px; overflow:hidden;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;} +.sy_class_users_st_num{ display: block;width:90px; overflow:hidden;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;} .sy_class_users_st img{ width:30px;height:30px; border: 1px solid #fff;-webkit-border-radius:50px;-moz-border-radius:50px;-o-border-radius:50px;border-radius:50px;} .sy_fenban_select{height: 28px; background-color: #fff; border: 1px solid #d1d1d1;-webkit-border-radius:3px;-moz-border-radius:3px;-o-border-radius:3px;border-radius:3px; border:1px solid #d3d3d3;padding-left:5px; color:#888; box-shadow: inset 0px 0px 5px #dcdcdc; } .sy_new_table_width tr th.sy_th10{ width: 10%; } From b8ab3dc497c9ba1203d6624e3b991a89c75ea439 Mon Sep 17 00:00:00 2001 From: huang Date: Wed, 28 Sep 2016 11:39:11 +0800 Subject: [PATCH 22/56] =?UTF-8?q?=E7=82=B9=E6=95=B0=E5=AD=97=E4=B8=8D?= =?UTF-8?q?=E8=BF=98=E5=8E=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 4 ++-- app/views/issues/index.html.erb | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile b/Gemfile index cbeade2a3..1305320cf 100644 --- a/Gemfile +++ b/Gemfile @@ -50,10 +50,10 @@ gem 'elasticsearch-model' gem 'elasticsearch-rails' #rails 3.2.22.2 bug - gem "test-unit", "~>3.0" + # gem "test-unit", "~>3.0" ### profile - gem 'oneapm_rpm' + # gem 'oneapm_rpm' group :development do gem 'grape-swagger' diff --git a/app/views/issues/index.html.erb b/app/views/issues/index.html.erb index 9f8accdaa..69de96df6 100644 --- a/app/views/issues/index.html.erb +++ b/app/views/issues/index.html.erb @@ -159,8 +159,8 @@
    • - 所有 - <%= render :partial => "issues/issue_filter_all" %> + 所有 + <%= render :partial => "issues/issue_filter_all" %>
    • -
      - <% if User.current.logged? && User.current.member_of_course?(@course) && @group %> - <%= join_in_course_group(@course.course_groups,@group, User.current) unless @canShowCode %> - - <%= l(:label_current_group)%>:  - <%= @group.name %> - - <% end %> -
      -
      - <% if members.any? %> - +
      - <% members.each_with_index do |member, i| %> - + <% user = member.user %> <% hw_score = member.score.nil? ? 0 : member.score %> <% ex_score = member.ex_score.nil? ? 0 : member.ex_score %> <% act_score = member.act_score.nil? ? 0 : member.act_score %> <% sum = hw_score + ex_score + act_score %> - + - <% end %>
      序号 姓名 - <%= link_to '学号', member_score_sort_course_path(:sort_type => 'student_id', :sort_by => (@score_sort_by == "desc" ? "asc" : "desc"), :group_id => (@group ? @group.id : 0), :search_name => (@search_name ? @search_name : nil)), :result => members, method: 'get', remote: true, :style => 'color:#000000;'%> + <%= link_to '学号', member_score_sort_course_path(:sort_type => 'student_id', :sort_by => (@score_sort_by == "desc" ? "asc" : "desc"), :group_id => (@group ? (@group == -1 ? -1 : @group.id) : 0), :search_name => (@search_name ? @search_name : nil)), :result => members, method: 'get', remote: true, :style => 'color:#000000;'%> <% if @sort_type == "student_id" && @score_sort_by == 'desc' %> <% elsif @sort_type == "student_id" && @score_sort_by == 'asc' %> @@ -25,7 +13,7 @@ <% end %> - <%= link_to '作业得分', member_score_sort_course_path(:sort_type => 'score', :sort_by => (@score_sort_by == "desc" ? "asc" : "desc"), :group_id => (@group ? @group.id : 0), :search_name => (@search_name ? @search_name : nil)), :result => members, method: 'get', remote: true, :style => 'color:#000000;'%> + <%= link_to '作业得分', member_score_sort_course_path(:sort_type => 'score', :sort_by => (@score_sort_by == "desc" ? "asc" : "desc"), :group_id => (@group ? (@group == -1 ? -1 : @group.id) : 0), :search_name => (@search_name ? @search_name : nil)), :result => members, method: 'get', remote: true, :style => 'color:#000000;'%> <% if @sort_type == "score" && @score_sort_by == 'desc' %> <% elsif @sort_type == "score" && @score_sort_by == 'asc' %> @@ -36,14 +24,20 @@ 班级作业的得分总和

      测评得分 + + <%= link_to '测评得分', member_score_sort_course_path(:sort_type => 'ex_score', :sort_by => (@score_sort_by == "desc" ? "asc" : "desc"), :group_id => (@group ? (@group == -1 ? -1 : @group.id) : 0), :search_name => (@search_name ? @search_name : nil)), :result => members, method: 'get', remote: true, :style => 'color:#000000;'%> + <% if @sort_type == "ex_score" && @score_sort_by == 'desc' %> + + <% elsif @sort_type == "ex_score" && @score_sort_by == 'asc' %> + + <% end %>

      积分规则
      班级测验的得分总和

      - <%= link_to '社区得分', member_score_sort_course_path(:sort_type => 'act_score', :sort_by => (@score_sort_by == "desc" ? "asc" : "desc"), :group_id => (@group ? @group.id : 0),:search_name => (@search_name ? @search_name : nil)) ,:result => members,method: 'get', remote: true, :style => 'color:#000000;'%> + <%= link_to '社区得分', member_score_sort_course_path(:sort_type => 'act_score', :sort_by => (@score_sort_by == "desc" ? "asc" : "desc"), :group_id => (@group ? (@group == -1 ? -1 : @group.id) : 0),:search_name => (@search_name ? @search_name : nil)) ,:result => members,method: 'get', remote: true, :style => 'color:#000000;'%> <% if @sort_type == "act_score" && @score_sort_by == 'desc' %> <% elsif @sort_type == "act_score" && @score_sort_by == 'asc' %> @@ -73,13 +67,13 @@
      <%= i + 1 %><%= (@page - 1) * @limit + i + 1 %> <%= link_to image_tag(url_to_avatar(user), :width => "30", :height => "30"), user_path(member.user_id), :class => 'sy_class_users_st fl mt4 mr5' ,:alt => "用户头像" %> <%= user.show_name %> @@ -102,142 +96,58 @@ :remote => true}, :class => '' %> + <%= format("%0.2f", sum) %> -
      +

      <%= user.show_name %>
      - 资源    发布数:1
      - 问答    发布数:1回复数:1
      - 通知    提交数:1留言数:1
      - 作业    提交数:1留言数:1
      - 班级    留言数:1
      - 测验    提交数:1 + 资源    发布数:<%= member.resource_num %>
      + 问答    发布数:<%= member.message_num %>回复数:<%= member.message_reply_num %>
      + 通知    提交数:<%= member.news_num %>留言数:<%= member.news_reply_num %>
      + 作业    提交数:<%= member.homework_num %>留言数:<%= member.homework_journal_num %>
      + 班级    留言数:<%= member.journal_num %>
      + 测验    提交数:<%= member.exercise_num %>

      - <% unless @course.course_groups.empty? %> - <% if User.current.allowed_to?(:as_teacher, @course) || User.current.admin? || User.current == user %> - <% if @course.course_groups.nil? || @group %> - <%=member.course_group_id == 0 ? "暂无" : member.course_group.name %> - <% else %> - <%= form_tag({:controller => 'courses', :action => 'teacher_assign_group', :id => @course.id,:user_id => member.user_id},:remote=>'true', :method => 'post', :id=>"join_group_form_#{member.id}", :class => 'query_form') do %> -
      - <%=member.course_group_id == 0 ? "暂无" : member.course_group.name %> - -
      - <%= select( :name,:group_id, course_group_option(@course), - { :include_blank => false,:selected => member.course_group_id}, - {:onchange=>"join_group_function('#join_group_form_#{member.id}');", :id =>"course_group_id", :name => "course_group_id",:class=>"w100 undis class-edit sy_fenban_select", :style => "margin-left: 5px;"}) %> - <% end %> - <% end %> - <% else %> + <% if User.current.allowed_to?(:as_teacher, @course) || User.current.admin? || User.current == user %> + <% if @course.course_groups.empty? %> <%=member.course_group_id == 0 ? "暂无" : member.course_group.name %> + <% else %> + <%= form_tag({:controller => 'courses', :action => 'teacher_assign_group', :id => @course.id,:user_id => member.user_id},:remote=>'true', :method => 'post', :id=>"join_group_form_#{member.id}", :class => 'query_form') do %> +
      + <%=member.course_group_id == 0 ? "暂无" : member.course_group.name %> + +
      + <%= select( :name,:group_id, course_group_option(@course), + { :include_blank => false,:selected => member.course_group_id}, + {:onchange=>"join_group_function('#join_group_form_#{member.id}');", :id =>"course_group_id", :name => "course_group_id",:class=>"w100 undis class-edit sy_fenban_select", :style => "margin-left: 5px;"}) %> + <% end %> <% end %> + <% else %> + <%=member.course_group_id == 0 ? "暂无" : member.course_group.name %> <% end %>
      +
      +
      +
        + <%= pagination_links_full @mem_pages, @members_count, :per_page_links => false, :remote => @is_remote, :flag => true, :is_new => true%> +
      +
      +
      +
      <% else%>

      <%= l(:label_no_data) %>

      <% end %> -<% if members.any? %> -
      -
        -
      • 姓名
      • -
      • 学号
      • - <% unless @course.course_groups.empty? %> -
      • 分班
      • - <% end %> -
      • - <%= link_to '英雄榜', member_score_sort_course_path(:sort_type => 'score', :sort_by => (@score_sort_by == "desc" ? "asc" : "desc"), :group_id => (@group ? @group.id : 0),:search_name => (@search_name ? @search_name : nil)) ,:result => members,method: 'get', remote: true, :class => 'ml35'%> - <% if @sort_type == "score" && @score_sort_by == 'desc' %> - - <% elsif @sort_type == "score" && @score_sort_by == 'asc' %> - - <% end %> -
      • -
      • - <%= link_to '活跃度', member_score_sort_course_path(:sort_type => 'act_score', :sort_by => (@score_sort_by == "desc" ? "asc" : "desc"), :group_id => (@group ? @group.id : 0),:search_name => (@search_name ? @search_name : nil)) ,:result => members,method: 'get', remote: true, :class => 'ml35'%> - <% if @sort_type == "act_score" && @score_sort_by == 'desc' %> - - <% elsif @sort_type == "act_score" && @score_sort_by == 'asc' %> - - <% end %> -
      • -
      • 加入时间
      • -
      -
      - - <% members.each do |member| %> -
      - - <%= member.user.nil? ? '' : (image_tag(url_to_avatar(member.user), :width => 32, :height => 32)) %> - -
        -
      • - <%= link_to("#{l(:label_bidding_user_studentname)}:".html_safe,user_path(member.user)) %> -
      • -
        - <% unless member.user.user_extensions.student_id == ''%> -
      • <%= link_to("#{l(:label_bidding_user_studentcode)}:".html_safe,user_path(member.user)) %>
      • - <% end%> -
      - <% unless @course.course_groups.empty? %> - <% if User.current.allowed_to?(:as_teacher, @course) || User.current.admin? %> - <% if @course.course_groups.nil? || @group %> -
      - -
      - <% else %> - <%= form_tag({:controller => 'courses', :action => 'teacher_assign_group', :id => @course.id,:user_id => member.user_id},:remote=>'true', :method => 'post', :id=>"join_group_form_#{member.id}", :class => 'query_form') do %> -
      - -
      - <%= select( :name,:group_id, course_group_option(@course), - { :include_blank => false,:selected => member.course_group_id}, - {:onchange=>"join_group_function('#join_group_form_#{member.id}');", :id =>"course_group_id", :name => "course_group_id",:class=>"w125 undis class-edit fl", :style => "margin-left: 5px;"}) %> - <% end %> - <% end %> - <% else %> -
      - -
      - <% end %> - <% end %> - <%= link_to format("%0.2f",member.score.nil? ? 0 : member.score.to_s), { - :action => 'show_member_score', - :member_id => member.id, - :remote => true}, - :class => "st_list_score c_red #{@course.course_groups.empty? ? 'ml130' : ''}" %> - <%= link_to member.act_score.nil? ? 0 : member.act_score.to_s, { - :action => 'show_member_act_score', - :member_id => member.id, - :remote => true}, - :class => 'st_list_score c_red' %> - <%= format_date(member.created_on)%> - <%= call_hook(:view_projects_settings_members_table_row, { :course => @course, :member => member}) %> -
      -
      - <% end; reset_cycle %> -
      - - -<% else%> -

      - <%= l(:label_no_data) %> -

      -<% end%> - diff --git a/app/views/gantts/show.html.erb b/app/views/gantts/show.html.erb index 759f8c232..d24971be2 100644 --- a/app/views/gantts/show.html.erb +++ b/app/views/gantts/show.html.erb @@ -319,5 +319,5 @@ <% end %> diff --git a/app/views/layouts/base_projects.html.erb b/app/views/layouts/base_projects.html.erb index b0de79d7c..fced40737 100644 --- a/app/views/layouts/base_projects.html.erb +++ b/app/views/layouts/base_projects.html.erb @@ -89,7 +89,7 @@
    -
    +
    <%= render_flash_messages %> <%= yield %> <%= call_hook :view_layouts_base_content %> diff --git a/app/views/projects/feedback.html.erb b/app/views/projects/feedback.html.erb index 77f754567..f46b04aee 100644 --- a/app/views/projects/feedback.html.erb +++ b/app/views/projects/feedback.html.erb @@ -50,5 +50,5 @@ function checkMaxLength() { <% html_title(l(:label_project_tool_response)) -%> \ No newline at end of file diff --git a/app/views/pull_requests/index.html.erb b/app/views/pull_requests/index.html.erb index 2af67293f..1001557ae 100644 --- a/app/views/pull_requests/index.html.erb +++ b/app/views/pull_requests/index.html.erb @@ -1,4 +1,4 @@ -<%= render :partial => "pull_requests/pull_request_container" %> +<%#= render :partial => "pull_requests/pull_request_container" %>
    • <%= link_to "待处理#{@requests_opened_count}".html_safe, project_pull_requests_path(:type => "1"), :remote => true %>
    • <%= link_to "已处理#{@requests_merged_count}".html_safe, project_pull_requests_path(:type => "2"), :remote => true %>
    • @@ -16,7 +16,8 @@ diff --git a/app/views/repositories/show.html.erb b/app/views/repositories/show.html.erb index b12302e6e..2f6d53c8c 100644 --- a/app/views/repositories/show.html.erb +++ b/app/views/repositories/show.html.erb @@ -94,5 +94,5 @@ <% html_title(l(:label_repository)) -%> diff --git a/app/views/versions/index.html.erb b/app/views/versions/index.html.erb index 3a3740a23..ee940f342 100644 --- a/app/views/versions/index.html.erb +++ b/app/views/versions/index.html.erb @@ -74,5 +74,5 @@ <%= context_menu issues_context_menu_path %> diff --git a/app/views/wiki/edit.html.erb b/app/views/wiki/edit.html.erb index 83b1d18ae..a14cc01c1 100644 --- a/app/views/wiki/edit.html.erb +++ b/app/views/wiki/edit.html.erb @@ -68,5 +68,5 @@ <% html_title @page.pretty_title %> diff --git a/app/views/wiki/show.html.erb b/app/views/wiki/show.html.erb index 995c44924..bd9a0dc90 100644 --- a/app/views/wiki/show.html.erb +++ b/app/views/wiki/show.html.erb @@ -95,6 +95,6 @@ }); }; - $("#RSide").css("width","730px"); + $(".project_r_h").parent().css({"width":"730px","background-color":"#fff","padding":"10px","margin-left":"10px","margin-bottom":"10px"});
    \ No newline at end of file From c245d2fecd59f15313fa363db3980ee0152119dd Mon Sep 17 00:00:00 2001 From: Tim Date: Thu, 29 Sep 2016 15:49:53 +0800 Subject: [PATCH 32/56] =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E5=A4=B4=E9=83=A8?= =?UTF-8?q?=E8=B4=B4=E5=90=A7=E4=BA=A4=E6=B5=81=E6=94=B9=E4=B8=BA=E5=B8=AE?= =?UTF-8?q?=E5=8A=A9=E4=B8=AD=E5=BF=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/layouts/_logined_header.html.erb | 2 +- app/views/layouts/_unlogin_header.html.erb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/views/layouts/_logined_header.html.erb b/app/views/layouts/_logined_header.html.erb index cda8e8be5..1fb3071e0 100644 --- a/app/views/layouts/_logined_header.html.erb +++ b/app/views/layouts/_logined_header.html.erb @@ -18,7 +18,7 @@ <% end %> diff --git a/app/views/layouts/_unlogin_header.html.erb b/app/views/layouts/_unlogin_header.html.erb index bc21ff8d2..18d56fc72 100644 --- a/app/views/layouts/_unlogin_header.html.erb +++ b/app/views/layouts/_unlogin_header.html.erb @@ -8,7 +8,7 @@
    From 06ea193eb444b65734fb2d0e8dbef95b9aaf7249 Mon Sep 17 00:00:00 2001 From: daiao <358551898@qq.com> Date: Thu, 29 Sep 2016 16:23:53 +0800 Subject: [PATCH 33/56] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=B5=84=E6=BA=90?= =?UTF-8?q?=E5=BA=93=E5=85=AC=E5=85=B1=E8=B5=84=E6=BA=90=E6=97=A0=E6=B3=95?= =?UTF-8?q?=E5=8F=B3=E9=94=AE=E5=88=A0=E9=99=A4=E3=80=81=E9=87=8D=E5=91=BD?= =?UTF-8?q?=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/users/_resources_list.html.erb | 2 +- app/views/users/_user_resource_info.html.erb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/views/users/_resources_list.html.erb b/app/views/users/_resources_list.html.erb index 0190e60dc..3c78e3a0c 100644 --- a/app/views/users/_resources_list.html.erb +++ b/app/views/users/_resources_list.html.erb @@ -249,7 +249,7 @@ } line.children().css("background-color", 'white'); id = line.children().last().html(); - user_id = line.children().eq(5).html(); + user_id = line.children().eq(4).html(); if(user_id === '<%= User.current.id%>') { if(line.children().first().children().data('hasHistory') == 'Y'){ alert('该资源存在历史版本,不能删除'); diff --git a/app/views/users/_user_resource_info.html.erb b/app/views/users/_user_resource_info.html.erb index d3b169a17..d5a31bdf7 100644 --- a/app/views/users/_user_resource_info.html.erb +++ b/app/views/users/_user_resource_info.html.erb @@ -225,7 +225,7 @@ document.oncontextmenu = function() {return true;} line.children().css("background-color",'white'); id = line.children().last().html(); - user_id = line.children().eq(5).html(); + user_id = line.children().eq(4).html(); if(user_id === '<%= User.current.id %>') { res_name = line.children().eq(1).children().attr('title'); res_link = line.children().eq(1).html(); From e2be4a9e7fb28fc67e560173e53375ce52874d3a Mon Sep 17 00:00:00 2001 From: daiao <358551898@qq.com> Date: Thu, 29 Sep 2016 16:55:32 +0800 Subject: [PATCH 34/56] =?UTF-8?q?=E5=90=8E=E5=8F=B0=E4=BD=9C=E4=B8=9A?= =?UTF-8?q?=E5=88=97=E8=A1=A8=EF=BC=9A=E4=BD=9C=E4=B8=9A=E7=8F=AD=E7=BA=A7?= =?UTF-8?q?=E4=B8=BA=E7=A9=BA=E6=97=B6=EF=BC=8C=E4=BD=9C=E4=B8=9A=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E6=A0=B7=E5=BC=8F=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/admin/homework.html.erb | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/app/views/admin/homework.html.erb b/app/views/admin/homework.html.erb index 03472d0a0..aaf21999d 100644 --- a/app/views/admin/homework.html.erb +++ b/app/views/admin/homework.html.erb @@ -38,11 +38,13 @@ <%=link_to(homework.try(:name), student_work_index_path(:homework => homework.id))%> - <% if homework.course %> - - <%= link_to(homework.course.name, course_path(homework.course.id)) %> + + + <% if homework.course %> + <%= link_to homework.course.name, course_path(homework.course.id) %> + <% end %> - <% end %> + <%= homework.try(:user)%><% else %><%=homework.try(:user).try(:realname) %><% end %>'> <% if homework.try(:user).try(:realname) == ' '%> <%= link_to(homework.try(:user), user_path(homework.user_id)) %> From 17c82c5291c4f07b8a60dff788d4a473a4fc8954 Mon Sep 17 00:00:00 2001 From: cxt Date: Thu, 29 Sep 2016 17:17:17 +0800 Subject: [PATCH 35/56] =?UTF-8?q?=E5=B7=B2=E6=8F=90=E4=BA=A4=E4=BD=9C?= =?UTF-8?q?=E5=93=81=E7=9A=84=E5=88=86=E7=BB=84=E4=BD=9C=E4=B8=9A=E5=8F=AF?= =?UTF-8?q?=E6=89=A9=E5=A4=A7=E5=88=86=E7=BB=84=E8=8C=83=E5=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/homework_common/edit.html.erb | 2 +- app/views/users/_user_group_attr.html.erb | 32 +++++++++++++++++--- app/views/users/_user_homework_form.html.erb | 2 +- 3 files changed, 29 insertions(+), 7 deletions(-) diff --git a/app/views/homework_common/edit.html.erb b/app/views/homework_common/edit.html.erb index ec5ecc31c..b2bc236ca 100644 --- a/app/views/homework_common/edit.html.erb +++ b/app/views/homework_common/edit.html.erb @@ -47,7 +47,7 @@ <% elsif @homework.homework_type == 2 %>

    已有<%=committed_work_count %>个学生提交作品,不允许再修改作业类型和测试集。

    <% elsif @homework.homework_type == 3 %> -

    已有<%=committed_work_count %>个学生提交作品,不允许再修改作业类型和分组设置。

    +

    已有<%=committed_work_count %>个学生提交作品,不允许再修改作业类型和分组设置(可扩大分组范围)。

    <% end %> <% elsif stu_pro_count != 0 && @homework.homework_type == 3 %>

    已有<%=stu_pro_count %>个学生关联项目,不允许再修改作业类型。

    diff --git a/app/views/users/_user_group_attr.html.erb b/app/views/users/_user_group_attr.html.erb index 4596ef411..5d1475991 100644 --- a/app/views/users/_user_group_attr.html.erb +++ b/app/views/users/_user_group_attr.html.erb @@ -1,10 +1,10 @@
    分组设置:
    每组最小人数: - />人 + />人
    每组最大人数: - />人 + />人
    @@ -21,7 +21,29 @@
    \ No newline at end of file diff --git a/app/views/users/_user_homework_form.html.erb b/app/views/users/_user_homework_form.html.erb index f225e4fcd..b8785dc9a 100644 --- a/app/views/users/_user_homework_form.html.erb +++ b/app/views/users/_user_homework_form.html.erb @@ -7,7 +7,7 @@ var first_click = true; $(function(){ $("#homework_type_option").on("change",function(){ - var type = $(this).children('option:selected').val() + var type = $(this).children('option:selected').val(); if(type == "1"){ $("#homeworkSetting").addClass("undis"); $("#homeworkSetting").html(""); From 742d5b630b4999b4cf1182fc2d0420b9078ce5d5 Mon Sep 17 00:00:00 2001 From: daiao <358551898@qq.com> Date: Thu, 29 Sep 2016 17:18:46 +0800 Subject: [PATCH 36/56] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=AF=BE=E7=A8=8B?= =?UTF-8?q?=EF=BC=9A=E5=AF=BC=E5=85=A5=E9=97=AE=E5=8D=B7=E4=B8=80=E7=9B=B4?= =?UTF-8?q?=E6=8F=90=E7=A4=BA=E6=9C=AA=E6=9C=89=E6=96=B0=E5=BB=BA=E9=97=AE?= =?UTF-8?q?=E5=8D=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/poll/other_poll.js.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/poll/other_poll.js.erb b/app/views/poll/other_poll.js.erb index 26ec89046..19dc17052 100644 --- a/app/views/poll/other_poll.js.erb +++ b/app/views/poll/other_poll.js.erb @@ -1,6 +1,6 @@ <% if @polls.empty? %> - alert('您目前还没有自己新建的问卷'); + alert('您目前其他课程无问卷可导入'); <% else %> $('#ajax-modal').html('<%= escape_javascript(render :partial => 'other_poll',:locals => {:polls => @polls,:polls_group_id=>@polls_group_id}) %>'); From a9a53caa1377645db0c2c09c5687c589efc94d9c Mon Sep 17 00:00:00 2001 From: cxt Date: Fri, 30 Sep 2016 10:29:42 +0800 Subject: [PATCH 37/56] =?UTF-8?q?=E5=AD=A6=E7=94=9F=E6=8F=90=E4=BA=A4?= =?UTF-8?q?=E4=BD=9C=E5=93=81=E5=90=8E=EF=BC=8C=E8=B7=B3=E8=BD=AC=E8=87=B3?= =?UTF-8?q?=E2=80=9C=E4=BD=9C=E5=93=81=E5=88=97=E8=A1=A8=E2=80=9D=EF=BC=8C?= =?UTF-8?q?=E8=80=8C=E4=B8=8D=E6=98=AF=E2=80=9C=E4=BD=9C=E4=B8=9A=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E2=80=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/users_controller.rb | 2 +- app/views/student_work/_work_edit_information.html.erb | 2 +- app/views/student_work/_work_information.html.erb | 2 +- app/views/student_work/update.js.erb | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 792ba4690..5ab85e21d 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -1033,7 +1033,7 @@ class UsersController < ApplicationController update_org_activity(homework.class,homework.id) flash[:notice] = l(:notice_successful_create) - redirect_to student_work_index_url(:homework => params[:homework]) + redirect_to student_work_index_url(:homework => params[:homework], :tab => 2) else render_403 end diff --git a/app/views/student_work/_work_edit_information.html.erb b/app/views/student_work/_work_edit_information.html.erb index 057d305d5..d3e430d6e 100644 --- a/app/views/student_work/_work_edit_information.html.erb +++ b/app/views/student_work/_work_edit_information.html.erb @@ -38,6 +38,6 @@ \ No newline at end of file diff --git a/app/views/student_work/_work_information.html.erb b/app/views/student_work/_work_information.html.erb index f9da89c11..eabab8ed0 100644 --- a/app/views/student_work/_work_information.html.erb +++ b/app/views/student_work/_work_information.html.erb @@ -39,6 +39,6 @@ \ No newline at end of file diff --git a/app/views/student_work/update.js.erb b/app/views/student_work/update.js.erb index 9dc381e42..4f2ace330 100644 --- a/app/views/student_work/update.js.erb +++ b/app/views/student_work/update.js.erb @@ -12,5 +12,5 @@ window.location.href = '<%= edit_student_work_url(@work)%>'; function clickCanel() { hideModal('#popbox02'); - window.location.href = '<%= student_work_index_url(:homework => @homework.id)%>'; + window.location.href= "<%= Setting.protocol%>://"+"<%= Setting.host_name%>"+"/student_work?homework=" + "<%= @homework.id%>&tab=2" } \ No newline at end of file From 6ed65abb67b10ea31b86b325feb8cb1feacedcd2 Mon Sep 17 00:00:00 2001 From: cxt Date: Fri, 30 Sep 2016 10:44:52 +0800 Subject: [PATCH 38/56] =?UTF-8?q?=E7=89=88=E6=9C=AC=E5=BA=93=E6=8A=A5500?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/redmine/scm/adapters/git_adapter.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/redmine/scm/adapters/git_adapter.rb b/lib/redmine/scm/adapters/git_adapter.rb index 927018b34..76666b071 100644 --- a/lib/redmine/scm/adapters/git_adapter.rb +++ b/lib/redmine/scm/adapters/git_adapter.rb @@ -61,7 +61,7 @@ module Redmine end end - def initialize(url, root_url=nil, login=nil, password=nil, path_encoding=nil) + def initialize(url, root_url=nil, login=nil, password=nil, path_encoding=nil, project_id) super @path_encoding = path_encoding.blank? ? 'UTF-8' : path_encoding end From 0ad71e0f64768fe89cfd67c2d9f69d486d090a8a Mon Sep 17 00:00:00 2001 From: daiao <358551898@qq.com> Date: Fri, 30 Sep 2016 11:07:22 +0800 Subject: [PATCH 39/56] =?UTF-8?q?issue=E5=88=97=E8=A1=A8=E5=8F=8A=E5=B7=A6?= =?UTF-8?q?=E4=BE=A7=E5=AF=BC=E8=88=AA=E6=A0=8F=E9=97=AE=E9=A2=98=E8=B7=9F?= =?UTF-8?q?=E8=B8=AA=E7=9A=84issue=E7=9A=84=E6=89=80=E6=9C=89=E6=95=B0?= =?UTF-8?q?=E5=AD=97=E7=BB=9F=E8=AE=A1=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/issues/index.html.erb | 2 +- app/views/projects/_development_group.html.erb | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/views/issues/index.html.erb b/app/views/issues/index.html.erb index 9f8accdaa..9a150bf92 100644 --- a/app/views/issues/index.html.erb +++ b/app/views/issues/index.html.erb @@ -122,7 +122,7 @@ 新 增
    diff --git a/app/views/projects/_development_group.html.erb b/app/views/projects/_development_group.html.erb index ad8d9a35a..57fea898b 100644 --- a/app/views/projects/_development_group.html.erb +++ b/app/views/projects/_development_group.html.erb @@ -8,8 +8,8 @@ <% unless @project.enabled_modules.where("name = 'issue_tracking'").empty? %>