From 44e3daa0d2ea1512534e84b24c41d4bbede1c761 Mon Sep 17 00:00:00 2001 From: sw <939547590@qq.com> Date: Tue, 16 Jun 2015 10:39:42 +0800 Subject: [PATCH 001/444] =?UTF-8?q?1=E3=80=81=E8=80=81=E5=B8=88=E6=96=B0?= =?UTF-8?q?=E5=BB=BA=E4=BD=9C=E4=B8=9A=EF=BC=8C=E4=B8=A4=E7=B1=BB=E4=BD=9C?= =?UTF-8?q?=E4=B8=9A=E7=9A=84=E9=80=89=E6=8B=A9=202=E3=80=81=E7=BC=96?= =?UTF-8?q?=E7=A8=8B=E4=BD=9C=E4=B8=9A=E9=9D=99=E6=80=81=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E7=9A=84=E6=B7=BB=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/homework_common/new.html.erb | 118 +++++++++++++++++++++++-- public/javascripts/course.js | 21 +++++ public/stylesheets/public.css | 1 + 3 files changed, 132 insertions(+), 8 deletions(-) diff --git a/app/views/homework_common/new.html.erb b/app/views/homework_common/new.html.erb index b0fdc5299..4fd52c8a0 100644 --- a/app/views/homework_common/new.html.erb +++ b/app/views/homework_common/new.html.erb @@ -6,12 +6,114 @@ <%= l(:label_course_homework_new)%> -
- <%= labelled_form_for @homework,:url => {:controller => 'homework_common',:action => 'create'} do |f| %> - <%= hidden_field_tag "course",@course.id%> - <%= render :partial => 'homework_common/homework_common_form', :locals => { :homework => @homework,:f => f,:edit_mode => false } %> - 提交 - <%= link_to '取消',homework_common_index_path(:course => @course.id),:class => 'grey_btn fl'%> - <% end%> +
+

请选择将要发布的作业类型 +

+ 人工评分的作业(支持匿名互评、灵活设置评分比例) +
+ 自动评测的编程作业(支持C++程序的自动评分) +
+ 下一步
-
\ No newline at end of file +
+ +
+
+ <%= labelled_form_for @homework,:url => {:controller => 'homework_common',:action => 'create'} do |f| %> + <%= hidden_field_tag "course",@course.id%> + <%= render :partial => 'homework_common/homework_common_form', :locals => { :homework => @homework,:f => f,:edit_mode => false } %> + 提交 + 上一步 + <%= link_to '取消',homework_common_index_path(:course => @course.id),:class => 'grey_btn fl'%> + <% end%> +
+
+
+
+
+
    +
  • + + +
  • +
    +
  • + + +
  • +
    +
  • + +     -文件不超过200MB +
  • +
    +
  • + + + +
    +
  • +
  • + + + +
    +
  • +
    +
  • + + +  分 +
    +
  • +
+
+

编程评测设置

+
+
    +
  • + + +
    +
  • +
  • + + +
    +
  • +
  • + + +
  • +
  • + + +
  • +
  • OK !
  • +
    +
  • + + +
  • +
  • + + +
  • +
  • 测试
  • +
    +
+
+ 提交 + 上一步 + 取消 +
+
+
\ No newline at end of file diff --git a/public/javascripts/course.js b/public/javascripts/course.js index 8f87767ed..b493277fd 100644 --- a/public/javascripts/course.js +++ b/public/javascripts/course.js @@ -394,6 +394,27 @@ function show_bid_dead_line(year,month,day,divname) + "" + "

作品提交还剩:

"); } + +//新建作业,下一步按钮 +function select_homework_common_type() +{ + if($("#homework_detail_manual_radio").attr("checked") == "checked"){ + $("#homework_detail_manual").show(); + } + else if($("#homework_detail_programing_radio").attr("checked") == "checked"){ + $("#homework_detail_programing").show(); + } + $("#hwork_new").hide(); +} + +//新建作业,上一步按钮 +function return_homework_common_type() +{ + $("#homework_detail_manual").hide(); + $("#homework_detail_programing").hide(); + $("#hwork_new").show(); +} + //验证新建作业的名字 function regex_homework_name() { diff --git a/public/stylesheets/public.css b/public/stylesheets/public.css index 0ed497127..5b00dbd57 100644 --- a/public/stylesheets/public.css +++ b/public/stylesheets/public.css @@ -161,6 +161,7 @@ a.green_btn{background:#28be6c;color:#fff;font-size:14px; font-weight:normal; pa a:hover.green_btn{ background:#14ad5a;} .blue_btn{ background:#64bdd9; color:#fff; font-size:14px; font-weight:normal;padding:2px 10px; text-align:center;} a.blue_btn{background:#64bdd9;color:#fff;font-size:14px; font-weight:normal; padding:2px 10px; text-align:center;} +a.orange_btn_homework{background:#d63502;color:#fff;font-size:14px; font-weight:normal; padding:2px 10px; text-align:center;} a:hover.blue_btn{ background:#329cbd;cursor: pointer;} a.orange_btn{ background:#ff5722;color:#fff;font-size:14px; font-weight:normal; padding:2px 10px; text-align:center; } a:hover.orange_btn{ background:#d63502;} From 9423f4b45ab4b5b242a22d40e283f78560a78965 Mon Sep 17 00:00:00 2001 From: sw <939547590@qq.com> Date: Tue, 16 Jun 2015 10:50:27 +0800 Subject: [PATCH 002/444] =?UTF-8?q?1=E3=80=81=E5=8C=BF=E8=AF=84=E4=BD=9C?= =?UTF-8?q?=E4=B8=9A=E6=94=B9=E5=90=8D=202=E3=80=81=E7=BC=96=E7=A8=8B?= =?UTF-8?q?=E4=BD=9C=E4=B8=9A=E9=9D=99=E6=80=81=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... => _homework_detail_manual_form.html.erb} | 0 .../_homework_detail_programing_form.html.erb | 80 ++++++++++++++++ app/views/homework_common/edit.html.erb | 2 +- app/views/homework_common/new.html.erb | 92 ++----------------- 4 files changed, 89 insertions(+), 85 deletions(-) rename app/views/homework_common/{_homework_common_form.html.erb => _homework_detail_manual_form.html.erb} (100%) create mode 100644 app/views/homework_common/_homework_detail_programing_form.html.erb diff --git a/app/views/homework_common/_homework_common_form.html.erb b/app/views/homework_common/_homework_detail_manual_form.html.erb similarity index 100% rename from app/views/homework_common/_homework_common_form.html.erb rename to app/views/homework_common/_homework_detail_manual_form.html.erb diff --git a/app/views/homework_common/_homework_detail_programing_form.html.erb b/app/views/homework_common/_homework_detail_programing_form.html.erb new file mode 100644 index 000000000..d0556745b --- /dev/null +++ b/app/views/homework_common/_homework_detail_programing_form.html.erb @@ -0,0 +1,80 @@ + +
+

编程评测设置

+
+ +
\ No newline at end of file diff --git a/app/views/homework_common/edit.html.erb b/app/views/homework_common/edit.html.erb index f9d3f8b70..87977c6a9 100644 --- a/app/views/homework_common/edit.html.erb +++ b/app/views/homework_common/edit.html.erb @@ -8,7 +8,7 @@
<%= form_for @homework do |f| %> - <%= render :partial => 'homework_common/homework_common_form', :locals => { :homework => @homework,:f => f,:edit_mode => true } %> + <%= render :partial => 'homework_common/homework_detail_manual_form', :locals => { :homework => @homework,:f => f,:edit_mode => true } %> 提交 <%= link_to '取消',homework_common_index_path(:course => @course.id),:class => 'grey_btn fl'%> <% end%> diff --git a/app/views/homework_common/new.html.erb b/app/views/homework_common/new.html.erb index 4fd52c8a0..0c4780133 100644 --- a/app/views/homework_common/new.html.erb +++ b/app/views/homework_common/new.html.erb @@ -21,7 +21,7 @@
<%= labelled_form_for @homework,:url => {:controller => 'homework_common',:action => 'create'} do |f| %> <%= hidden_field_tag "course",@course.id%> - <%= render :partial => 'homework_common/homework_common_form', :locals => { :homework => @homework,:f => f,:edit_mode => false } %> + <%= render :partial => 'homework_common/homework_detail_manual_form', :locals => { :homework => @homework,:f => f,:edit_mode => false } %> 提交 上一步 <%= link_to '取消',homework_common_index_path(:course => @course.id),:class => 'grey_btn fl'%> @@ -31,89 +31,13 @@
-
    -
  • - - -
  • -
    -
  • - - -
  • -
    -
  • - -     -文件不超过200MB -
  • -
    -
  • - - - -
    -
  • -
  • - - - -
    -
  • -
    -
  • - - -  分 -
    -
  • -
-
-

编程评测设置

-
-
    -
  • - - -
    -
  • -
  • - - -
    -
  • -
  • - - -
  • -
  • - - -
  • -
  • OK !
  • -
    -
  • - - -
  • -
  • - - -
  • -
  • 测试
  • -
    -
-
- 提交 - 上一步 - 取消 + <%= labelled_form_for @homework,:url => {:controller => 'homework_common',:action => 'create'} do |f| %> + <%= hidden_field_tag "course",@course.id%> + <%= render :partial => 'homework_common/homework_detail_programing_form', :locals => { :homework => @homework,:f => f,:edit_mode => false } %> + 提交 + 上一步 + <%= link_to '取消',homework_common_index_path(:course => @course.id),:class => 'grey_btn fl'%> + <% end%>
\ No newline at end of file From df96ece903c4b190410ee4b48fa706e0335eafa0 Mon Sep 17 00:00:00 2001 From: sw <939547590@qq.com> Date: Tue, 16 Jun 2015 10:51:58 +0800 Subject: [PATCH 003/444] =?UTF-8?q?=E5=8F=82=E6=95=B0=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E7=BC=96=E7=A8=8B=E4=BD=9C=E4=B8=9A=EF=BC=9F=E5=8C=BF=E8=AF=84?= =?UTF-8?q?=E4=BD=9C=E4=B8=9A=EF=BC=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/homework_common/new.html.erb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/views/homework_common/new.html.erb b/app/views/homework_common/new.html.erb index 0c4780133..239987035 100644 --- a/app/views/homework_common/new.html.erb +++ b/app/views/homework_common/new.html.erb @@ -21,6 +21,7 @@
<%= labelled_form_for @homework,:url => {:controller => 'homework_common',:action => 'create'} do |f| %> <%= hidden_field_tag "course",@course.id%> + <%= hidden_field_tag "homework_common_tyle","homework_detail_manual"%> <%= render :partial => 'homework_common/homework_detail_manual_form', :locals => { :homework => @homework,:f => f,:edit_mode => false } %> 提交 上一步 @@ -33,6 +34,7 @@
<%= labelled_form_for @homework,:url => {:controller => 'homework_common',:action => 'create'} do |f| %> <%= hidden_field_tag "course",@course.id%> + <%= hidden_field_tag "homework_common_tyle","homework_detail_programing"%> <%= render :partial => 'homework_common/homework_detail_programing_form', :locals => { :homework => @homework,:f => f,:edit_mode => false } %> 提交 上一步 From 8f645f840cfe0139d5796fdb6094fcd47b9470b0 Mon Sep 17 00:00:00 2001 From: sw <939547590@qq.com> Date: Tue, 16 Jun 2015 11:20:17 +0800 Subject: [PATCH 004/444] =?UTF-8?q?=E4=B8=8A=E4=B8=80=E6=AD=A5=E6=8C=89?= =?UTF-8?q?=E9=92=AE=E6=A0=B7=E5=BC=8F=20=E7=BC=96=E7=A8=8B=E4=BD=9C?= =?UTF-8?q?=E4=B8=9A=E9=83=A8=E5=88=86=E6=95=B0=E6=8D=AE=E6=B7=BB=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../_homework_detail_manual_form.html.erb | 1 - .../_homework_detail_programing_form.html.erb | 49 +++++++++++-------- app/views/homework_common/new.html.erb | 4 +- 3 files changed, 31 insertions(+), 23 deletions(-) diff --git a/app/views/homework_common/_homework_detail_manual_form.html.erb b/app/views/homework_common/_homework_detail_manual_form.html.erb index fa45397f0..f70ec6017 100644 --- a/app/views/homework_common/_homework_detail_manual_form.html.erb +++ b/app/views/homework_common/_homework_detail_manual_form.html.erb @@ -10,7 +10,6 @@
  • -
    <% if edit_mode %> <%= f.kindeditor :description,:editor_id => 'homework_description_editor',:owner_id => homework.id,:owner_type =>OwnerTypeHelper::HOMEWORKCOMMON %> diff --git a/app/views/homework_common/_homework_detail_programing_form.html.erb b/app/views/homework_common/_homework_detail_programing_form.html.erb index d0556745b..12e6b7074 100644 --- a/app/views/homework_common/_homework_detail_programing_form.html.erb +++ b/app/views/homework_common/_homework_detail_programing_form.html.erb @@ -1,41 +1,50 @@
    • - - + + +

    • - - + +
      + <% if edit_mode %> + <%= f.kindeditor :description,:editor_id => 'homework_description_editor_1',:owner_id => homework.id,:owner_type =>OwnerTypeHelper::HOMEWORKCOMMON %> + <% else %> + <%= hidden_field_tag :asset_id,params[:asset_id],:required => false,:style => 'display:none' %> + <%= f.kindeditor :description,:editor_id => 'homework_description_editor_1' %> + <% end %> +
    • -
    • +
    • -     -文件不超过200MB + <%= render :partial => 'attachments/new_form', :locals => {:container => homework} %>
    • - - - + + + <%= calendar_for('homework_end_time')%>
    • -
    • +
    • -
    • + +
    • - + <%= select_tag :late_penalty,options_for_select(late_penalty_option,homework.late_penalty), {:class => "fl mb10 h26 w70"} %>  分
    • diff --git a/app/views/homework_common/new.html.erb b/app/views/homework_common/new.html.erb index 239987035..6a67c17d1 100644 --- a/app/views/homework_common/new.html.erb +++ b/app/views/homework_common/new.html.erb @@ -24,7 +24,7 @@ <%= hidden_field_tag "homework_common_tyle","homework_detail_manual"%> <%= render :partial => 'homework_common/homework_detail_manual_form', :locals => { :homework => @homework,:f => f,:edit_mode => false } %> 提交 - 上一步 + 上一步 <%= link_to '取消',homework_common_index_path(:course => @course.id),:class => 'grey_btn fl'%> <% end%>
    @@ -37,7 +37,7 @@ <%= hidden_field_tag "homework_common_tyle","homework_detail_programing"%> <%= render :partial => 'homework_common/homework_detail_programing_form', :locals => { :homework => @homework,:f => f,:edit_mode => false } %> 提交 - 上一步 + 上一步 <%= link_to '取消',homework_common_index_path(:course => @course.id),:class => 'grey_btn fl'%> <% end%>
  • From 61eb3ecc621e90a26bd9398a4fc1a501f1275e63 Mon Sep 17 00:00:00 2001 From: sw <939547590@qq.com> Date: Tue, 16 Jun 2015 14:45:57 +0800 Subject: [PATCH 005/444] =?UTF-8?q?1=E3=80=81=E6=96=B0=E5=BB=BA=E4=BD=9C?= =?UTF-8?q?=E4=B8=9A=E4=B8=8A=E4=B8=80=E6=AD=A5=E4=B8=8B=E4=B8=80=E6=AD=A5?= =?UTF-8?q?=E6=94=B9=E4=B8=BA=E9=A1=B5=E9=9D=A2=E5=88=B7=E6=96=B0=202?= =?UTF-8?q?=E3=80=81=E4=B8=8B=E4=B8=80=E6=AD=A5=E8=B7=AF=E7=94=B1=E6=94=B9?= =?UTF-8?q?=E4=B8=BApost?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/homework_common_controller.rb | 11 +++- app/views/homework_common/new.html.erb | 56 +++++++------------ app/views/homework_common/next_step.html.erb | 31 ++++++++++ config/routes.rb | 2 +- public/javascripts/course.js | 21 +++++-- 5 files changed, 79 insertions(+), 42 deletions(-) create mode 100644 app/views/homework_common/next_step.html.erb diff --git a/app/controllers/homework_common_controller.rb b/app/controllers/homework_common_controller.rb index 06bc1fd38..351feb979 100644 --- a/app/controllers/homework_common_controller.rb +++ b/app/controllers/homework_common_controller.rb @@ -1,6 +1,6 @@ class HomeworkCommonController < ApplicationController layout "base_courses" - before_filter :find_course, :only => [:index,:new,:create] + before_filter :find_course, :only => [:index,:new,:create,:next_step] before_filter :find_homework, :only => [:edit,:update,:alert_anonymous_comment,:start_anonymous_comment,:stop_anonymous_comment,:destroy] before_filter :teacher_of_course, :only => [:new, :create, :edit, :update, :destroy, :start_anonymous_comment, :stop_anonymous_comment, :alert_anonymous_comment] @@ -15,6 +15,15 @@ class HomeworkCommonController < ApplicationController end def new + respond_to do |format| + format.html + end + end + + #新建作业下一步 + def next_step + @homework_type = params[:homework_common_type] + @homework = HomeworkCommon.new @homework.safe_attributes = params[:homework_common] @homework.late_penalty = 0 diff --git a/app/views/homework_common/new.html.erb b/app/views/homework_common/new.html.erb index 6a67c17d1..bace02de9 100644 --- a/app/views/homework_common/new.html.erb +++ b/app/views/homework_common/new.html.erb @@ -1,45 +1,29 @@ <%= javascript_include_tag "/assets/kindeditor/kindeditor" %> <%= error_messages_for 'homework_common' %> -

    <%= l(:label_course_homework_new)%>

    -

    请选择将要发布的作业类型 -

    - 人工评分的作业(支持匿名互评、灵活设置评分比例) -
    - 自动评测的编程作业(支持C++程序的自动评分) -
    - 下一步 + <%= form_for("new_homework_common",:url => next_step_homework_common_index_path) do |f|%> + +

    + 请选择将要发布的作业类型 +

    + + + 人工评分的作业(支持匿名互评、灵活设置评分比例) + +
    + + + 自动评测的编程作业(支持C++程序的自动评分) + +
    + + 下一步 + + <% end%>
    -
    - -
    -
    - <%= labelled_form_for @homework,:url => {:controller => 'homework_common',:action => 'create'} do |f| %> - <%= hidden_field_tag "course",@course.id%> - <%= hidden_field_tag "homework_common_tyle","homework_detail_manual"%> - <%= render :partial => 'homework_common/homework_detail_manual_form', :locals => { :homework => @homework,:f => f,:edit_mode => false } %> - 提交 - 上一步 - <%= link_to '取消',homework_common_index_path(:course => @course.id),:class => 'grey_btn fl'%> - <% end%> -
    -
    -
    -
    -
    - <%= labelled_form_for @homework,:url => {:controller => 'homework_common',:action => 'create'} do |f| %> - <%= hidden_field_tag "course",@course.id%> - <%= hidden_field_tag "homework_common_tyle","homework_detail_programing"%> - <%= render :partial => 'homework_common/homework_detail_programing_form', :locals => { :homework => @homework,:f => f,:edit_mode => false } %> - 提交 - 上一步 - <%= link_to '取消',homework_common_index_path(:course => @course.id),:class => 'grey_btn fl'%> - <% end%> -
    -
    -
    \ No newline at end of file +
    \ No newline at end of file diff --git a/app/views/homework_common/next_step.html.erb b/app/views/homework_common/next_step.html.erb new file mode 100644 index 000000000..148379f9e --- /dev/null +++ b/app/views/homework_common/next_step.html.erb @@ -0,0 +1,31 @@ +<%= javascript_include_tag "/assets/kindeditor/kindeditor" %> +<%= error_messages_for 'homework_common' %> +
    +

    + <%= l(:label_course_homework_new)%> +

    +
    +<% if @homework_type == "1"%> +
    + <%= labelled_form_for @homework,:url => {:controller => 'homework_common',:action => 'create'} do |f| %> + <%= hidden_field_tag "course",@course.id%> + <%= hidden_field_tag "homework_common_tyle","homework_detail_manual"%> + <%= render :partial => 'homework_common/homework_detail_manual_form', :locals => { :homework => @homework,:f => f,:edit_mode => false } %> + 提交 + <%= link_to "上一步", new_homework_common_path(:course => @course.id), :class => "orange_btn_homework fl"%> + <%= link_to '取消',homework_common_index_path(:course => @course.id),:class => 'grey_btn fl'%> + <% end%> +
    +<% elsif @homework_type == "2"%> +
    + <%= labelled_form_for @homework,:url => {:controller => 'homework_common',:action => 'create'} do |f| %> + <%= hidden_field_tag "course",@course.id%> + <%= hidden_field_tag "homework_common_tyle","homework_detail_programing"%> + <%= render :partial => 'homework_common/homework_detail_programing_form', :locals => { :homework => @homework,:f => f,:edit_mode => false } %> + 提交 + <%= link_to "上一步", new_homework_common_path(:course => @course.id), :class => "orange_btn_homework fl"%> + <%= link_to '取消',homework_common_index_path(:course => @course.id),:class => 'grey_btn fl'%> + <% end%> +
    +
    +<% end%> \ No newline at end of file diff --git a/config/routes.rb b/config/routes.rb index c92c732d2..dcdca73d4 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -85,7 +85,7 @@ RedmineApp::Application.routes.draw do get 'alert_anonymous_comment' end collection do - + post 'next_step' end end diff --git a/public/javascripts/course.js b/public/javascripts/course.js index b493277fd..62769f2f5 100644 --- a/public/javascripts/course.js +++ b/public/javascripts/course.js @@ -396,15 +396,28 @@ function show_bid_dead_line(year,month,day,divname) } //新建作业,下一步按钮 -function select_homework_common_type() +function select_homework_common_type(url,course_id) { + var homework_common_type = ""; if($("#homework_detail_manual_radio").attr("checked") == "checked"){ - $("#homework_detail_manual").show(); + homework_common_type = "homework_detail_manual"; } else if($("#homework_detail_programing_radio").attr("checked") == "checked"){ - $("#homework_detail_programing").show(); + homework_common_type = "homework_detail_programing"; } - $("#hwork_new").hide(); + else{ + alert("未知错误,请联系管理员"); + return; + } + $.get( + url, + { + course: course_id, + homework_common_type: homework_common_type + }, + function (data) { + } + ); } //新建作业,上一步按钮 From dd8e8e38acdf202b6aa0e3b3b180626ba9670dd9 Mon Sep 17 00:00:00 2001 From: sw <939547590@qq.com> Date: Tue, 16 Jun 2015 14:46:18 +0800 Subject: [PATCH 006/444] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=97=A0=E7=94=A8js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/javascripts/course.js | 33 --------------------------------- 1 file changed, 33 deletions(-) diff --git a/public/javascripts/course.js b/public/javascripts/course.js index 62769f2f5..85f718d31 100644 --- a/public/javascripts/course.js +++ b/public/javascripts/course.js @@ -395,39 +395,6 @@ function show_bid_dead_line(year,month,day,divname) + "

    作品提交还剩:

    "); } -//新建作业,下一步按钮 -function select_homework_common_type(url,course_id) -{ - var homework_common_type = ""; - if($("#homework_detail_manual_radio").attr("checked") == "checked"){ - homework_common_type = "homework_detail_manual"; - } - else if($("#homework_detail_programing_radio").attr("checked") == "checked"){ - homework_common_type = "homework_detail_programing"; - } - else{ - alert("未知错误,请联系管理员"); - return; - } - $.get( - url, - { - course: course_id, - homework_common_type: homework_common_type - }, - function (data) { - } - ); -} - -//新建作业,上一步按钮 -function return_homework_common_type() -{ - $("#homework_detail_manual").hide(); - $("#homework_detail_programing").hide(); - $("#hwork_new").show(); -} - //验证新建作业的名字 function regex_homework_name() { From ab88156d2f09ddfef1e00a833cdbde40e4a844ea Mon Sep 17 00:00:00 2001 From: sw <939547590@qq.com> Date: Tue, 16 Jun 2015 17:55:07 +0800 Subject: [PATCH 007/444] =?UTF-8?q?=E7=BC=96=E7=A8=8B=E4=BD=9C=E4=B8=9A?= =?UTF-8?q?=E5=88=9B=E5=BB=BA=E9=83=A8=E5=88=86=E5=80=BC=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=20=E5=A2=9E=E5=8A=A0=E3=80=81=E5=88=A0=E9=99=A4=E7=BC=96?= =?UTF-8?q?=E7=A8=8B=E4=BD=9C=E4=B8=9A=E6=B5=8B=E8=AF=95=E7=BB=93=E6=9E=9C?= =?UTF-8?q?=20=E6=A0=B7=E5=BC=8F=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/homework_common_controller.rb | 58 +++++++++++++------ .../_homework_detail_programing_form.html.erb | 49 ++++++++-------- app/views/homework_common/new.html.erb | 2 - app/views/homework_common/next_step.html.erb | 3 +- public/javascripts/course.js | 20 +++++++ public/stylesheets/courses.css | 18 ++---- public/stylesheets/public.css | 1 + 7 files changed, 93 insertions(+), 58 deletions(-) diff --git a/app/controllers/homework_common_controller.rb b/app/controllers/homework_common_controller.rb index 351feb979..d4a5cab24 100644 --- a/app/controllers/homework_common_controller.rb +++ b/app/controllers/homework_common_controller.rb @@ -30,14 +30,22 @@ class HomeworkCommonController < ApplicationController @homework.end_time = (Time.now + 3600 * 24).strftime('%Y-%m-%d') @homework.publish_time = Time.now.strftime('%Y-%m-%d') - #匿评作业相关属性 - @homework_detail_manual = HomeworkDetailManual.new - @homework_detail_manual.ta_proportion = 0.6 - @homework_detail_manual.absence_penalty = 0 - @homework_detail_manual.evaluation_num = 3 - @homework_detail_manual.evaluation_start = Time.now.strftime('%Y-%m-%d') - @homework_detail_manual.evaluation_end = (Time.now + 3600 * 24).strftime('%Y-%m-%d') - @homework.homework_detail_manual = @homework_detail_manual + if @homework_type == "1" + #匿评作业相关属性 + @homework_detail_manual = HomeworkDetailManual.new + @homework_detail_manual.ta_proportion = 0.6 + @homework_detail_manual.absence_penalty = 0 + @homework_detail_manual.evaluation_num = 3 + @homework_detail_manual.evaluation_start = Time.now.strftime('%Y-%m-%d') + @homework_detail_manual.evaluation_end = (Time.now + 3600 * 24).strftime('%Y-%m-%d') + @homework.homework_detail_manual = @homework_detail_manual + elsif @homework_type == "2" + #编程作业相关属性 + @homework_detail_programing = HomeworkDetailPrograming.new + @homework.homework_detail_programing = @homework_detail_programing + end + + respond_to do |format| format.html end @@ -58,15 +66,31 @@ class HomeworkCommonController < ApplicationController homework.save_attachments(params[:attachments]) render_attachment_warning_if_needed(homework) - #匿评作业相关属性 - homework_detail_manual = HomeworkDetailManual.new - homework_detail_manual.ta_proportion = params[:ta_proportion] || 0.6 - homework_detail_manual.comment_status = 1 - homework_detail_manual.evaluation_start = params[:evaluation_start] - homework_detail_manual.evaluation_end = params[:evaluation_end] - homework_detail_manual.evaluation_num = params[:evaluation_num] - homework_detail_manual.absence_penalty = params[:absence_penalty] - homework.homework_detail_manual = homework_detail_manual + if homework.homework_type == 2 + homework_detail_programing = HomeworkDetailPrograming.new + homework_detail_programing.language = "C++" + homework_detail_programing.standard_code = params[:standard_code] + + if params[:input] && params[:output] + params[:input].each do |k,v| + if params[:output][k] + + end + end + end + + homework.homework_detail_programing = homework_detail_programing + else + #匿评作业相关属性 + homework_detail_manual = HomeworkDetailManual.new + homework_detail_manual.ta_proportion = params[:ta_proportion] || 0.6 + homework_detail_manual.comment_status = 1 + homework_detail_manual.evaluation_start = params[:evaluation_start] + homework_detail_manual.evaluation_end = params[:evaluation_end] + homework_detail_manual.evaluation_num = params[:evaluation_num] + homework_detail_manual.absence_penalty = params[:absence_penalty] + homework.homework_detail_manual = homework_detail_manual + end if homework.save respond_to do |format| diff --git a/app/views/homework_common/_homework_detail_programing_form.html.erb b/app/views/homework_common/_homework_detail_programing_form.html.erb index 12e6b7074..1a1804275 100644 --- a/app/views/homework_common/_homework_detail_programing_form.html.erb +++ b/app/views/homework_common/_homework_detail_programing_form.html.erb @@ -1,6 +1,6 @@
    \ No newline at end of file diff --git a/app/views/homework_common/new.html.erb b/app/views/homework_common/new.html.erb index bace02de9..ece4af158 100644 --- a/app/views/homework_common/new.html.erb +++ b/app/views/homework_common/new.html.erb @@ -1,5 +1,3 @@ -<%= javascript_include_tag "/assets/kindeditor/kindeditor" %> -<%= error_messages_for 'homework_common' %>

    <%= l(:label_course_homework_new)%> diff --git a/app/views/homework_common/next_step.html.erb b/app/views/homework_common/next_step.html.erb index 148379f9e..75e9f4c0a 100644 --- a/app/views/homework_common/next_step.html.erb +++ b/app/views/homework_common/next_step.html.erb @@ -9,7 +9,6 @@
    <%= labelled_form_for @homework,:url => {:controller => 'homework_common',:action => 'create'} do |f| %> <%= hidden_field_tag "course",@course.id%> - <%= hidden_field_tag "homework_common_tyle","homework_detail_manual"%> <%= render :partial => 'homework_common/homework_detail_manual_form', :locals => { :homework => @homework,:f => f,:edit_mode => false } %> 提交 <%= link_to "上一步", new_homework_common_path(:course => @course.id), :class => "orange_btn_homework fl"%> @@ -20,7 +19,7 @@
    <%= labelled_form_for @homework,:url => {:controller => 'homework_common',:action => 'create'} do |f| %> <%= hidden_field_tag "course",@course.id%> - <%= hidden_field_tag "homework_common_tyle","homework_detail_programing"%> + <%= hidden_field_tag "homework_common[homework_type]","2"%> <%= render :partial => 'homework_common/homework_detail_programing_form', :locals => { :homework => @homework,:f => f,:edit_mode => false } %> 提交 <%= link_to "上一步", new_homework_common_path(:course => @course.id), :class => "orange_btn_homework fl"%> diff --git a/public/javascripts/course.js b/public/javascripts/course.js index 85f718d31..0b3d78fc4 100644 --- a/public/javascripts/course.js +++ b/public/javascripts/course.js @@ -415,6 +415,7 @@ function regex_homework_name() //验证匿评数量 function regex_evaluation_num() { + if($("#evaluation_num").length == 0){ return true;} var evaluation_num = $.trim($("#evaluation_num").val()); var regex = /^\d+$/; if(evaluation_num=="") @@ -502,6 +503,25 @@ function submit_homework(id) } } +//增加测试结果 +function add_programing_test(obj) { + var now = new Date().getTime(); + obj.after("
  • " + + "
  • " + + "
  • " + + "" + + "测试
  • "); +} +//删除测试结果 +function remove_programing_test(obj) { + if(obj.siblings("div").length == 0){ + alert("至少需要一组测试"); + } + else{ + obj.remove(); + } +} + function show_window (id1,id2,top,left) { $('#'+ id1).css('top',top); $('#'+ id1).css('left',left); diff --git a/public/stylesheets/courses.css b/public/stylesheets/courses.css index 769136f2d..3835559fa 100644 --- a/public/stylesheets/courses.css +++ b/public/stylesheets/courses.css @@ -551,19 +551,7 @@ a.wzan_visited{background:url(../images/new_project/public_icon.png) 0px -503px a.files_tag_icon{ background:#e2f3f9; color:#54aeca; border:1px solid #bbe2ef; padding:1px 10px; float:left; margin-right:10px;margin-bottom:10px; } a.files_tag_select{ background:#64bdd9; color:#fff; border:1px solid #64bdd9; padding:1px 10px; float:left; margin-right:10px;margin-bottom:10px;} -/* 20150423作业评分*/ -.ml14{ margin-left:14px;} -.w548{ width:552px;} -.w547{ width:544px;} -.w196{ width:182px;} -.w459{ width:459px;} -.hwork_new_set{border:1px dashed #CCC; background:#f5f5f5; text-align:center; padding:10px 0; margin-bottom:10px;} -.hwork_new_grey{background:#dbdbdb; width:610px; padding:10px 20px; margin:0 auto; text-align:left; margin-bottom:5px;} -.hwork_new_left{ width:220px; float:left; } -.hwork_new_right{ width:350px; float:left; margin-left:40px;} -.w305{ width:305px;} -.icon_add{ background:url(images/icons.png) 0px -310px no-repeat; width:16px; height:27px; display:block;float:left; margin-right:5px;} -a:hover.icon_add{background:url(images/icons.png) -20px -310px no-repeat;} + /* 20150505讨论区*/ .w664{ width:664px;} @@ -599,10 +587,12 @@ a:hover.Reply_pic{border:1px solid #64bdd9;} /*.talk_new{ border-bottom:1px dashed #d9d9d9; padding-bottom:10px;}*/ #about_newtalk{ display:none;} +/* 20150423作业评分*/ .ml14{ margin-left:14px;} .w548{ width:552px;} .w547{ width:544px;} .w196{ width:196px;} +.w186{ width:186px;} .w459{ width:459px;} .hwork_new_set{border:1px dashed #CCC; background:#f5f5f5; text-align:center; padding:10px 0; margin-bottom:10px;} .hwork_new_grey{background:#dbdbdb; width:610px; padding:10px 20px; margin:0 auto; text-align:left; margin-bottom:5px;} @@ -611,6 +601,8 @@ a:hover.Reply_pic{border:1px solid #64bdd9;} .w305{ width:305px;} .icon_add{background:url(images/icons.png) 0px -310px no-repeat; width:16px; height:27px; display:block;float:left; margin-right:5px;} a:hover.icon_add{background:url(images/icons.png) -20px -310px no-repeat;} +.icon_remove{background:url(images/icons.png) 0px -338px no-repeat; width:16px; height:27px; display:block;float:left;} +a:hover.icon_remove{background:url(images/icons.png) -20px -338px no-repeat;} /* 20150506上传头像*/ .uppicBox{ width:265px; height:265px; background:#f2f2f5; float:left; color:#666; text-align:center;} diff --git a/public/stylesheets/public.css b/public/stylesheets/public.css index 5b00dbd57..62f169126 100644 --- a/public/stylesheets/public.css +++ b/public/stylesheets/public.css @@ -77,6 +77,7 @@ h4{ font-size:14px; color:#3b3b3b;} .mr50{margin-right: 50px;} .mr55{margin-right: 55px;} .mr70{margin-right: 70px;} +.mt1{margin-top: 1px;} .mt3{ margin-top:3px;} .mt5{ margin-top:5px;} .mt8{ margin-top:8px;} From 24970ce580a9f7de35d16a760bb10b118f11ac56 Mon Sep 17 00:00:00 2001 From: sw <939547590@qq.com> Date: Wed, 17 Jun 2015 09:58:01 +0800 Subject: [PATCH 008/444] =?UTF-8?q?=E5=88=9B=E5=BB=BA=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/homework_common_controller.rb | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/app/controllers/homework_common_controller.rb b/app/controllers/homework_common_controller.rb index d4a5cab24..bfac1432f 100644 --- a/app/controllers/homework_common_controller.rb +++ b/app/controllers/homework_common_controller.rb @@ -73,8 +73,11 @@ class HomeworkCommonController < ApplicationController if params[:input] && params[:output] params[:input].each do |k,v| - if params[:output][k] - + if params[:output].include? k + homework_test = HomeworkTest.new + homework_test.input = v + homework_test.output = params[:output][k] + homework.homework_tests << homework_test end end end From 02d7215f6f51d9cd73977193afed1183a3cd65d0 Mon Sep 17 00:00:00 2001 From: sw <939547590@qq.com> Date: Wed, 17 Jun 2015 10:03:00 +0800 Subject: [PATCH 009/444] =?UTF-8?q?=E7=BC=96=E8=BE=91=E7=BC=96=E7=A8=8B?= =?UTF-8?q?=E4=BD=9C=E4=B8=9A=E8=B7=B3=E8=BD=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../_homework_detail_programing_form.html.erb | 19 ++++++++++++++++++- app/views/homework_common/edit.html.erb | 16 ++++++++++++---- 2 files changed, 30 insertions(+), 5 deletions(-) diff --git a/app/views/homework_common/_homework_detail_programing_form.html.erb b/app/views/homework_common/_homework_detail_programing_form.html.erb index 1a1804275..7b732d7c3 100644 --- a/app/views/homework_common/_homework_detail_programing_form.html.erb +++ b/app/views/homework_common/_homework_detail_programing_form.html.erb @@ -67,7 +67,24 @@ <% if edit_mode %> - + <% homework.homework_tests.each_with_index do |homework_test,i|%> +
    +
  • + + +
  • +
  • + + +
  • +
  • + + + 测试 +
  • +
    +
    + <% end%> <% else %>
  • diff --git a/app/views/homework_common/edit.html.erb b/app/views/homework_common/edit.html.erb index 87977c6a9..fc5596437 100644 --- a/app/views/homework_common/edit.html.erb +++ b/app/views/homework_common/edit.html.erb @@ -7,10 +7,18 @@
  • - <%= form_for @homework do |f| %> - <%= render :partial => 'homework_common/homework_detail_manual_form', :locals => { :homework => @homework,:f => f,:edit_mode => true } %> - 提交 - <%= link_to '取消',homework_common_index_path(:course => @course.id),:class => 'grey_btn fl'%> + <%if @homework.homework_type == 2%> + <%= form_for @homework do |f| %> + <%= render :partial => 'homework_common/homework_detail_programing_form', :locals => { :homework => @homework,:f => f,:edit_mode => true } %> + 提交 + <%= link_to '取消',homework_common_index_path(:course => @course.id),:class => 'grey_btn fl'%> + <% end%> + <% else %> + <%= form_for @homework do |f| %> + <%= render :partial => 'homework_common/homework_detail_manual_form', :locals => { :homework => @homework,:f => f,:edit_mode => true } %> + 提交 + <%= link_to '取消',homework_common_index_path(:course => @course.id),:class => 'grey_btn fl'%> + <% end%> <% end%>
    \ No newline at end of file From d23189b93374baa453b7586ef0125c0ea0f41d23 Mon Sep 17 00:00:00 2001 From: sw <939547590@qq.com> Date: Wed, 17 Jun 2015 10:05:10 +0800 Subject: [PATCH 010/444] =?UTF-8?q?=E5=B7=B2=E5=AD=98=E5=9C=A8=E7=9A=84?= =?UTF-8?q?=E8=BE=93=E5=85=A5=E8=BE=93=E5=87=BA=E6=B5=8B=E8=AF=95=E7=9A=84?= =?UTF-8?q?name=E6=94=B9=E4=B8=BA=E6=B5=8B=E8=AF=95=E7=9A=84id?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../_homework_detail_programing_form.html.erb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/views/homework_common/_homework_detail_programing_form.html.erb b/app/views/homework_common/_homework_detail_programing_form.html.erb index 7b732d7c3..6808f8cfe 100644 --- a/app/views/homework_common/_homework_detail_programing_form.html.erb +++ b/app/views/homework_common/_homework_detail_programing_form.html.erb @@ -67,15 +67,15 @@ <% if edit_mode %> - <% homework.homework_tests.each_with_index do |homework_test,i|%> + <% homework.homework_tests.each do |homework_test|%>
  • - +
  • - +
  • From b95259566019f548e724602d8b65d584db6a24c0 Mon Sep 17 00:00:00 2001 From: sw <939547590@qq.com> Date: Wed, 17 Jun 2015 10:29:41 +0800 Subject: [PATCH 011/444] =?UTF-8?q?=E7=BC=96=E7=A8=8B=E4=BD=9C=E4=B8=9A?= =?UTF-8?q?=E7=BC=96=E8=BE=91=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/homework_common_controller.rb | 48 +++++++++++++++---- 1 file changed, 40 insertions(+), 8 deletions(-) diff --git a/app/controllers/homework_common_controller.rb b/app/controllers/homework_common_controller.rb index bfac1432f..dad01c79f 100644 --- a/app/controllers/homework_common_controller.rb +++ b/app/controllers/homework_common_controller.rb @@ -125,22 +125,54 @@ class HomeworkCommonController < ApplicationController @homework.description = params[:homework_common][:description] @homework.end_time = params[:homework_common][:end_time] @homework.publish_time = params[:homework_common][:publish_time] - @homework.homework_type = params[:homework_common][:homework_type] @homework.late_penalty = params[:late_penalty] @homework.user_id = User.current.id @homework.course_id = @course.id - #匿评作业相关属性 - @homework_detail_manual.ta_proportion = params[:ta_proportion] || 0.6 - @homework_detail_manual.evaluation_start = params[:evaluation_start] - @homework_detail_manual.evaluation_end = params[:evaluation_end] - @homework_detail_manual.evaluation_num = params[:evaluation_num] - @homework_detail_manual.absence_penalty = params[:absence_penalty] + @homework_detail_programing = @homework.homework_detail_programing + if @homework.homework_type == 2 #编程作业 + @homework_detail_programing.language = "C++" + @homework_detail_programing.standard_code = params[:standard_code] + homework_tests = @homework.homework_tests + #需要删除的测试 + ids = homework_tests.map(&:id) - params[:input].keys.map(&:to_i) + ids.each do |id| + homework_test = HomeworkTest.find id + homework_test.destroy if homework_test + end + + if params[:input] && params[:output] + params[:input].each do |k,v| + if params[:output].include? k + homework_test = HomeworkTest.find_by_id k + if homework_test #已存在的测试,修改 + homework_test.input = v + homework_test.output = params[:output][k] + else #不存在的测试,增加 + homework_test = HomeworkTest.new + homework_test.input = v + homework_test.output = params[:output][k] + homework_test.homework_common = @homework + end + homework_test.save + end + end + end + else + #匿评作业相关属性 + @homework_detail_manual.ta_proportion = params[:ta_proportion] || 0.6 + @homework_detail_manual.evaluation_start = params[:evaluation_start] + @homework_detail_manual.evaluation_end = params[:evaluation_end] + @homework_detail_manual.evaluation_num = params[:evaluation_num] + @homework_detail_manual.absence_penalty = params[:absence_penalty] + end @homework.save_attachments(params[:attachments]) render_attachment_warning_if_needed(@homework) - if @homework.save && @homework_detail_manual.save + if @homework.save + @homework_detail_manual.save if @homework_detail_manual + @homework_detail_programing.save if @homework_detail_programing respond_to do |format| format.html { flash[:notice] = l(:notice_successful_edit) From 71ab5ed74f0c1a304285608c785650f30fac2e1c Mon Sep 17 00:00:00 2001 From: sw <939547590@qq.com> Date: Fri, 19 Jun 2015 15:08:00 +0800 Subject: [PATCH 012/444] 111 --- app/views/bids/new_contest.html.erb | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/app/views/bids/new_contest.html.erb b/app/views/bids/new_contest.html.erb index 216816bd1..899aea1e7 100644 --- a/app/views/bids/new_contest.html.erb +++ b/app/views/bids/new_contest.html.erb @@ -1,10 +1,10 @@ - -

    <%=l(:label_newtype_contest)%>

    + + -<%= labelled_form_for @bid, :url => {:controller => 'bids', :action => 'create_contest'} do |f| %> -
    - <%= render :partial => 'form_contest', :locals => { :f => f } %> - <%= submit_tag l(:button_create) %> - <%= javascript_tag "$('#bid_name').focus();" %> - <% end %> -
    \ No newline at end of file + + + + + + + \ No newline at end of file From e46ccda8e6cb87a65731e246019991e9704f7639 Mon Sep 17 00:00:00 2001 From: sw <939547590@qq.com> Date: Sat, 4 Jul 2015 15:09:08 +0800 Subject: [PATCH 013/444] 1111 --- app/helpers/homework_attach_helper.rb | 294 +++++++++++++------------- 1 file changed, 147 insertions(+), 147 deletions(-) diff --git a/app/helpers/homework_attach_helper.rb b/app/helpers/homework_attach_helper.rb index 72d381b28..bd2bec80c 100644 --- a/app/helpers/homework_attach_helper.rb +++ b/app/helpers/homework_attach_helper.rb @@ -1,149 +1,149 @@ module HomeworkAttachHelper - #判断是否具有删除的权限 - def attach_delete(project) - if User.current.logged? && (User.current.admin? || (!Member.where('user_id = ? and project_id = ?', User.current.id, project.bid.courses.first.id).first.nil? && (Member.where('user_id = ? and project_id = ?', User.current.id, project.bid.courses.first.id).first.roles&Role.where('id = ? or id = ?', 3, 7)).size >0) || project.user_id == User.current.id) - true - else - false - end - end - #作业添加、编辑界面的tab页 - def homework_settings_tabs f - @f = f - tabs = [{:name => 'info', :partial => 'homework_attach/edit_homework', :label => :label_information_plural}, - {:name => 'members', :partial => 'homework_attach/homework_member', :label => :label_member_plural} - ] - end - - #作业可选成员列表分页 - def render_new_members_for_homework members - #scope = Principal.active.sorted.not_member_of(project).like(params[:q]) - #scope = project.members - #principals = paginateHelper members,10 - #principals = members - #principal_count = members.count - #limit = 10 - #principal_pages = Redmine::Pagination::Paginator.new principal_count, limit, params['page'] #by young - #offset ||= principal_pages.offset - #principals = members[offset, limit] - users = members.map(&:user) - s = content_tag('div', member_check_box_tags_ex('membership[user_ids][]', users), :id => 'principals') - links = pagination_links_full(@obj_pages, @obj_count, :per_page_links => false) {|text, parameters, options| - link_to text, get_homework_member_list_homework_attach_index_path( parameters.merge(:q => params[:q], bid_id: params[:id]||@homework)), :remote => true } - return s + content_tag('div', content_tag('ul', links), :class => 'pagination_new') - end - - #扩展的checkbox生成 - def member_check_box_tags_ex(name, principals) - s = '' - principals.each do |member| - s << "
    " - end - s.html_safe - end - - def paginateHelper obj, pre_size=20 - @obj_count = obj.count - @obj_pages = Redmine::Pagination::Paginator.new @obj_count, pre_size, params['page'] - if obj.kind_of? ActiveRecord::Base or obj.kind_of? ActiveRecord::Relation - obj.limit(@obj_pages.per_page).offset(@obj_pages.offset) - elsif obj.kind_of? Array - obj[@obj_pages.offset, @obj_pages.per_page] - else - logger.error "[ApplicationController] Error : application_controller#paginateHelper ===> unknow category: #{obj.class}" - raise RuntimeError, 'unknow type, Please input you type into this helper.' - end - end - - def user_projects_option - cond = Project.visible_condition(User.current) + " AND projects.project_type <> 1" - memberships = User.current.memberships.all(:conditions => cond) - projects = memberships.map(&:project) - not_have_project = [] - not_have_project << Setting.please_chose - not_have_project << 0 - type = [] - type << not_have_project - projects.each do |project| - if project != nil - option = [] - option << project.name - option << project.id - type << option - end - end - type - end - - #判断指定用户是不是已经赞过该作业 - def is_praise_homework user_id, obj_id - PraiseTread.where("user_id = #{user_id} AND praise_tread_object_id = #{obj_id} AND praise_tread_object_type = 'HomeworkAttach'").empty? - end - - #获取赞的总数 - def praise_homework_count obj_id - PraiseTread.where("praise_tread_object_id = #{obj_id} AND praise_tread_object_type = 'HomeworkAttach'").count - end - - #获取用户对作业的评分 - def get_homework_score user, homework - temp = HomeworkAttach.find_by_sql("SELECT stars FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = #{homework.id} AND rater_id = #{user.id}").first - @m_score = temp.nil? ? 0:temp.stars.to_i - end - - #获取评分对应的评论 - def get_homework_review homework,is_teacher,user - homework.journals_for_messages.where("is_comprehensive_evaluation = #{is_teacher ? 1 : 2} and user_id = #{user.id}").order("created_on DESC").first - end - - def convert_array array - ary = "(" - if array.nil? || array.count == 0 - return "()" - end - array.length.times do |i| - if i == array.length - 1 - ary += array[i].id.to_s + ")" - else - if !(array[i].nil? || array[i].id.nil? || array[i].id.to_s == "") - ary += array[i].id.to_s + "," - end - end - end - #array.each do |member| - # if member == array.last - # ary += member.id.to_s + ")" - # else - # ary += member.id.to_s + "," - # end - #end - ary - end - - def get_student_batch_homework_list bid,user - student_batch_homework_list = HomeworkAttach.eager_load(:attachments,:user,:rate_averages).find_by_sql("SELECT homework_attaches.*, - (SELECT stars FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND is_teacher_score = 1 AND stars IS NOT NULL ORDER BY updated_at DESC limit 0,1) AS t_score, - (SELECT AVG(stars) FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND is_teacher_score = 0) AS s_score, - (SELECT stars FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND rater_id = #{User.current.id} AND is_teacher_score = 0) AS m_score - FROM homework_attaches - INNER JOIN homework_evaluations ON homework_evaluations.homework_attach_id = homework_attaches.id - WHERE homework_attaches.bid_id = #{bid.id} AND homework_evaluations.user_id = #{user.id} ORDER BY m_score DESC") - student_batch_homework_list - end - - ######################################################### - #sw - #获取学生未进行匿评的数量 - #param: bid => 作业 user => 用户 - #return 指定用户未进行匿评的作业的数量 - #user必须是学生用户 - ####################################################### - def get_student_not_batch_homework_list bid,user - HomeworkAttach.find_by_sql("SELECT * FROM(SELECT homework_attaches.*, - (SELECT stars FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND rater_id = #{user.id} AND is_teacher_score = 0) AS m_score - FROM homework_attaches - INNER JOIN homework_evaluations ON homework_evaluations.homework_attach_id = homework_attaches.id - WHERE homework_attaches.bid_id = #{bid.id} AND homework_evaluations.user_id = #{user.id}) AS table1 - WHERE table1.m_score IS NULL").count - end +# #判断是否具有删除的权限 +# def attach_delete(project) +# if User.current.logged? && (User.current.admin? || (!Member.where('user_id = ? and project_id = ?', User.current.id, project.bid.courses.first.id).first.nil? && (Member.where('user_id = ? and project_id = ?', User.current.id, project.bid.courses.first.id).first.roles&Role.where('id = ? or id = ?', 3, 7)).size >0) || project.user_id == User.current.id) +# true +# else +# false +# end +# end +# #作业添加、编辑界面的tab页 +# def homework_settings_tabs f +# @f = f +# tabs = [{:name => 'info', :partial => 'homework_attach/edit_homework', :label => :label_information_plural}, +# {:name => 'members', :partial => 'homework_attach/homework_member', :label => :label_member_plural} +# ] +# end +# +# #作业可选成员列表分页 +# def render_new_members_for_homework members +# #scope = Principal.active.sorted.not_member_of(project).like(params[:q]) +# #scope = project.members +# #principals = paginateHelper members,10 +# #principals = members +# #principal_count = members.count +# #limit = 10 +# #principal_pages = Redmine::Pagination::Paginator.new principal_count, limit, params['page'] #by young +# #offset ||= principal_pages.offset +# #principals = members[offset, limit] +# users = members.map(&:user) +# s = content_tag('div', member_check_box_tags_ex('membership[user_ids][]', users), :id => 'principals') +# links = pagination_links_full(@obj_pages, @obj_count, :per_page_links => false) {|text, parameters, options| +# link_to text, get_homework_member_list_homework_attach_index_path( parameters.merge(:q => params[:q], bid_id: params[:id]||@homework)), :remote => true } +# return s + content_tag('div', content_tag('ul', links), :class => 'pagination_new') +# end +# +# #扩展的checkbox生成 +# def member_check_box_tags_ex(name, principals) +# s = '' +# principals.each do |member| +# s << "
    " +# end +# s.html_safe +# end +# +# def paginateHelper obj, pre_size=20 +# @obj_count = obj.count +# @obj_pages = Redmine::Pagination::Paginator.new @obj_count, pre_size, params['page'] +# if obj.kind_of? ActiveRecord::Base or obj.kind_of? ActiveRecord::Relation +# obj.limit(@obj_pages.per_page).offset(@obj_pages.offset) +# elsif obj.kind_of? Array +# obj[@obj_pages.offset, @obj_pages.per_page] +# else +# logger.error "[ApplicationController] Error : application_controller#paginateHelper ===> unknow category: #{obj.class}" +# raise RuntimeError, 'unknow type, Please input you type into this helper.' +# end +# end +# +# def user_projects_option +# cond = Project.visible_condition(User.current) + " AND projects.project_type <> 1" +# memberships = User.current.memberships.all(:conditions => cond) +# projects = memberships.map(&:project) +# not_have_project = [] +# not_have_project << Setting.please_chose +# not_have_project << 0 +# type = [] +# type << not_have_project +# projects.each do |project| +# if project != nil +# option = [] +# option << project.name +# option << project.id +# type << option +# end +# end +# type +# end +# +# #判断指定用户是不是已经赞过该作业 +# def is_praise_homework user_id, obj_id +# PraiseTread.where("user_id = #{user_id} AND praise_tread_object_id = #{obj_id} AND praise_tread_object_type = 'HomeworkAttach'").empty? +# end +# +# #获取赞的总数 +# def praise_homework_count obj_id +# PraiseTread.where("praise_tread_object_id = #{obj_id} AND praise_tread_object_type = 'HomeworkAttach'").count +# end +# +# #获取用户对作业的评分 +# def get_homework_score user, homework +# temp = HomeworkAttach.find_by_sql("SELECT stars FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = #{homework.id} AND rater_id = #{user.id}").first +# @m_score = temp.nil? ? 0:temp.stars.to_i +# end +# +# #获取评分对应的评论 +# def get_homework_review homework,is_teacher,user +# homework.journals_for_messages.where("is_comprehensive_evaluation = #{is_teacher ? 1 : 2} and user_id = #{user.id}").order("created_on DESC").first +# end +# +# def convert_array array +# ary = "(" +# if array.nil? || array.count == 0 +# return "()" +# end +# array.length.times do |i| +# if i == array.length - 1 +# ary += array[i].id.to_s + ")" +# else +# if !(array[i].nil? || array[i].id.nil? || array[i].id.to_s == "") +# ary += array[i].id.to_s + "," +# end +# end +# end +# #array.each do |member| +# # if member == array.last +# # ary += member.id.to_s + ")" +# # else +# # ary += member.id.to_s + "," +# # end +# #end +# ary +# end +# +# def get_student_batch_homework_list bid,user +# student_batch_homework_list = HomeworkAttach.eager_load(:attachments,:user,:rate_averages).find_by_sql("SELECT homework_attaches.*, +# (SELECT stars FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND is_teacher_score = 1 AND stars IS NOT NULL ORDER BY updated_at DESC limit 0,1) AS t_score, +# (SELECT AVG(stars) FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND is_teacher_score = 0) AS s_score, +# (SELECT stars FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND rater_id = #{User.current.id} AND is_teacher_score = 0) AS m_score +# FROM homework_attaches +# INNER JOIN homework_evaluations ON homework_evaluations.homework_attach_id = homework_attaches.id +# WHERE homework_attaches.bid_id = #{bid.id} AND homework_evaluations.user_id = #{user.id} ORDER BY m_score DESC") +# student_batch_homework_list +# end +# +# ######################################################### +# #sw +# #获取学生未进行匿评的数量 +# #param: bid => 作业 user => 用户 +# #return 指定用户未进行匿评的作业的数量 +# #user必须是学生用户 +# ####################################################### +# def get_student_not_batch_homework_list bid,user +# HomeworkAttach.find_by_sql("SELECT * FROM(SELECT homework_attaches.*, +# (SELECT stars FROM seems_rateable_rates WHERE rateable_type = 'HomeworkAttach' AND rateable_id = homework_attaches.id AND rater_id = #{user.id} AND is_teacher_score = 0) AS m_score +# FROM homework_attaches +# INNER JOIN homework_evaluations ON homework_evaluations.homework_attach_id = homework_attaches.id +# WHERE homework_attaches.bid_id = #{bid.id} AND homework_evaluations.user_id = #{user.id}) AS table1 +# WHERE table1.m_score IS NULL").count +# end end \ No newline at end of file From 4b2f2680fd3d601658306d3cc582d886f121ce15 Mon Sep 17 00:00:00 2001 From: sw <939547590@qq.com> Date: Sat, 4 Jul 2015 15:26:32 +0800 Subject: [PATCH 014/444] =?UTF-8?q?1=E3=80=81=E4=B8=BA=E5=BC=80=E5=90=AF?= =?UTF-8?q?=E5=8C=BF=E8=AF=84=E4=BD=9C=E4=B8=9A=EF=BC=8C=E9=99=84=E4=BB=B6?= =?UTF-8?q?=E4=B8=8B=E8=BD=BD=E6=8F=90=E7=A4=BA=E6=A1=86=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E4=BD=8D=E7=BD=AE=E4=B8=8D=E6=AD=A3=E7=A1=AE=202=E3=80=81?= =?UTF-8?q?=E5=AF=BC=E5=87=BA=E5=88=97=E8=A1=A8=E6=88=90=E7=BB=A9=E6=98=AF?= =?UTF-8?q?=E6=9C=80=E7=BB=88=E8=AF=84=E5=88=86=E8=80=8C=E4=B8=8D=E6=98=AF?= =?UTF-8?q?=E6=9C=80=E7=BB=88=E6=88=90=E7=BB=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/student_work_controller.rb | 2 +- app/views/student_work/index.html.erb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/controllers/student_work_controller.rb b/app/controllers/student_work_controller.rb index 63d25acbd..cc858cc19 100644 --- a/app/controllers/student_work_controller.rb +++ b/app/controllers/student_work_controller.rb @@ -365,7 +365,7 @@ class StudentWorkController < ApplicationController sheet1[count_row,6] = homework.teacher_score.nil? ? l(:label_without_score) : format("%.2f",homework.teacher_score) sheet1[count_row,7] = homework.teaching_asistant_score.nil? ? l(:label_without_score) : format("%.2f",homework.teaching_asistant_score) sheet1[count_row,8] = homework.student_score.nil? ? l(:label_without_score) : format("%.2f",homework.student_score) - sheet1[count_row,9] = homework.final_score.nil? ? l(:label_without_score) : format("%.2f",homework.final_score) + sheet1[count_row,9] = homework.respond_to?("score") ? homework.score.nil? ? l(:label_without_score) : format("%.2f",homework.score) : l(:label_without_score) sheet1[count_row,10] = format_time(homework.created_at) count_row += 1 end diff --git a/app/views/student_work/index.html.erb b/app/views/student_work/index.html.erb index e65b067d6..76ae71459 100644 --- a/app/views/student_work/index.html.erb +++ b/app/views/student_work/index.html.erb @@ -60,7 +60,7 @@ <%= link_to "附件", zipdown_assort_path(obj_class: @homework.class, obj_id: @homework, format: :json), remote: true, class: "down_btn fr zip_download_alert", :id => "download_homework_attachments" %> <% end%> -
    +
    使用 winzip 工具进行解压可能会导致 From c5e298d24e2aea3643aede1f86c1d8ba3dbbef58 Mon Sep 17 00:00:00 2001 From: lizanle <491823689@qq.com> Date: Sat, 4 Jul 2015 15:53:01 +0800 Subject: [PATCH 015/444] =?UTF-8?q?=E5=81=9C=E6=AD=A2=E5=8C=BF=E8=AF=84=20?= =?UTF-8?q?api?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/apis/courses.rb | 13 +-- app/api/mobile/apis/homeworks.rb | 93 ++++++++++----- app/api/mobile/entities/course_dynamic.rb | 3 + app/api/mobile/entities/homework.rb | 8 +- app/services/courses_service.rb | 72 ++++++------ app/services/homework_service.rb | 132 +++++++++++++++------- 6 files changed, 201 insertions(+), 120 deletions(-) diff --git a/app/api/mobile/apis/courses.rb b/app/api/mobile/apis/courses.rb index 3d05ab3f3..509d31d86 100644 --- a/app/api/mobile/apis/courses.rb +++ b/app/api/mobile/apis/courses.rb @@ -337,18 +337,7 @@ module Mobile present :data,student_works.all,with:Mobile::Entities::StudentWork end - desc '开启匿评' - params do - requires :token,type:String - requires :course_id,type:Integer,desc:'课程id' - requires :homework_id,type:Integer,desc:'作业id' - end - get ':course_id/start_anonymous_comment' do - cs = CoursesService.new - status = cs.start_anonymous_comment params,current_user - present :data,status - present :status,0 - end + end end end diff --git a/app/api/mobile/apis/homeworks.rb b/app/api/mobile/apis/homeworks.rb index 5bf454e32..e9efcb1fa 100644 --- a/app/api/mobile/apis/homeworks.rb +++ b/app/api/mobile/apis/homeworks.rb @@ -31,33 +31,33 @@ module Mobile present :status, 0 end - desc "启动匿评" - params do - requires :token, type: String - end - post ':id/start_anonymous_comment' do - statue = Homeworks.get_service.start_anonymous_comment params,current_user.nil? ? User.find(2):current_user - messages = "" - case statue - when 1 - messages = "启动成功" - when 2 - messages = "启动失败,作业总数大于等于2份时才能启动匿评" - when 3 - messages = "已开启匿评,请务重复开启" - end - present :data,messages - present :status, statue - end - - desc "关闭匿评" - params do - requires :token, type: String - end - post ':id/stop_anonymous_comment' do - Homeworks.get_service.stop_anonymous_comment params,current_user.nil? ? User.find(2):current_user - present :status, 0 - end + # desc "启动匿评" + # params do + # requires :token, type: String + # end + # post ':id/start_anonymous_comment' do + # statue = Homeworks.get_service.start_anonymous_comment params,current_user.nil? ? User.find(2):current_user + # messages = "" + # case statue + # when 1 + # messages = "启动成功" + # when 2 + # messages = "启动失败,作业总数大于等于2份时才能启动匿评" + # when 3 + # messages = "已开启匿评,请务重复开启" + # end + # present :data,messages + # present :status, statue + # end + # + # desc "关闭匿评" + # params do + # requires :token, type: String + # end + # post ':id/stop_anonymous_comment' do + # Homeworks.get_service.stop_anonymous_comment params,current_user.nil? ? User.find(2):current_user + # present :status, 0 + # end desc "匿评作品详情" params do @@ -111,6 +111,45 @@ module Mobile present :status, 0 end + desc '开启匿评' + params do + requires :token,type:String + requires :course_id,type:Integer,desc:'课程id' + requires :homework_id,type:Integer,desc:'作业id' + end + post ':homework_id/start_anonymous_comment' do + hs = Homeworks.get_service + status = hs.start_anonymous_comment params,current_user + messages = "" + case status[:status] + when 1 + messages = "启动成功" + when 2 + messages = "启动失败,作业总数大于等于2份时才能启动匿评" + when 3 + messages = "已开启匿评,请务重复开启" + when 4 + messages = "没有开启匿评的权限" + when 5 + messages = "截止日期之前不可启动匿评" + end + present :data,messages + present :status,0 + end + + desc '关闭匿评' + params do + requires :token,type:String + requires :course_id,type:Integer,desc:'课程id' + requires :homework_id,type:Integer,desc:'作业id' + end + post ':homework_id/stop_anonymous_comment' do + hs = Homeworks.get_service + hs.stop_anonymous_comment params,current_user + message = "成功关闭" + present :data, message + present :status,0 + end end end diff --git a/app/api/mobile/entities/course_dynamic.rb b/app/api/mobile/entities/course_dynamic.rb index 46ab5b272..f9bc5a8ee 100644 --- a/app/api/mobile/entities/course_dynamic.rb +++ b/app/api/mobile/entities/course_dynamic.rb @@ -58,6 +58,9 @@ module Mobile course_dynamic_expose :document_count course_dynamic_expose :topic_count course_dynamic_expose :homework_count + + course_dynamic_expose :current_user_is_member + course_dynamic_expose :current_user_is_teacher #在dynamics里解析出四种动态 expose :documents,using:Mobile::Entities::Attachment do |f,opt| obj = nil diff --git a/app/api/mobile/entities/homework.rb b/app/api/mobile/entities/homework.rb index e78689bfb..03edd502f 100644 --- a/app/api/mobile/entities/homework.rb +++ b/app/api/mobile/entities/homework.rb @@ -24,11 +24,11 @@ module Mobile f.course.members.count - f.student_works.count when :homework_submit_num f.student_works.count - when :homework_status + when :homework_status_student get_homework_status f when :homework_times f.course.homework_commons.index(f) + 1 - when :homework_status_desc + when :homework_status_teacher homework_status_desc f end end @@ -82,8 +82,8 @@ module Mobile expose :submit_student_list ,using: Mobile::Entities::User do |f,opt| get_submit_sutdent_list f end - homework_expose :homework_status #作业的状态 - homework_expose :homework_status_desc #状态的解释 + homework_expose :homework_status_student #老师看到的作业的状态 + homework_expose :homework_status_teacher #老师看到的状态 end end diff --git a/app/services/courses_service.rb b/app/services/courses_service.rb index 7efe76b3a..545ab1dac 100644 --- a/app/services/courses_service.rb +++ b/app/services/courses_service.rb @@ -699,7 +699,7 @@ class CoursesService latest_course_dynamics.sort! { |order, newer| newer[:time] <=> order[:time] } latest_course_dynamic = latest_course_dynamics.first unless latest_course_dynamic.nil? - result << {:course_name => course.name, :course_id => course.id, :course_img_url => url_to_avatar(course), :course_time => course.time, :course_term => course.term,:message => dynamics_count, :dynamics => latest_course_dynamics, :count => dynamics_count} + result << {:course_name => course.name,:current_user_is_member => current_user.member_of_course?(course),:current_user_is_teacher => is_course_teacher(current_user,course), :course_id => course.id, :course_img_url => url_to_avatar(course), :course_time => course.time, :course_term => course.term,:message => dynamics_count, :dynamics => latest_course_dynamics, :count => dynamics_count} end end #返回数组集合 @@ -746,41 +746,41 @@ class CoursesService student_works end - # 开启匿评 - #statue 1:启动成功,2:启动失败,作业总数大于等于2份时才能启动匿评,3:已开启匿评,请务重复开启,4:没有开启匿评的权限 - def start_anonymous_comment params,current_user - homework = HomeworkCommon.find(params[:homework_id]) - return {:status=>4} unless current_user.admin? || current_user.allowed_to?(:as_teacher,Course.find(params[:course_id])) - return {:status=>5} if Time.parse(homework.end_time.to_s).strftime("%Y-%m-%d") >= Time.now.strftime("%Y-%m-%d") - homework_detail_manual = homework.homework_detail_manual - if homework_detail_manual.comment_status == 1 - student_works = homework.student_works - if student_works && student_works.size >=2 - student_works.each_with_index do |work, index| - user = work.user - n = homework_detail_manual.evaluation_num - n = n < student_works.size ? n : student_works.size - 1 - assigned_homeworks = get_assigned_homeworks(student_works, n, index) - assigned_homeworks.each do |h| - student_works_evaluation_distributions = StudentWorksEvaluationDistribution.new(user_id: user.id, student_work_id: h.id) - student_works_evaluation_distributions.save - end - end - homework_detail_manual.update_column('comment_status', 2) - statue = 1 - else - statue = 2 - end - else - statue = 3 - end - {:status => statue} - end - - def get_assigned_homeworks(student_works, n, index) - student_works += student_works - student_works[index + 1 .. index + n] - end + # # 开启匿评 + # #statue 1:启动成功,2:启动失败,作业总数大于等于2份时才能启动匿评,3:已开启匿评,请务重复开启,4:没有开启匿评的权限 + # def start_anonymous_comment params,current_user + # homework = HomeworkCommon.find(params[:homework_id]) + # return {:status=>4} unless current_user.admin? || current_user.allowed_to?(:as_teacher,Course.find(params[:course_id])) + # return {:status=>5} if Time.parse(homework.end_time.to_s).strftime("%Y-%m-%d") >= Time.now.strftime("%Y-%m-%d") + # homework_detail_manual = homework.homework_detail_manual + # if homework_detail_manual.comment_status == 1 + # student_works = homework.student_works + # if student_works && student_works.size >=2 + # student_works.each_with_index do |work, index| + # user = work.user + # n = homework_detail_manual.evaluation_num + # n = n < student_works.size ? n : student_works.size - 1 + # assigned_homeworks = get_assigned_homeworks(student_works, n, index) + # assigned_homeworks.each do |h| + # student_works_evaluation_distributions = StudentWorksEvaluationDistribution.new(user_id: user.id, student_work_id: h.id) + # student_works_evaluation_distributions.save + # end + # end + # homework_detail_manual.update_column('comment_status', 2) + # statue = 1 + # else + # statue = 2 + # end + # else + # statue = 3 + # end + # {:status => statue} + # end + # + # def get_assigned_homeworks(student_works, n, index) + # student_works += student_works + # student_works[index + 1 .. index + n] + # end end diff --git a/app/services/homework_service.rb b/app/services/homework_service.rb index 2a2c6613c..dd42795b1 100644 --- a/app/services/homework_service.rb +++ b/app/services/homework_service.rb @@ -57,47 +57,97 @@ class HomeworkService [@bid,@totle_size,@cur_size,@percent] end - #启动匿评 - #statue 1:启动成功,2:启动失败,作业总数大于等于2份时才能启动匿评,3:已开启匿评,请务重复开启 - def start_anonymous_comment params,current_user - @bid = Bid.find(params[:id]) - @course = @bid.courses.first - unless is_course_teacher(current_user,@course) || current_user.admin? - @statue = 4 - raise '403' - end - if(@bid.comment_status == 0) - homeworks = @bid.homeworks - if(homeworks && homeworks.size >= 2) - homeworks.each_with_index do |homework, index| - user = homework.user - n = @bid.evaluation_num - n = n < homeworks.size ? n : homeworks.size - 1 - assigned_homeworks = get_assigned_homeworks(homeworks, n, index) - assigned_homeworks.each do |h| - @homework_evaluation = HomeworkEvaluation.new(user_id: user.id, homework_attach_id: h.id) - @homework_evaluation.save - end - end - @bid.update_column('comment_status', 1) - @statue = 1 - else - @statue = 2 - end - else - @statue = 3 - end - @statue - end - #关闭匿评 - def stop_anonymous_comment params,current_user - @bid = Bid.find(params[:id]) - @course = @bid.courses.first - unless is_course_teacher(current_user,@course) || current_user.admin? - raise '403' - end - @bid.update_column('comment_status', 2) - end + # 启动匿评 操作 逻辑改变,暂不删除 + # #启动匿评 + # #statue 1:启动成功,2:启动失败,作业总数大于等于2份时才能启动匿评,3:已开启匿评,请务重复开启 + # def start_anonymous_comment params,current_user + # @bid = Bid.find(params[:id]) + # @course = @bid.courses.first + # unless is_course_teacher(current_user,@course) || current_user.admin? + # @statue = 4 + # raise '403' + # end + # if(@bid.comment_status == 0) + # homeworks = @bid.homeworks + # if(homeworks && homeworks.size >= 2) + # homeworks.each_with_index do |homework, index| + # user = homework.user + # n = @bid.evaluation_num + # n = n < homeworks.size ? n : homeworks.size - 1 + # assigned_homeworks = get_assigned_homeworks(homeworks, n, index) + # assigned_homeworks.each do |h| + # @homework_evaluation = HomeworkEvaluation.new(user_id: user.id, homework_attach_id: h.id) + # @homework_evaluation.save + # end + # end + # @bid.update_column('comment_status', 1) + # @statue = 1 + # else + # @statue = 2 + # end + # else + # @statue = 3 + # end + # @statue + # end + # #关闭匿评 + # def stop_anonymous_comment params,current_user + # @bid = Bid.find(params[:id]) + # @course = @bid.courses.first + # unless is_course_teacher(current_user,@course) || current_user.admin? + # raise '403' + # end + # @bid.update_column('comment_status', 2) + # end + + # 开启匿评 + #statue 1:启动成功,2:启动失败,作业总数大于等于2份时才能启动匿评,3:已开启匿评,请务重复开启,4:没有开启匿评的权限 + def start_anonymous_comment params,current_user + homework = HomeworkCommon.find(params[:homework_id]) + return {:status=> 4} unless current_user.admin? || current_user.allowed_to?(:as_teacher,Course.find(params[:course_id])) + return {:status=>5} if Time.parse(homework.end_time.to_s).strftime("%Y-%m-%d") >= Time.now.strftime("%Y-%m-%d") + homework_detail_manual = homework.homework_detail_manual + if homework_detail_manual.comment_status == 1 + student_works = homework.student_works + if student_works && student_works.size >=2 + student_works.each_with_index do |work, index| + user = work.user + n = homework_detail_manual.evaluation_num + n = n < student_works.size ? n : student_works.size - 1 + assigned_homeworks = get_assigned_homeworks(student_works, n, index) + assigned_homeworks.each do |h| + student_works_evaluation_distributions = StudentWorksEvaluationDistribution.new(user_id: user.id, student_work_id: h.id) + student_works_evaluation_distributions.save + end + end + homework_detail_manual.update_column('comment_status', 2) + statue = 1 + else + statue = 2 + end + else + statue = 3 + end + {:status => statue} + end + + def get_assigned_homeworks(student_works, n, index) + student_works += student_works + student_works[index + 1 .. index + n] + end + + def stop_anonymous_comment params,current_user + homework = HomeworkCommon.find(params[:homework_id]) + homework_detail_manual = homework.homework_detail_manual + homework_detail_manual.update_column('comment_status', 3) + + work_ids = "(" << homework.student_works.map(&:id).join(",") << ")" + homework.student_works.each do |student_work| + absence_penalty_count = student_work.user.student_works_evaluation_distributions.where("student_work_id IN #{work_ids}").count - student_work.user.student_works_scores.where("student_work_id IN #{work_ids}").count + student_work.absence_penalty = absence_penalty_count > 0 ? absence_penalty_count * homework_detail_manual.absence_penalty : 0 + student_work.save + end + end # 匿评作品详情 # attachs 该作品的所有附件 From 2137cef98475cf0e876ec9764bf253c5cd57ecb3 Mon Sep 17 00:00:00 2001 From: sw <939547590@qq.com> Date: Sat, 4 Jul 2015 15:54:03 +0800 Subject: [PATCH 016/444] =?UTF-8?q?=E5=8C=BF=E8=AF=84=E4=BD=9C=E5=93=81?= =?UTF-8?q?=E3=80=82=E8=80=81=E5=B8=88=E8=AF=84=E5=88=86=E4=B9=8B=E5=90=8E?= =?UTF-8?q?=EF=BC=8C=E9=A1=B5=E9=9D=A2=E6=98=BE=E7=A4=BA=E6=9C=89=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/student_work/add_score.js.erb | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/app/views/student_work/add_score.js.erb b/app/views/student_work/add_score.js.erb index 4474ab3b5..9298de8fc 100644 --- a/app/views/student_work/add_score.js.erb +++ b/app/views/student_work/add_score.js.erb @@ -2,40 +2,36 @@ $("#add_student_score_<%= @work.id%>").html("<%= escape_javascript(render :parti $('#score_<%= @work.id%>').peSlider({range: 'min'}); <% if @is_new%> - $("#score_list_<%= @work.id%>").prepend("
    <%= escape_javascript(render :partial => 'student_work_score', :locals => {:score => @score}) %>
    "); +$("#score_list_<%= @work.id%>").prepend("
    <%= escape_javascript(render :partial => 'student_work_score', :locals => {:score => @score}) %>
    "); <% else %> - $("#work_score_<%= @score.id%>").html("<%= escape_javascript(render :partial => 'student_work_score', :locals => {:score => @score}) %>"); +$("#work_score_<%= @score.id%>").html("<%= escape_javascript(render :partial => 'student_work_score', :locals => {:score => @score}) %>"); <% end%> $("#score_list_<%= @work.id%>").removeAttr("style"); <% if @is_teacher %> - $("#student_work_<%= @work.id%>").replaceWith("<%= escape_javascript(render :partial => 'student_work',:locals => {:student_work => @work}) %>"); +<% if @homework.homework_type == 1%> +$("#student_work_<%= @work.id%>").replaceWith("<%= escape_javascript(render :partial => 'evaluation_student_work',:locals => {:student_work => @work}) %>"); +<% else%> +$("#student_work_<%= @work.id%>").replaceWith("<%= escape_javascript(render :partial => 'student_work',:locals => {:student_work => @work}) %>"); +<% end%> <% else %> - $("#student_work_<%= @work.id%>").replaceWith("<%= escape_javascript(render :partial => 'evaluation_work',:locals => {:student_work => @work}) %>"); +$("#student_work_<%= @work.id%>").replaceWith("<%= escape_javascript(render :partial => 'evaluation_work',:locals => {:student_work => @work}) %>"); <% end%> $(function(){ //匿评评分提示 $(".student_score_info").bind("mouseover",function(e){ - //alert($(this).html()); $(this).find("div").show(); -// $(this).find("div").css("top",e.pageY); -// $(this).find("div").css("left",e.pageX); }); $(".student_score_info").bind("mouseout",function(e){ - //alert($(this).html()); $(this).find("div").hide(); }); //最终成绩提示 $(".student_final_scor_info").bind("mouseover",function(e){ - //alert($(this).html()); $(this).find("div").show(); -// $(this).find("div").css("top",e.pageY); -// $(this).find("div").css("left",e.pageX); }); $(".student_final_scor_info").bind("mouseout",function(e){ - //alert($(this).html()); $(this).find("div").hide(); }); }); From e734abe613c2962d453566ccefce1b94756835d3 Mon Sep 17 00:00:00 2001 From: sw <939547590@qq.com> Date: Mon, 6 Jul 2015 10:44:27 +0800 Subject: [PATCH 017/444] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BD=9C=E4=B8=9A?= =?UTF-8?q?=E9=80=BB=E8=BE=91=E6=A2=B3=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/homework_common_controller.rb | 30 +++++++------------ 1 file changed, 11 insertions(+), 19 deletions(-) diff --git a/app/controllers/homework_common_controller.rb b/app/controllers/homework_common_controller.rb index 6b92e8198..3c3a42b69 100644 --- a/app/controllers/homework_common_controller.rb +++ b/app/controllers/homework_common_controller.rb @@ -133,19 +133,8 @@ class HomeworkCommonController < ApplicationController end @homework.late_penalty = params[:late_penalty] end - @homework.course_id = @course.id + # @homework.course_id = @course.id - @homework_detail_programing = @homework.homework_detail_programing - if @homework.homework_type == 2 #编程作业 - @homework_detail_programing.language = "C++" - @homework_detail_programing.standard_code = params[:standard_code] - homework_tests = @homework.homework_tests - #需要删除的测试 - ids = homework_tests.map(&:id) - params[:input].keys.map(&:to_i) - ids.each do |id| - homework_test = HomeworkTest.find id - homework_test.destroy if homework_test - end #匿评作业相关属性 if @homework.homework_type == 1 @homework_detail_manual.ta_proportion = params[:ta_proportion] || 0.6 @@ -171,6 +160,16 @@ class HomeworkCommonController < ApplicationController @homework_detail_manual.absence_penalty = 0 end + if @homework.homework_type == 2 #编程作业 + @homework_detail_programing.language = "C++" + @homework_detail_programing.standard_code = params[:standard_code] + homework_tests = @homework.homework_tests + #需要删除的测试 + ids = homework_tests.map(&:id) - params[:input].keys.map(&:to_i) + ids.each do |id| + homework_test = HomeworkTest.find id + homework_test.destroy if homework_test + end if params[:input] && params[:output] params[:input].each do |k,v| if params[:output].include? k @@ -188,13 +187,6 @@ class HomeworkCommonController < ApplicationController end end end - else - #匿评作业相关属性 - @homework_detail_manual.ta_proportion = params[:ta_proportion] || 0.6 - @homework_detail_manual.evaluation_start = params[:evaluation_start] - @homework_detail_manual.evaluation_end = params[:evaluation_end] - @homework_detail_manual.evaluation_num = params[:evaluation_num] - @homework_detail_manual.absence_penalty = params[:absence_penalty] end @homework.save_attachments(params[:attachments]) From 1a1580953a076f4cb115b6a37c9e12c904173116 Mon Sep 17 00:00:00 2001 From: sw <939547590@qq.com> Date: Mon, 6 Jul 2015 11:12:29 +0800 Subject: [PATCH 018/444] =?UTF-8?q?=E5=88=86=E7=8F=AD=E5=90=8E=E5=AD=A6?= =?UTF-8?q?=E7=94=9F=E6=98=BE=E7=A4=BA=E4=B8=8D=E5=85=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/courses_controller.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/controllers/courses_controller.rb b/app/controllers/courses_controller.rb index 00d740ee7..9e06ea83c 100644 --- a/app/controllers/courses_controller.rb +++ b/app/controllers/courses_controller.rb @@ -298,7 +298,7 @@ class CoursesController < ApplicationController if params[:group_id] && params[:group_id] != "0" @group = CourseGroup.find(params[:group_id]) @results = student_homework_score(@group.id,0, 0,"desc") - @results = paginateHelper @results, 10 + # @results = paginateHelper @results, 10 else page_from = params[:page].nil? ? 0 : (params[:page].to_i - 1) @results = student_homework_score(0,page_from, 10,"desc") @@ -368,12 +368,12 @@ class CoursesController < ApplicationController page = params[:page].nil? ? 0 : (params['page'].to_i - 1) @results = searchmember_by_name(student_homework_score(0,0,0,@score_sort_by), @search_name) @result_count = @results.count - @results = paginateHelper @results, 10 + # @results = paginateHelper @results, 10 else @group = CourseGroup.find(group_id) @results = searchmember_by_name(student_homework_score(group_id, 0, 0,@score_sort_by),@search_name) @result_count = @results.count - @results = paginateHelper @results, 10 + # @results = paginateHelper @results, 10 end else if group_id == '0' From 04f125c7a6e55b9ec46d5d453b38d3eb3ef14cb7 Mon Sep 17 00:00:00 2001 From: zhangshenjerry <1375181337@qq.com> Date: Mon, 6 Jul 2015 11:42:26 +0800 Subject: [PATCH 019/444] =?UTF-8?q?=E5=BC=A0=E7=94=B3=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/layouts/base_newcontest.html.erb | 5 +++-- app/views/users/show.html.erb | 2 +- app/views/users/user_activities.html.erb | 2 +- .../redpenny-master/stylesheets/application.css | 17 +++++++++++++++++ 4 files changed, 22 insertions(+), 4 deletions(-) diff --git a/app/views/layouts/base_newcontest.html.erb b/app/views/layouts/base_newcontest.html.erb index 26015d536..cef5c0955 100644 --- a/app/views/layouts/base_newcontest.html.erb +++ b/app/views/layouts/base_newcontest.html.erb @@ -66,7 +66,8 @@ <%= text_field_tag 'name', params[:name], :size => 20, :onkeyup => 'regexName1();', :width => "125px", :style=>"float:left" %> <%= hidden_field_tag 'project_type', params[:project_type] %> <%#= submit_tag l(:label_search), :class => "enterprise", :name => nil %> - + + <%= l(:label_search)%>
    @@ -80,7 +81,7 @@ <%=link_to l(:field_homepage), home_path %> > <%=l(:label_contests_management_platform)%> - + > <%= link_to h(truncate(@contest.name, length: 20, omission: '...')), contest_contestnotifications_path(@contest) %> diff --git a/app/views/users/show.html.erb b/app/views/users/show.html.erb index fadffc9f6..496211e82 100644 --- a/app/views/users/show.html.erb +++ b/app/views/users/show.html.erb @@ -387,7 +387,7 @@ <%= l(:label_i_new_activity) %>   - <%= link_to format_activity_title("#{l(:label_news)}: #{act.title}"), {:controller => 'news', :action => 'show', :id => act.id} %> + <%= link_to format_activity_title(" #{act.title}"), {:controller => 'news', :action => 'show', :id => act.id} %> <% else %> diff --git a/app/views/users/user_activities.html.erb b/app/views/users/user_activities.html.erb index 9165e6f2e..32915245f 100644 --- a/app/views/users/user_activities.html.erb +++ b/app/views/users/user_activities.html.erb @@ -28,7 +28,7 @@ - +
    <%= content_tag('span', h(e.project), :class => 'project') %> <%= l(:label_new_activity) %> + <%= content_tag('span', h(e.project), :class => 'project') %> <% if e.event_type.eql?("message") || e.event_type.eql?("reply") %> <%= link_to format_activity_title(e.event_title), e.board.project ? project_boards_path(e.board.project,:topic_id => e.id):course_boards_path(e.board.course,:topic_id => e.id) %> <%else %> diff --git a/public/themes/redpenny-master/stylesheets/application.css b/public/themes/redpenny-master/stylesheets/application.css index 02626f440..4a23e59c5 100644 --- a/public/themes/redpenny-master/stylesheets/application.css +++ b/public/themes/redpenny-master/stylesheets/application.css @@ -1698,6 +1698,23 @@ div.project-search { } /*huang*/ +/*zhangshen*/ +a.enterprise { + float:left; + text-align: center; + width: 40px; + height: 18px; + font-family: '微软雅黑',Arial,Helvetica,sans-serif; + font-size: 12px; + color:#fff; + padding: 0px; + border-radius:4px; + border: 1px solid rgb(148, 148, 148); + box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.2), 0px 0px 2px rgb(255, 255, 255) inset; + text-shadow: 0px -1px 0px rgba(0, 0, 0, 0.1), 0px 0px 0px rgb(255, 255, 255); + cursor: pointer; +} + input.enterprise[type="button"] { padding-bottom: 5px; width: 55px; From 0c70169dfcefa53c355017db8c972e329bda5f16 Mon Sep 17 00:00:00 2001 From: zhangshenjerry <1375181337@qq.com> Date: Mon, 6 Jul 2015 13:10:35 +0800 Subject: [PATCH 020/444] =?UTF-8?q?=E5=88=9B=E6=96=B0=E7=AB=9E=E8=B5=9B--?= =?UTF-8?q?=E7=BC=96=E8=BE=91=E7=AB=9E=E8=B5=9B=E9=80=9A=E7=9F=A5=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E5=AF=BC=E8=88=AA=E5=A4=84=E4=B8=8D=E8=A6=81=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E2=80=9C=E6=B7=BB=E5=8A=A0=E9=80=9A=E7=9F=A5=E2=80=9D?= =?UTF-8?q?=20=E5=88=9B=E6=96=B0=E7=AB=9E=E8=B5=9B--=E7=AB=9E=E8=B5=9B?= =?UTF-8?q?=E9=80=9A=E7=9F=A5=EF=BC=9A=E6=B7=BB=E5=8A=A0=E7=AB=9E=E8=B5=9B?= =?UTF-8?q?=E9=80=9A=E7=9F=A5=E7=BD=AE=E6=9D=A1=E4=BB=B6=E4=B8=BA=E7=A9=BA?= =?UTF-8?q?=EF=BC=8C=E6=8F=90=E7=A4=BA=E4=BF=A1=E6=81=AF=E2=80=9C=E7=AB=9E?= =?UTF-8?q?=E8=B5=9B=E6=A0=87=E9=A2=98/=E6=8F=8F=E8=BF=B0=E4=B8=8D?= =?UTF-8?q?=E8=83=BD=E4=B8=BA=E7=A9=BA=E2=80=9D=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/contestnotifications/_form.html.erb | 3 --- config/locales/zh.yml | 4 ++-- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/app/views/contestnotifications/_form.html.erb b/app/views/contestnotifications/_form.html.erb index dc651501b..680ab93d1 100644 --- a/app/views/contestnotifications/_form.html.erb +++ b/app/views/contestnotifications/_form.html.erb @@ -50,9 +50,6 @@ } } -
    - <%= l(:bale_news_notice) %> -

    <%= f.text_field :title, diff --git a/config/locales/zh.yml b/config/locales/zh.yml index ffa60f1f3..1b21a3672 100644 --- a/config/locales/zh.yml +++ b/config/locales/zh.yml @@ -1903,9 +1903,9 @@ zh: lable_teacher_evaluation: 作业综评 lable_course_teacher: 主讲老师 lable_course_end: 课程学期已结束 - label_no_contest_news_description: 竞赛描述不能为空 + label_no_contest_news_description: 竞赛通知描述不能为空 label_contest_news_condition: 竞赛描述超过5000个汉字 - label_no_contest_news_title: 竞赛标题不能为空 + label_no_contest_news_title: 竞赛通知标题不能为空 label_contest_news_title_condition: 竞赛标题超过255个汉字 label_course_organizers: 开设单位 From 23f6941001a6a2f1b9839a312d777d0571d8dcb1 Mon Sep 17 00:00:00 2001 From: sw <939547590@qq.com> Date: Mon, 6 Jul 2015 16:28:33 +0800 Subject: [PATCH 021/444] =?UTF-8?q?1=E3=80=81=E7=BC=96=E7=A8=8B=E4=BD=9C?= =?UTF-8?q?=E4=B8=9A=E8=BF=9F=E4=BA=A4=E6=89=A3=E5=88=86=E7=9A=84=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=202=E3=80=81=E4=BF=AE=E6=94=B9=E7=BC=96=E7=A8=8B?= =?UTF-8?q?=E4=BD=9C=E4=B8=9A=E6=97=B6=E7=9A=84=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/homework_common_controller.rb | 9 +++++---- .../_homework_detail_programing_form.html.erb | 5 +++-- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/app/controllers/homework_common_controller.rb b/app/controllers/homework_common_controller.rb index 3c3a42b69..7a3b2b6c2 100644 --- a/app/controllers/homework_common_controller.rb +++ b/app/controllers/homework_common_controller.rb @@ -136,7 +136,7 @@ class HomeworkCommonController < ApplicationController # @homework.course_id = @course.id #匿评作业相关属性 - if @homework.homework_type == 1 + if @homework.homework_type == 1 && @homework_detail_manual @homework_detail_manual.ta_proportion = params[:ta_proportion] || 0.6 @homework_detail_manual.evaluation_start = params[:evaluation_start] @homework_detail_manual.evaluation_end = params[:evaluation_end] @@ -152,15 +152,15 @@ class HomeworkCommonController < ApplicationController end @homework_detail_manual.absence_penalty = params[:absence_penalty] end - else #不是匿评作业,缺评扣分为0分,每个作品的缺评扣分改为0分,防止某些作业在结束匿评之后改为普通作业 + elsif @homework.homework_type == 0 #普通作业,缺评扣分为0分,每个作品的缺评扣分改为0分,防止某些作业在结束匿评之后改为普通作业 @homework.student_works.where("absence_penalty != 0").each do |student_work| student_work.late_penalty = 0 student_work.save end - @homework_detail_manual.absence_penalty = 0 + @homework_detail_manual.absence_penalty = 0 if @homework_detail_manual end - if @homework.homework_type == 2 #编程作业 + if @homework.homework_type == 2 && @homework_detail_programing #编程作业 @homework_detail_programing.language = "C++" @homework_detail_programing.standard_code = params[:standard_code] homework_tests = @homework.homework_tests @@ -293,6 +293,7 @@ class HomeworkCommonController < ApplicationController def find_homework @homework = HomeworkCommon.find params[:id] @homework_detail_manual = @homework.homework_detail_manual + @homework_detail_programing = @homework.homework_detail_programing @course = @homework.course rescue render_404 diff --git a/app/views/homework_common/_homework_detail_programing_form.html.erb b/app/views/homework_common/_homework_detail_programing_form.html.erb index 6808f8cfe..399e8355e 100644 --- a/app/views/homework_common/_homework_detail_programing_form.html.erb +++ b/app/views/homework_common/_homework_detail_programing_form.html.erb @@ -40,15 +40,16 @@ <%= calendar_for('homework_publish_time')%>

    -
    -
  • +
  • <%= select_tag :late_penalty,options_for_select(late_penalty_option,homework.late_penalty), {:class => "fl mb10 h26 w70"} %>  分
  • + +

    编程评测设置

    From 898ef291162c7dad53338ce83d18a012b1bd9f2b Mon Sep 17 00:00:00 2001 From: huang Date: Mon, 6 Jul 2015 16:38:16 +0800 Subject: [PATCH 022/444] =?UTF-8?q?=E7=94=A8=E6=88=B7=E5=BE=97=E5=88=86?= =?UTF-8?q?=EF=BC=9A=E9=A1=B9=E7=9B=AE=E5=BE=97=E5=88=86=E4=B8=AD=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E5=8F=91=E5=B8=96=E5=BE=97=E5=88=86=EF=BC=88=E5=B8=96?= =?UTF-8?q?=E5=AD=90=E5=9B=9E=E5=A4=8D=E5=9C=A8=E5=8D=8F=E5=90=8C=E5=BE=97?= =?UTF-8?q?=E5=88=86=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/helpers/user_score_helper.rb | 4 ++-- app/views/users/_influence_new_score_index.html.erb | 3 ++- app/views/users/_topic_new_score_index.html.erb | 4 +--- config/locales/users/zh.yml | 3 ++- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/app/helpers/user_score_helper.rb b/app/helpers/user_score_helper.rb index c94763e31..41f76a792 100644 --- a/app/helpers/user_score_helper.rb +++ b/app/helpers/user_score_helper.rb @@ -433,7 +433,7 @@ module UserScoreHelper #协同得分 def collaboration(option_number) - option_number.memo * 2 + option_number.messages_for_issues + option_number.issues_status + option_number.replay_for_message + option_number.replay_for_memo + option_number.messages_for_issues + option_number.issues_status + option_number.replay_for_message + option_number.replay_for_memo end #影响力得分 def influence(option_number) @@ -445,7 +445,7 @@ module UserScoreHelper end #项目贡献得分 def active(option_number) - option_number.changeset * 4 + option_number.document * 4 + option_number.attachment * 4 + option_number.issue_done_ratio * 2 + option_number.post_issue * 4 + option_number.changeset * 4 + option_number.document * 4 + option_number.attachment * 4 + option_number.issue_done_ratio * 2 + option_number.post_issue * 4 + option_number.memo * 2 end #更新发帖数 diff --git a/app/views/users/_influence_new_score_index.html.erb b/app/views/users/_influence_new_score_index.html.erb index c0a89536a..505785351 100644 --- a/app/views/users/_influence_new_score_index.html.erb +++ b/app/views/users/_influence_new_score_index.html.erb @@ -4,4 +4,5 @@
        <%= l('userscore.active.commit.attachments')%> * 4 = <%= option_num.attachment %> * 4 = <%= option_num.attachment * 4 %>
        <%= l('userscore.active.update_issues')%> * 2 = <%= option_num.issue_done_ratio %> * 2 = <%= option_num.issue_done_ratio * 2 %>
        <%= l('userscore.active.release_issues')%> * 4 = <%= option_num.post_issue %> * 4 = <%= option_num.post_issue * 4 %>
    -
        <%= l(:label_user_score_of_active)%> = <%= option_num.changeset * 4 %> + <%= option_num.document * 4 %> + <%= option_num.attachment * 4 %> + <%= option_num.issue_done_ratio * 2 %> + <%= option_num.post_issue * 4 %> = <%= active(option_num) %>
    \ No newline at end of file +
        <%= l('userscore.active.release_messages')%> * 1 = <%= option_num.memo %> * 2 = <%= option_num.memo * 2 %>
    +
        <%= l(:label_user_score_of_active)%> = <%= option_num.changeset * 4 %> + <%= option_num.document * 4 %> + <%= option_num.attachment * 4 %> + <%= option_num.issue_done_ratio * 2 %> + <%= option_num.post_issue * 4 %> + <%= option_num.memo * 2 %> = <%= active(option_num) %>
    \ No newline at end of file diff --git a/app/views/users/_topic_new_score_index.html.erb b/app/views/users/_topic_new_score_index.html.erb index af2ff0da3..86dc1f80f 100644 --- a/app/views/users/_topic_new_score_index.html.erb +++ b/app/views/users/_topic_new_score_index.html.erb @@ -1,7 +1,5 @@ - -
        <%= l('userscore.collaboration.memos')%> * 2 = <%= option_num.memo %> * 2 = <%= option_num.memo * 2 %>
        <%= l('userscore.collaboration.message_for_issues')%> * 1 = <%= option_num.messages_for_issues %> * 1 = <%= option_num.messages_for_issues * 1 %>
        <%= l('userscore.collaboration.issue_status')%> * 1 = <%= option_num.issues_status %> * 1= <%= option_num.issues_status * 1 %>
        <%= l('userscore.collaboration.reply_for_messages')%> * 1 = <%= option_num.replay_for_message %> * 1 = <%= option_num.replay_for_message * 1 %>
        <%= l('userscore.collaboration.reply_for_memos')%> * 1 = <%= option_num.replay_for_memo %> * 1 = <%= option_num.replay_for_memo * 1 %>
    -
        <%= l(:label_user_score_of_collaboration)%> = <%= option_num.memo * 2 %> + <%= option_num.messages_for_issues * 1 %> + <%= option_num.issues_status * 1 %> + <%= option_num.replay_for_message * 1 %> + <%= option_num.replay_for_memo * 1 %> = <%= collaboration(option_num) %>  
    +
        <%= l(:label_user_score_of_collaboration)%> = <%= option_num.messages_for_issues * 1 %> + <%= option_num.issues_status * 1 %> + <%= option_num.replay_for_message * 1 %> + <%= option_num.replay_for_memo * 1 %> = <%= collaboration(option_num) %>  
    diff --git a/config/locales/users/zh.yml b/config/locales/users/zh.yml index 4c792ef82..d90d8c537 100644 --- a/config/locales/users/zh.yml +++ b/config/locales/users/zh.yml @@ -67,7 +67,8 @@ zh: documents: 提交文档次数 attachments: 提交附件次数 update_issues: 更新缺陷完成度次数 - release_issues: 发布缺陷数量 + release_issues: 发布缺陷数量 + release_messages: 发布帖子数量 label_score_less_than_zero: 得分小于0,修正为0 label_user_info: "个人简介" From 7ebdf4a08d6773dbb0a2ea5c58fdd94507d91126 Mon Sep 17 00:00:00 2001 From: huang Date: Tue, 7 Jul 2015 11:29:40 +0800 Subject: [PATCH 023/444] =?UTF-8?q?issue=E5=88=97=E8=A1=A8=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E4=BC=98=E5=85=88=E7=BA=A7=20=E4=BF=AE=E6=94=B9issue?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E7=95=8C=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/helpers/issues_helper.rb | 30 +++++++++++++++++++++--------- app/models/option_number.rb | 3 ++- app/views/issues/_list.html.erb | 4 ++-- public/images/public_icon.png | Bin 11734 -> 9628 bytes public/stylesheets/project.css | 6 ++++++ 5 files changed, 31 insertions(+), 12 deletions(-) diff --git a/app/helpers/issues_helper.rb b/app/helpers/issues_helper.rb index aae150728..4f0821449 100644 --- a/app/helpers/issues_helper.rb +++ b/app/helpers/issues_helper.rb @@ -68,24 +68,36 @@ module IssuesHelper end #获取跟踪类型及样式 - #REDO:时间紧可以优化. def get_issue_type(value) issuetype = [] if value == "缺陷" || value == 1 - issuetype << "red_btn_cir ml10" - issuetype << "缺陷" + issuetype << "issues fl" elsif value == "功能" || value == 2 - issuetype << "blue_btn_cir ml10" - issuetype << "功能" + issuetype << "duty fl" elsif value == "支持" || value == 3 - issuetype << "green_btn_cir ml10" - issuetype << "支持" + issuetype << "support fl" elsif value == "任务" || value == 4 + issuetype << "function fl" + else + issuetype << "weekly fl" + end + end + + # 获取优先级样式 + def get_issue_priority(value) + issuetype = [] + if value == "紧急" || value == 1 + issuetype << "red_btn_cir ml10" + issuetype << "紧急" + elsif value == "正常" || value == 3 + issuetype << "green_btn_cir ml10" + issuetype << "正常" + elsif value == "高" || value == 4 issuetype << "orange_btn_cir ml10" - issuetype << "任务" + issuetype << "高" else issuetype << "bgreen_btn_cir ml10" - issuetype << "周报" + issuetype << "低" end end diff --git a/app/models/option_number.rb b/app/models/option_number.rb index 0ddea1bff..b4a3caac4 100644 --- a/app/models/option_number.rb +++ b/app/models/option_number.rb @@ -1,5 +1,6 @@ class OptionNumber < ActiveRecord::Base - attr_accessible :attachment, :changeset, :document, :follow, :issue_done_ratio, :issues_status, :memo, :messages_for_issues, :post_issue, :praise_by_one, :praise_by_three, :praise_by_two, :replay_for_memo, :replay_for_message, :score_type, :total_score, :tread, :tread_by_one, :tread_by_three, :tread_by_two, :user_id + attr_accessible :attachment, :changeset, :document, :follow, :issue_done_ratio, :issues_status, :memo, :messages_for_issues, :post_issue, + :praise_by_one, :praise_by_three, :praise_by_two, :replay_for_memo, :replay_for_message, :score_type, :total_score, :tread, :tread_by_one, :tread_by_three, :tread_by_two, :user_id def self.get_user_option_number user_id result = nil diff --git a/app/views/issues/_list.html.erb b/app/views/issues/_list.html.erb index 0fcb37021..4549b32e0 100644 --- a/app/views/issues/_list.html.erb +++ b/app/views/issues/_list.html.erb @@ -7,12 +7,12 @@
    <% column_content = ( query.inline_columns.map {|column| "#{column_content_new(column, issue)}"}) %> <% unless issue.author.nil? || issue.author.name == "Anonymous" %> - +
    <%= link_to issue.author.name, user_path(issue.author), :class => "problem_name c_orange fl" %> <%= l(:label_post_on_issue) %>(<%= "#{raw column_content[2]}" %>):
    - <%=link_to "#{column_content[4]}#{get_issue_type(column_content[1])[1]}".html_safe, issue_path(issue.id), :class => "problem_tit_a break_word",:target => "_blank" %> + <%=link_to "#{column_content[4]}#{get_issue_priority(column_content[3])[1]}".html_safe, issue_path(issue.id), :class => "problem_tit_a break_word",:target => "_blank" %>

    diff --git a/public/images/public_icon.png b/public/images/public_icon.png index 1fa463e4e88ec9cb684ae8a91859c077e0cbff28..b915af0867de83057661e23f518705012e74e230 100644 GIT binary patch delta 6604 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 bp$MG5^R}=0y9fBuhC*N4P^(JAF8Y4}a^SWp delta 8707 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 diff --git a/public/stylesheets/project.css b/public/stylesheets/project.css index 5574dc82a..28399462d 100644 --- a/public/stylesheets/project.css +++ b/public/stylesheets/project.css @@ -95,6 +95,12 @@ a.pro_mes_w_news{ height:20px; float:right;display:block; color:#999999;} .pro_info_box ul li{ height:24px;} .pro_info_p{color:#0781b4 !important; float:left; width:80px; overflow:hidden; white-space: nowrap; text-overflow:ellipsis; } .edit_pro_box{overflow:hidden;display:none; margin-bottom:30px; border-bottom:1px dashed #CCC; padding-bottom:10px;} +/*问题状态图片*/ +.issues{ background:url(../images/public_icon.png) -66px 5px no-repeat; width:16px; height:21px;} +.duty{ background:url(../images/public_icon.png) -66px -18px no-repeat; width:16px; height:21px;} +.support{ background:url(../images/public_icon.png) -66px -45px no-repeat; width:16px; height:21px;} +.function{ background:url(../images/public_icon.png) -66px -70px no-repeat; width:16px; height:21px;} +.weekly{ background:url(../images/public_icon.png) -66px -95px no-repeat; width:16px; height:21px;} /****翻页***/ ul.wlist{ float:right; border-bottom:none; height:30px; margin-top:20px; } ul.wlist li{float: left;} From dae15840b8b5f79f86581782130ff3cd9963af24 Mon Sep 17 00:00:00 2001 From: huang Date: Tue, 7 Jul 2015 14:45:46 +0800 Subject: [PATCH 024/444] =?UTF-8?q?=E6=96=B0=E6=B3=A8=E5=86=8C=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E9=82=AE=E4=BB=B6=E9=BB=98=E8=AE=A4=E7=BC=BA=E7=9C=81?= =?UTF-8?q?=E5=80=BC=E6=8C=89=E5=A4=A9=E5=8F=91=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/user.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/user.rb b/app/models/user.rb index b4723cceb..005c394a8 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -66,9 +66,9 @@ class User < Principal #每日一报、一事一报、不报 MAIL_NOTIFICATION_OPTIONS = [ - ['all', :label_user_mail_option_all], #['week', :label_user_mail_option_week], ['day', :label_user_mail_option_day], + ['all', :label_user_mail_option_all], ['none', :label_user_mail_option_none] ] From ec051ef929f16e694b13ffbce7e8c2057e7fee44 Mon Sep 17 00:00:00 2001 From: sw <939547590@qq.com> Date: Tue, 7 Jul 2015 15:47:48 +0800 Subject: [PATCH 025/444] =?UTF-8?q?=E7=BC=96=E7=A8=8B=E4=BD=9C=E4=B8=9A?= =?UTF-8?q?=E8=80=81=E5=B8=88=E3=80=81=E5=AD=A6=E7=94=9F=E7=95=8C=E9=9D=A2?= =?UTF-8?q?=E7=9A=84=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/helpers/application_helper.rb | 4 +++- app/views/homework_common/index.html.erb | 2 -- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index a31bd6189..c4762e8cc 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -2292,6 +2292,8 @@ module ApplicationHelper else link = "启动匿评".html_safe end + elsif homework.homework_type == 2 && homework.homework_detail_programing #编程作业作业 + link = "编程作业".html_safe else link = "启动匿评".html_safe end @@ -2324,7 +2326,7 @@ module ApplicationHelper elsif homework.homework_type == 0 "未启用匿评".html_safe elsif homework.homework_type == 2 - "编程作业".html_safe + " 编程作业  ".html_safe end end diff --git a/app/views/homework_common/index.html.erb b/app/views/homework_common/index.html.erb index 870edbfe4..d9a93fe8f 100644 --- a/app/views/homework_common/index.html.erb +++ b/app/views/homework_common/index.html.erb @@ -68,8 +68,6 @@ ,缺评一个作品扣 <%= homework.homework_detail_manual.absence_penalty%> 分 - <% else%> - 。 <% end%>

    From c246405e96e78af867a0861c3db58b3128199452 Mon Sep 17 00:00:00 2001 From: huang Date: Tue, 7 Jul 2015 16:25:59 +0800 Subject: [PATCH 026/444] =?UTF-8?q?issue=E6=98=BE=E7=A4=BA=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E6=B7=BB=E5=8A=A0=E4=BC=98=E5=85=88=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/helpers/issues_helper.rb | 8 ++++---- app/views/issues/show.html.erb | 5 +++-- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/app/helpers/issues_helper.rb b/app/helpers/issues_helper.rb index 4f0821449..6299603fa 100644 --- a/app/helpers/issues_helper.rb +++ b/app/helpers/issues_helper.rb @@ -83,16 +83,16 @@ module IssuesHelper end end - # 获取优先级样式 + # 获取优先级样式 value值1 2 低 def get_issue_priority(value) issuetype = [] - if value == "紧急" || value == 1 + if value == "紧急" || value == 4 issuetype << "red_btn_cir ml10" issuetype << "紧急" - elsif value == "正常" || value == 3 + elsif value == "正常" || value == 2 issuetype << "green_btn_cir ml10" issuetype << "正常" - elsif value == "高" || value == 4 + elsif value == "高" || value == 3 issuetype << "orange_btn_cir ml10" issuetype << "高" else diff --git a/app/views/issues/show.html.erb b/app/views/issues/show.html.erb index c008e78f2..23d295d81 100644 --- a/app/views/issues/show.html.erb +++ b/app/views/issues/show.html.erb @@ -14,8 +14,9 @@

    - <%= @issue.subject %> - <%= get_issue_type(@issue.tracker_id)[1] %> + <%= get_issue_type(@issue.tracker_id)[1] %> + <%= @issue.subject %> + <%= get_issue_priority(@issue.priority_id)[1] %>


    From 6d85dd7ca432312c7618198902c98b7ee5f899cb Mon Sep 17 00:00:00 2001 From: lizanle <491823689@qq.com> Date: Tue, 7 Jul 2015 17:18:29 +0800 Subject: [PATCH 027/444] =?UTF-8?q?app=E7=9A=84=E8=AF=BE=E7=A8=8B=E5=8A=A8?= =?UTF-8?q?=E6=80=81=E7=95=8C=E9=9D=A2api=E4=BF=AE=E6=94=B9=20=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E6=B4=BB=E8=B7=83=E5=AD=A6=E7=94=9F=E6=9F=A5=E7=9C=8B?= =?UTF-8?q?=EF=BC=8C=20=E8=8E=B7=E5=8F=96=E4=BD=9C=E4=B8=9A=E7=9A=84?= =?UTF-8?q?=E5=8C=BF=E8=AF=84=E7=8E=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/entities/course_dynamic.rb | 15 +++++++-- app/api/mobile/entities/homework.rb | 17 +++++++--- app/api/mobile/entities/user.rb | 2 ++ app/helpers/api_helper.rb | 32 ++++++++++++++++++- app/services/courses_service.rb | 38 ++++++++++++++--------- db/schema.rb | 10 ++++++ 6 files changed, 93 insertions(+), 21 deletions(-) diff --git a/app/api/mobile/entities/course_dynamic.rb b/app/api/mobile/entities/course_dynamic.rb index f9bc5a8ee..fe31668ff 100644 --- a/app/api/mobile/entities/course_dynamic.rb +++ b/app/api/mobile/entities/course_dynamic.rb @@ -58,10 +58,11 @@ module Mobile course_dynamic_expose :document_count course_dynamic_expose :topic_count course_dynamic_expose :homework_count - + course_dynamic_expose :course_student_num + course_dynamic_expose :time_from_now course_dynamic_expose :current_user_is_member course_dynamic_expose :current_user_is_teacher - #在dynamics里解析出四种动态 + expose :documents,using:Mobile::Entities::Attachment do |f,opt| obj = nil f[:dynamics].each do |d| @@ -110,6 +111,16 @@ module Mobile obj end + expose :active_students,using:Mobile::Entities::User do |f,opt| + obj = nil + f[:dynamics].each do |d| + if d[:type] == 7 + obj = d[:active_students] + end + end + obj + end + end end end \ No newline at end of file diff --git a/app/api/mobile/entities/homework.rb b/app/api/mobile/entities/homework.rb index 03edd502f..db3e44119 100644 --- a/app/api/mobile/entities/homework.rb +++ b/app/api/mobile/entities/homework.rb @@ -30,6 +30,13 @@ module Mobile f.course.homework_commons.index(f) + 1 when :homework_status_teacher homework_status_desc f + when :student_evaluation_part + get_evaluation_part f ,3 + when :ta_evaluation_part + get_evaluation_part f , 2 + when :homework_anony_type + val = f.homework_type == 1 && !f.homework_detail_manual.nil? + val end end end @@ -79,12 +86,14 @@ module Mobile homework_expose :homework_submit_num homework_expose :homework_notsubmit_num - expose :submit_student_list ,using: Mobile::Entities::User do |f,opt| - get_submit_sutdent_list f - end - homework_expose :homework_status_student #老师看到的作业的状态 + homework_expose :homework_status_student #学生看到的作业的状态 homework_expose :homework_status_teacher #老师看到的状态 + homework_expose :student_evaluation_part #学生匿评比率 + homework_expose :ta_evaluation_part #教辅评价比率 + + homework_expose :homework_anony_type #是否是匿评作业 + end end end \ No newline at end of file diff --git a/app/api/mobile/entities/user.rb b/app/api/mobile/entities/user.rb index 2b3483625..16048c61a 100644 --- a/app/api/mobile/entities/user.rb +++ b/app/api/mobile/entities/user.rb @@ -53,6 +53,8 @@ module Mobile user_expose :score #学号 user_expose :student_num + # 活跃值 + user_expose :active_count end end diff --git a/app/helpers/api_helper.rb b/app/helpers/api_helper.rb index d3dc441ae..ac0357f53 100644 --- a/app/helpers/api_helper.rb +++ b/app/helpers/api_helper.rb @@ -129,9 +129,39 @@ module ApiHelper def show_homework_deadline homework day = 0 if (day = (Date.parse(homework.end_time.to_s) - Date.parse(Time.now.to_s)).to_i) > 0 - "距作业截止还有" << (Date.parse(Time.now.to_s) - Date.parse(homework.end_time.to_s)).to_i.to_s << "天" + "距作业截止还有" << day.to_s << "天" else "已截止,但可补交" end end + + #获取作业中学生的匿评比率 + # 匿评比率 = 学生总共评价的作业的作业份数 / 作业份数 * 分配数 * 100% + # 教辅匿评比率 = 教辅已经评价的作业份数 / 总的作业份数 * 100% + def get_evaluation_part homework,role + homework_eva_completed_task_num = 0 + homework_eva_task_num = 0 + #匿评作业 # 且匿评状态不是还没有开启匿评 + if homework.homework_type == 1 && homework.homework_detail_manual && homework.homework_detail_manual.comment_status != 1 + # 总共需要评价的任务数 + homework_eva_task_num = homework.homework_detail_manual.evaluation_num * homework.student_works.count + unless homework_eva_task_num == 0 #总任务数不为0 的情况下 + #获取已经评价了多少的份作业 student_work_score里记录了评价情况,每条记录有提交作业的id + #先求出提交作业的id集合 + work_ids = "(" + homework.student_works.map(&:id).join(",") + ")" + #只要 student_work_score 中的 student_work_id在work_ids集合中,那么久说明这个任务被完成了 + + sql = "select count(1) from student_works_scores where reviewer_role = #{role} and student_work_id in #{work_ids} " + homework_eva_completed_task_num = ActiveRecord::Base.connection().select_value(sql) + end + end + if homework_eva_task_num == 0 + 0 + else + ( homework_eva_completed_task_num / homework_eva_task_num.to_f * 100 ) .round(2) + end + + end + + end \ No newline at end of file diff --git a/app/services/courses_service.rb b/app/services/courses_service.rb index 545ab1dac..94dcaf6fc 100644 --- a/app/services/courses_service.rb +++ b/app/services/courses_service.rb @@ -4,6 +4,7 @@ class CoursesService include CoursesHelper include HomeworkAttachHelper include ApiHelper + include ActionView::Helpers::DateHelper #参数school_id为0或不传时返回所有课程,否则返回对应学校的课程 #参数per_page_count分页功能,每页显示的课程数 @@ -657,22 +658,12 @@ class CoursesService membership.each do |mp| course = mp.course latest_course_dynamics = [] - dynamics_count = 0 - # 课程学霸 学生总分数排名靠前的5个人 - homework_count = course.homework_commons.count - sql = "select users.*,sum(IFNULL(0,student_works.final_score))/#{homework_count} score from student_works left outer join users on student_works.user_id = users.id" << - " where homework_common_id in ( select id from homework_commons where homework_commons.course_id = #{course.id}) GROUP BY student_works.user_id ORDER BY score limit 0,6" - better_students = User.find_by_sql(sql) - if homework_count != 0 && !better_students.empty? - latest_course_dynamics <<{:type=> 6,:time=>Time.now.to_s,:count=> 6,:better_students=> better_students} - dynamics_count += 1 - end + # 课程通知 latest_news = course.news.page(1).per(2).order("created_on desc") unless latest_news.first.nil? latest_course_dynamics << {:type => 1, :time => latest_news.first.created_on,:count=>course.news.count, :news => latest_news.all} - dynamics_count += 1 end # 课程讨论区 @@ -694,12 +685,31 @@ class CoursesService homeworks = course.homework_commons.page(1).per(2).order('created_at desc') unless homeworks.first.nil? latest_course_dynamics << {:type => 4, :time => homeworks.first.updated_at, :count=>course.homework_commons.count , :homeworks => homeworks} - dynamics_count += 1 end - latest_course_dynamics.sort! { |order, newer| newer[:time] <=> order[:time] } + latest_course_dynamics.sort! { |order, newer| newer[:time] <=> order[:time] } + # 课程学霸 学生总分数排名靠前的5个人 + homework_count = course.homework_commons.count + sql = "select users.*,sum(IFNULL(0,student_works.final_score))/#{homework_count} score from student_works left outer join users on student_works.user_id = users.id" << + " where homework_common_id in ( select id from homework_commons where homework_commons.course_id = #{course.id}) GROUP BY student_works.user_id ORDER BY score limit 0,4" + better_students = User.find_by_sql(sql) + # 找出在课程讨论区发帖回帖数最多的 + active_students = [] + sql1 = " select users.*,count(author_id) active_count from messages " << + " LEFT JOIN users on messages.author_id = users.id " << + " where messages.board_id in (select id from boards where boards.course_id = #{course.id} ) " << + " GROUP BY messages.author_id ORDER BY count(author_id) desc " << + " limit 0,4" + active_students = User.find_by_sql(sql1) + if homework_count != 0 && !better_students.empty? + latest_course_dynamics <<{:type=> 6,:time=>Time.now.to_s,:count=> 4,:better_students=> better_students} + end + unless active_students.empty? + latest_course_dynamics <<{:type=> 7,:time=>Time.now.to_s,:count=> 4,:active_students=>active_students} + end latest_course_dynamic = latest_course_dynamics.first unless latest_course_dynamic.nil? - result << {:course_name => course.name,:current_user_is_member => current_user.member_of_course?(course),:current_user_is_teacher => is_course_teacher(current_user,course), :course_id => course.id, :course_img_url => url_to_avatar(course), :course_time => course.time, :course_term => course.term,:message => dynamics_count, :dynamics => latest_course_dynamics, :count => dynamics_count} + result << {:course_name => course.name,:current_user_is_member => current_user.member_of_course?(course),:current_user_is_teacher => is_course_teacher(current_user,course), :course_id => course.id, :course_img_url => url_to_avatar(course), :course_time => course.time, :course_term => course.term,:message => "", :dynamics => latest_course_dynamics, + :course_student_num=>course ? course.members.count : 0,:time_from_now=> distance_of_time_in_words(Time.now, latest_course_dynamic[:time].to_time) << "前"} end end #返回数组集合 diff --git a/db/schema.rb b/db/schema.rb index 988d5649a..78dfb5eee 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -721,6 +721,16 @@ ActiveRecord::Schema.define(:version => 20150702073308) do add_index "journal_details", ["journal_id"], :name => "journal_details_journal_id" + create_table "journal_details_copy", :force => true do |t| + t.integer "journal_id", :default => 0, :null => false + t.string "property", :limit => 30, :default => "", :null => false + t.string "prop_key", :limit => 30, :default => "", :null => false + t.text "old_value" + t.text "value" + end + + add_index "journal_details_copy", ["journal_id"], :name => "journal_details_journal_id" + create_table "journal_replies", :id => false, :force => true do |t| t.integer "journal_id" t.integer "user_id" From 515c854f0f702df2e8afc455bc65c459b3e9a499 Mon Sep 17 00:00:00 2001 From: sw <939547590@qq.com> Date: Wed, 8 Jul 2015 09:49:24 +0800 Subject: [PATCH 028/444] =?UTF-8?q?=E7=BC=96=E7=A8=8B=E4=BD=9C=E4=B8=9A?= =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BD=9C=E5=93=81=E6=97=B6=E4=B8=8D=E7=8E=B0?= =?UTF-8?q?=E5=AE=9E=E5=85=B3=E8=81=94=E9=A1=B9=E7=9B=AE=E3=80=81=E9=99=84?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/student_work/new.html.erb | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/app/views/student_work/new.html.erb b/app/views/student_work/new.html.erb index b4162c4da..500a0ccd3 100644 --- a/app/views/student_work/new.html.erb +++ b/app/views/student_work/new.html.erb @@ -33,9 +33,12 @@

    <%= f.text_field "name", :required => true, :size => 60, :class => "bo fl", :maxlength => 200, :placeholder => "作品名称", :onkeyup => "regexStudentWorkName();" %> - 项目信息 - - + <% if @homework.homework_type != 2%> + + 项目信息 + + + <% end%>

    @@ -52,11 +55,13 @@

    -

    - - <%= render :partial => 'attachments/new_form' %> -

    -
    + <% if @homework.homework_type != 2%> +

    + + <%= render :partial => 'attachments/new_form' %> +

    +
    + <% end%>

    提交作品 <%= link_to "返  回".html_safe, student_work_index_path(:homework => @homework), :class => "blue_btn grey_btn fl c_white"%> From 17a9a1023a9a239ac489a325bf6fa2efb393649b Mon Sep 17 00:00:00 2001 From: sw <939547590@qq.com> Date: Wed, 8 Jul 2015 10:58:03 +0800 Subject: [PATCH 029/444] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=BC=96=E7=A8=8B?= =?UTF-8?q?=E4=BD=9C=E4=B8=9A=E4=B8=AD=E6=95=99=E8=BE=85=E6=AF=94=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20150708025533_add_proportion_to_programing.rb | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 db/migrate/20150708025533_add_proportion_to_programing.rb diff --git a/db/migrate/20150708025533_add_proportion_to_programing.rb b/db/migrate/20150708025533_add_proportion_to_programing.rb new file mode 100644 index 000000000..b3da59c25 --- /dev/null +++ b/db/migrate/20150708025533_add_proportion_to_programing.rb @@ -0,0 +1,9 @@ +class AddProportionToPrograming < ActiveRecord::Migration + def up + add_column :homework_detail_programings, :ta_proportion, :float, :default => 0.1 + end + + def down + remove_column :homework_detail_programings, :ta_proportion + end +end From 9a2cb324ab6dc9a909b57cd34dd64527d8de4c21 Mon Sep 17 00:00:00 2001 From: sw <939547590@qq.com> Date: Wed, 8 Jul 2015 11:17:36 +0800 Subject: [PATCH 030/444] =?UTF-8?q?=E4=BD=9C=E4=B8=9A=E6=97=A0=E6=B3=95?= =?UTF-8?q?=E7=94=B1=E5=8C=BF=E8=AF=84=E4=BD=9C=E4=B8=9A=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E4=B8=BA=E6=99=AE=E9=80=9A=E4=BD=9C=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/homework_common_controller.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/app/controllers/homework_common_controller.rb b/app/controllers/homework_common_controller.rb index 7a3b2b6c2..4ea590d54 100644 --- a/app/controllers/homework_common_controller.rb +++ b/app/controllers/homework_common_controller.rb @@ -126,6 +126,7 @@ class HomeworkCommonController < ApplicationController @homework.description = params[:homework_common][:description] @homework.end_time = params[:homework_common][:end_time] @homework.publish_time = params[:homework_common][:publish_time] + @homework.homework_type = params[:homework_common][:homework_type] unless @homework.late_penalty == params[:late_penalty] @homework.student_works.where("created_at > '#{@homework.end_time} 23:59:59'").each do |student_work| student_work.late_penalty = params[:late_penalty] From 6af6fdd5a396f76cdd1e4b3c890c444b4bb0620d Mon Sep 17 00:00:00 2001 From: sw <939547590@qq.com> Date: Wed, 8 Jul 2015 11:17:59 +0800 Subject: [PATCH 031/444] =?UTF-8?q?=E7=BC=96=E7=A8=8B=E4=BD=9C=E4=B8=9A?= =?UTF-8?q?=E5=88=86=E9=85=8D=E6=AF=94=E4=BE=8B=E6=B7=BB=E5=8A=A0=E4=BB=A5?= =?UTF-8?q?=E5=8F=8A=E7=95=8C=E9=9D=A2=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../_homework_detail_programing_form.html.erb | 17 +++++++++++++++++ db/schema.rb | 7 ++++--- public/javascripts/course.js | 19 +++++++++++-------- 3 files changed, 32 insertions(+), 11 deletions(-) diff --git a/app/views/homework_common/_homework_detail_programing_form.html.erb b/app/views/homework_common/_homework_detail_programing_form.html.erb index 399e8355e..008f88138 100644 --- a/app/views/homework_common/_homework_detail_programing_form.html.erb +++ b/app/views/homework_common/_homework_detail_programing_form.html.erb @@ -61,6 +61,23 @@

    + +
  • + + <%= select_tag :ta_proportion,options_for_select(ta_proportion_option,homework.homework_detail_programing.ta_proportion), {:class => "fl mb10 h26 w70"} %> + × 教辅评分 +   +   + + × 系统评分 + = 学生得分 +
    +
  • +
  • + + 如果教师对学生作品进行了评分,则教师评分为学生最终得分。 +
    +
  • +
  • diff --git a/db/schema.rb b/db/schema.rb index 988d5649a..4016cd6a9 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended to check this file into your version control system. -ActiveRecord::Schema.define(:version => 20150702073308) do +ActiveRecord::Schema.define(:version => 20150708025533) do create_table "activities", :force => true do |t| t.integer "act_id", :null => false @@ -586,8 +586,9 @@ ActiveRecord::Schema.define(:version => 20150702073308) do t.string "language" t.text "standard_code", :limit => 2147483647 t.integer "homework_common_id" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.float "ta_proportion", :default => 0.1 end create_table "homework_evaluations", :force => true do |t| diff --git a/public/javascripts/course.js b/public/javascripts/course.js index 3dc30404d..8db456cbf 100644 --- a/public/javascripts/course.js +++ b/public/javascripts/course.js @@ -473,15 +473,18 @@ $(function(){ }); //第一次加载时,如果未开启匿评作业,隐藏显示匿评配置信息 $(function(){ - if($("#homework_common_homework_type").attr("checked") == "checked") + if($("#homework_common_homework_type").attr("id") != null && $("#homework_common_homework_type").val() != 2) { - $("#evaluation_setting").show(); - $("#ta_proportion").removeAttr("disabled"); - } - else - { - $("#evaluation_setting").hide(); - $("#ta_proportion").attr("disabled","disabled"); + if($("#homework_common_homework_type").attr("checked") == "checked") + { + $("#evaluation_setting").show(); + $("#ta_proportion").removeAttr("disabled"); + } + else + { + $("#evaluation_setting").hide(); + $("#ta_proportion").attr("disabled","disabled"); + } } }); From 7ada5db28e38a85b578f95ec27bfb955546d5335 Mon Sep 17 00:00:00 2001 From: sw <939547590@qq.com> Date: Wed, 8 Jul 2015 16:14:54 +0800 Subject: [PATCH 032/444] =?UTF-8?q?=E5=AD=A6=E7=94=9F=E6=8F=90=E4=BA=A4?= =?UTF-8?q?=E4=BD=9C=E5=93=81=E6=97=B6=EF=BC=8C=E7=BC=96=E7=A8=8B=E4=BD=9C?= =?UTF-8?q?=E4=B8=9A=EF=BC=8C=E7=B3=BB=E7=BB=9F=E8=AF=84=E5=88=86=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E9=A2=84=E7=95=99?= 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, 5 insertions(+), 1 deletion(-) diff --git a/app/controllers/student_work_controller.rb b/app/controllers/student_work_controller.rb index cc858cc19..429f787e5 100644 --- a/app/controllers/student_work_controller.rb +++ b/app/controllers/student_work_controller.rb @@ -42,7 +42,6 @@ class StudentWorkController < ApplicationController end end @homework_commons = @course.homework_commons.order("created_at desc") - @homework_commons = @course.homework_commons.order("created_at desc") @score = @b_sort == "desc" ? "asc" : "desc" respond_to do |format| format.html @@ -80,6 +79,11 @@ class StudentWorkController < ApplicationController stundet_work.late_penalty = 0 end render_attachment_warning_if_needed(stundet_work) + + if @homework.homework_type == 2 #编程作业,学生提交作品后计算系统得分 + + end + if stundet_work.save respond_to do |format| format.html { From dc01b90dbdcdc1003b3b7be20a6ddf2797cd1ea8 Mon Sep 17 00:00:00 2001 From: sw <939547590@qq.com> Date: Wed, 8 Jul 2015 16:24:47 +0800 Subject: [PATCH 033/444] =?UTF-8?q?=E5=8C=BF=E8=AF=84=E4=BD=9C=E4=B8=9A?= =?UTF-8?q?=E4=BD=9C=E5=93=81=E5=88=97=E8=A1=A8=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../student_work/_evaluation_student_work_title.html.erb | 8 ++++++-- app/views/student_work/index.html.erb | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/app/views/student_work/_evaluation_student_work_title.html.erb b/app/views/student_work/_evaluation_student_work_title.html.erb index 0e4151065..a95106a48 100644 --- a/app/views/student_work/_evaluation_student_work_title.html.erb +++ b/app/views/student_work/_evaluation_student_work_title.html.erb @@ -29,8 +29,12 @@ <% end%>
  • -
  • - <%= link_to "匿评",@show_all ? student_work_index_path(:homework => @homework.id,:order => "student_score", :sort => @score, :name => @name) : "javascript:void(0)",:class => "f14 f_b c_dark fl"%> +
  • + <% if @homework.homework_type == 1%> + <%= link_to "匿评",@show_all ? student_work_index_path(:homework => @homework.id,:order => "student_score", :sort => @score, :name => @name) : "javascript:void(0)",:class => "f14 f_b c_dark fl"%> + <% elsif @homework.homework_type == 2%> + <%= link_to "系统",@show_all ? student_work_index_path(:homework => @homework.id,:order => "student_score", :sort => @score, :name => @name) : "javascript:void(0)",:class => "f14 f_b c_dark fl"%> + <% end %> <% if @show_all && @order == "student_score"%> <%= link_to "", student_work_index_path(:homework => @homework.id,:order => "student_score", :sort => @score, :name => @name) ,:class => @score == 'desc' ? 'st_up' : 'st_down'%> <% end%> diff --git a/app/views/student_work/index.html.erb b/app/views/student_work/index.html.erb index 76ae71459..70f7c08f4 100644 --- a/app/views/student_work/index.html.erb +++ b/app/views/student_work/index.html.erb @@ -89,7 +89,7 @@
    <% end%> <% else %> - <% if @homework.homework_type == 1%> + <% if @homework.homework_type == 1 || @homework.homework_type == 2%>
      <%= render :partial => 'evaluation_student_work_title'%>
    From 2fb76458b6016e1effb16b3fd928489cac945fa2 Mon Sep 17 00:00:00 2001 From: sw <939547590@qq.com> Date: Wed, 8 Jul 2015 16:33:18 +0800 Subject: [PATCH 034/444] =?UTF-8?q?=E7=BC=96=E7=A8=8B=E4=BD=9C=E5=93=81?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E9=9D=99=E6=80=81=E9=A1=B5=E9=9D=A2=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../_programing_work_show.html.erb | 72 +++++++++++++++++++ app/views/student_work/show.js.erb | 6 +- 2 files changed, 77 insertions(+), 1 deletion(-) create mode 100644 app/views/student_work/_programing_work_show.html.erb diff --git a/app/views/student_work/_programing_work_show.html.erb b/app/views/student_work/_programing_work_show.html.erb new file mode 100644 index 000000000..c231ab94b --- /dev/null +++ b/app/views/student_work/_programing_work_show.html.erb @@ -0,0 +1,72 @@ +
    +
    +
      +
    • 上交时间:2015-05-07
    • +
    • 赞(10)
    • +
      +
    • 参与人员:程梦雯  王强
    • +
    • 关联项目:Trustie Forge
    • +
    • 编程代码:

      编程作品代码编程作品代码编程作品代码编程作品代码编程作品代码编程作品代码编程作品代码编程作品代码编程作品代码编程作品代码编程作品代码编程作品代码编程作品代码编程作品代码编程作品代码

    • +
    • 测试结果: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      测试结果一错误0
      测试结果二正确20
      测试结果三正确20
      测试结果四正确20
      测试结果五正确20
      最后得分 80
      +
      +
    • +
    • 评价:
    • + +
    • 评分:
    • +
    • 批阅结果:    -文件不超过200MB提交
    • +
    +
    + + + +
    + 收起 +
    +
    \ No newline at end of file diff --git a/app/views/student_work/show.js.erb b/app/views/student_work/show.js.erb index fa12e097d..1c8874c2f 100644 --- a/app/views/student_work/show.js.erb +++ b/app/views/student_work/show.js.erb @@ -2,6 +2,10 @@ if($("#about_hwork_<%= @work.id%>").children().length > 0) {$("#about_hwork_<%= @work.id%>").html("");} else { - $("#about_hwork_<%= @work.id%>").html("<%= escape_javascript(render :partial => 'show') %>"); + <% if @homework.homework_type == 2%> + $("#about_hwork_<%= @work.id%>").html("<%= escape_javascript(render :partial => 'programing_work_show') %>"); + <% else%> + $("#about_hwork_<%= @work.id%>").html("<%= escape_javascript(render :partial => 'show') %>"); + <% end%> $('#score_<%= @work.id%>').peSlider({range: 'min'}); } \ No newline at end of file From ac0e774bcbbdc85534fc896cdf92aad033801637 Mon Sep 17 00:00:00 2001 From: huang Date: Wed, 8 Jul 2015 16:35:25 +0800 Subject: [PATCH 035/444] =?UTF-8?q?issue=E7=95=99=E8=A8=80=E5=86=85?= =?UTF-8?q?=E5=AE=B9=E5=86=B2=E7=AA=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/issues/_history.html.erb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/views/issues/_history.html.erb b/app/views/issues/_history.html.erb index 2ad36875c..68e991594 100644 --- a/app/views/issues/_history.html.erb +++ b/app/views/issues/_history.html.erb @@ -11,8 +11,8 @@

    <% if journal.details.any? %> - <% details_to_strings(journal.details).each do |string| %> -

    <%= string %>

    + <% details_to_strings(journal.details).each do |string| %> +

    <%= string %>

    <% end %> <% end %>

    From 2eff8cce6a9fe43ec8dfc3750edd55c5c9a05fe3 Mon Sep 17 00:00:00 2001 From: sw <939547590@qq.com> Date: Wed, 8 Jul 2015 16:38:34 +0800 Subject: [PATCH 036/444] =?UTF-8?q?=E6=9B=B4=E6=96=B0css=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/stylesheets/courses.css | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/public/stylesheets/courses.css b/public/stylesheets/courses.css index 5f7e7eebd..a6d8ff0a2 100644 --- a/public/stylesheets/courses.css +++ b/public/stylesheets/courses.css @@ -30,6 +30,10 @@ a:hover.news_foot{ color:#787b7e; border:1px solid #d4d4d4;} .box_h3{ color:#15bccf; text-align:center; font-size:16px;} .box_p{ color:#404040; margin-bottom:5px;} .fb_item{ color:#919191; border:1px solid #919191; height:28px; margin-bottom:10px; padding-left:5px; width:290px;} +a.icon_addm{ background:url(../images/img_floatbox.png) 0 -33px no-repeat; width:16px; height:16px; display:block; margin:5px 0 0 5px;} +a:hover.icon_addm{background:url(../images/img_floatbox.png) 0 -61px no-repeat; } +a.icon_removem{ background:url(../images/img_floatbox.png) -22px -33px no-repeat;width:16px; height:16px; display:block; margin:5px 0 0 5px} +a:hover.icon_removem{background:url(../images/img_floatbox.png) -22px -61px no-repeat;} a.btn_free{ background:#ff5722; display:block; width:80px; text-align:center; color:#fff; height:26px; padding-top:3px; margin-bottom:10px;} a:hover.btn_free{ background:#d63502;} /*成员邀请*/ @@ -338,7 +342,6 @@ a:hover.st_add{ color:#ff8e15;} .upbtn{ margin:40px 0 0 15px; display:block; padding:2px 5px; border:1px solid #eaeaea;} .upbtn:hover{border:1px solid #64bdd9; color:#64bdd9;cursor: pointer;} .upload_file{margin-left: -60px;margin-top: 40px;width: 50px;position: absolute;height: 24px;opacity: 0;cursor: pointer} - /* 功能倒计时*/ .w_img{ float:left; margin:10px 10px 15px 0px;} .w_p{ float:left; color:#15bccf; font-size:16px; font-weight:bold; margin-top:70px; } @@ -349,7 +352,9 @@ a:hover.st_add{ color:#ff8e15;} .upload_con h2{ display:block; background:#eaeaea; font-size:14px; color:#343333; height:31px; width: auto; margin-top:25px; padding-left:20px; padding-top:5px;} .upload_box{ width:430px; margin:15px auto;} +a.link_file{ background:url(../images/pic_file.png) 0 2px no-repeat; padding-left:20px; } a:hover.link_file{ background:url(../images/pic_file.png) 0 -25px no-repeat; color:#3ca5c6;} +.r_txt_tit{width:510px; overflow:hidden; white-space: nowrap; text-overflow:ellipsis;color:#15bccf; float:left; color:#09658c; font-size:14px;} blockquote {background: #eeeeee;padding: 10px;margin-bottom: 10px;word-break: break-all;word-wrap: break-word;} .respond-form{display: none;margin: auto;clear: both;} @@ -550,7 +555,19 @@ a.wzan_visited{background:url(../images/new_project/public_icon.png) 0px -503px a.files_tag_icon{ background:#e2f3f9; color:#54aeca; border:1px solid #bbe2ef; padding:1px 10px; float:left; margin-right:10px;margin-bottom:10px; } a.files_tag_select{ background:#64bdd9; color:#fff; border:1px solid #64bdd9; padding:1px 10px; float:left; margin-right:10px;margin-bottom:10px;} - +/* 20150423作业评分*/ +.ml14{ margin-left:14px;} +.w548{ width:552px;} +.w547{ width:544px;} +.w196{ width:182px;} +.w459{ width:459px;} +.hwork_new_set{border:1px dashed #CCC; background:#f5f5f5; text-align:center; padding:10px 0; margin-bottom:10px;} +.hwork_new_grey{background:#dbdbdb; width:610px; padding:10px 20px; margin:0 auto; text-align:left; margin-bottom:5px;} +.hwork_new_left{ width:220px; float:left; } +.hwork_new_right{ width:350px; float:left; margin-left:40px;} +.w305{ width:305px;} +.icon_add{ background:url(../stylesheets/images/icons.png) 0px -310px no-repeat; width:16px; height:27px; display:block;float:left; margin-right:5px;} +a:hover.icon_add{background:url(../stylesheets/images/icons.png) -20px -310px no-repeat;} /* 20150505讨论区*/ .w664{ width:664px;} @@ -648,6 +665,7 @@ a:hover.ping_pic{border:1px solid #64bdd9;} a.down_btn{ border:1px solid #CCC; color:#999; padding:0px 5px; font-size:12px; text-align:center; display:block;} a:hover.down_btn{ background:#14ad5a; color:#fff; border:1px solid #14ad5a;} .fr{ float:right;} +.min_search{ width:200px; height:20px; border:1px solid #d0d0d0; color:#666; background:url(../images/public_icon.png) 185px -193px no-repeat; cursor:pointer;} .li_min_search{ float:right; margin-right:-10px;} .info_ni_download{ width:100px; padding:5px;position: absolute;display:none;-moz-border-radius:3px; -webkit-border-radius:3px; border-radius:3px; box-shadow:0px 0px 5px #194a81; color:#666; background:#fff; text-align:left;margin-left: 200px;margin-top: 10px;} .info_ni{ width:100px; padding:5px;position: absolute;display:none;-moz-border-radius:3px; -webkit-border-radius:3px; border-radius:3px; box-shadow:0px 0px 5px #194a81; color:#666; background:#fff; text-align:left;margin-left: 50px;margin-top: -5px;} @@ -666,6 +684,12 @@ input#score{ width:40px;} .ui-slider .ui-slider-handle:hover,.ui-slider .ui-slider-handle:focus{background:#64bdd9;} .ui-slider .ui-slider-handle:active{background-image:none;} .ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;top:0;height:100%;background:#64bdd9;left:0;} +/* 编程作品 */ +.border_ce{ border:1px solid #e4e4e4; } +.border_ce tr td{ height:26px; } +.td_tit{width:155px; text-align:center;} +.td_50{width:50px; text-align:center;} +a.work_list_tit{width:610px; display:block; overflow:hidden; white-space: nowrap; text-overflow:ellipsis;} .filename { background: url(../images/pic_file.png) 0 -25px no-repeat;color: #3ca5c6;max-width: 150px;border: none; padding-left: 20px;margin-right: 10px;margin-bottom: 5px; white-space: nowrap; text-overflow:ellipsis;} .evaluation{position: relative;} From 2ed2ba97fa48633bfd2f61aa4104749ed20d420d Mon Sep 17 00:00:00 2001 From: sw <939547590@qq.com> Date: Wed, 8 Jul 2015 16:54:27 +0800 Subject: [PATCH 037/444] =?UTF-8?q?=E7=BC=96=E7=A8=8B=E4=BD=9C=E5=93=81sho?= =?UTF-8?q?w=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../_programing_work_show.html.erb | 103 ++++++++---------- 1 file changed, 46 insertions(+), 57 deletions(-) diff --git a/app/views/student_work/_programing_work_show.html.erb b/app/views/student_work/_programing_work_show.html.erb index c231ab94b..80284dac0 100644 --- a/app/views/student_work/_programing_work_show.html.erb +++ b/app/views/student_work/_programing_work_show.html.erb @@ -1,72 +1,61 @@
      -
    • 上交时间:2015-05-07
    • -
    • 赞(10)
    • +
    • + + 上交时间: + + <%=format_time @work.created_at %> +
    • + <% if @work.user != User.current%> + +
    • + <%= render :partial => 'student_work_praise' %> +
    • + <% end%>
      -
    • 参与人员:程梦雯  王强
    • -
    • 关联项目:Trustie Forge
    • -
    • 编程代码:

      编程作品代码编程作品代码编程作品代码编程作品代码编程作品代码编程作品代码编程作品代码编程作品代码编程作品代码编程作品代码编程作品代码编程作品代码编程作品代码编程作品代码编程作品代码

    • +
    • + + 编程代码: + +
      + <%= textilizable @work.description%> +
      +
      +
    • 测试结果: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + <%@homework.homework_tests.each do |test|%> + "> + + + + + + <% end%>
      测试结果一错误0
      测试结果二正确20
      测试结果三正确20
      测试结果四正确20
      测试结果五正确20
      最后得分 80
      + <%= test.input%> + + <%= test.output%> + 错误0
    • -
    • 评价:
    • - -
    • 评分:
    • -
    • 批阅结果:    -文件不超过200MB提交
    • + <% if @is_teacher%> + +
      + <%= render :partial => 'add_score',:locals => {:work => @work,:score => @score}%> +
      + <% end%>
    -
    - - +
    + <%@work.student_works_scores.order("updated_at desc").each do |score|%> +
    + <%= render :partial => 'student_work_score',:locals => {:score => score}%> +
    + <% end%>
    - 收起 -
    + 收起
    \ No newline at end of file From 8f3ac85fec83888be61bd797919b2540fddb87f9 Mon Sep 17 00:00:00 2001 From: sw <939547590@qq.com> Date: Wed, 8 Jul 2015 17:19:11 +0800 Subject: [PATCH 038/444] =?UTF-8?q?1=E3=80=81=E4=BD=9C=E4=B8=9A=E6=8F=8F?= =?UTF-8?q?=E8=BF=B0=E3=80=81=E7=BC=96=E7=A8=8B=E4=BD=9C=E4=B8=9A=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E5=AD=97=E6=AE=B5=E6=94=B9=E4=B8=BAlongtext=202?= =?UTF-8?q?=E3=80=81=E6=8F=90=E4=BA=A4=E4=BD=9C=E4=B8=9A=E7=95=8C=E9=9D=A2?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E4=BF=AE=E6=94=B9=203=E3=80=81=E7=BC=96?= =?UTF-8?q?=E7=A8=8B=E4=BD=9C=E4=B8=9A=E4=B8=8D=E5=8F=AF=E4=BB=A5=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E5=92=8C=E5=88=A0=E9=99=A4control=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/student_work_controller.rb | 12 +++++++++--- app/views/student_work/edit.html.erb | 8 -------- app/views/student_work/new.html.erb | 8 ++++++-- .../20150708085629_change_studen_work_desc.rb | 9 +++++++++ db/schema.rb | 14 +++++++------- 5 files changed, 31 insertions(+), 20 deletions(-) create mode 100644 db/migrate/20150708085629_change_studen_work_desc.rb diff --git a/app/controllers/student_work_controller.rb b/app/controllers/student_work_controller.rb index 429f787e5..0efa0aa66 100644 --- a/app/controllers/student_work_controller.rb +++ b/app/controllers/student_work_controller.rb @@ -103,8 +103,12 @@ class StudentWorkController < ApplicationController end def edit - respond_to do |format| - format.html + if @homework.homework_type == 2 #编程作业不能修改作业 + render_403 + else + respond_to do |format| + format.html + end end end @@ -139,7 +143,9 @@ class StudentWorkController < ApplicationController end def destroy - if @work.destroy + if @homework.homework_type == 2 #编程作业,作品提交后不可以删除 + render_403 + elsif @work.destroy respond_to do |format| format.html { redirect_to student_work_index_url(:homework => @homework.id) diff --git a/app/views/student_work/edit.html.erb b/app/views/student_work/edit.html.erb index dfa995f47..6e36447d2 100644 --- a/app/views/student_work/edit.html.erb +++ b/app/views/student_work/edit.html.erb @@ -2,14 +2,6 @@

    编辑作品

    - - - - - - - -
    <%= labelled_form_for @work,:html => { :multipart => true } do |f|%> diff --git a/app/views/student_work/new.html.erb b/app/views/student_work/new.html.erb index 500a0ccd3..eda09114e 100644 --- a/app/views/student_work/new.html.erb +++ b/app/views/student_work/new.html.erb @@ -49,8 +49,12 @@

    - - <%= f.text_area "description", :class => "w620 hwork_txt ", :maxlength => 3000, :placeholder => "最多3000个汉字", :onkeyup => "regexStudentWorkDescription();"%> + + <%= f.text_area "description", :class => "w620 hwork_txt ", :placeholder => "作品描述不能为空", :onkeyup => "regexStudentWorkDescription();"%>

    diff --git a/db/migrate/20150708085629_change_studen_work_desc.rb b/db/migrate/20150708085629_change_studen_work_desc.rb new file mode 100644 index 000000000..af3c25671 --- /dev/null +++ b/db/migrate/20150708085629_change_studen_work_desc.rb @@ -0,0 +1,9 @@ +class ChangeStudenWorkDesc < ActiveRecord::Migration + def up + change_column :student_works,:description,:text,:limit => 4294967295 + end + + def down + change_column :student_works,:description,:text + end +end diff --git a/db/schema.rb b/db/schema.rb index 4016cd6a9..539dd95d3 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended to check this file into your version control system. -ActiveRecord::Schema.define(:version => 20150708025533) do +ActiveRecord::Schema.define(:version => 20150708085629) do create_table "activities", :force => true do |t| t.integer "act_id", :null => false @@ -1222,18 +1222,18 @@ ActiveRecord::Schema.define(:version => 20150708025533) do create_table "student_works", :force => true do |t| t.string "name" - t.text "description" + t.text "description", :limit => 2147483647 t.integer "homework_common_id" t.integer "user_id" t.float "final_score" t.float "teacher_score" t.float "student_score" t.float "teaching_asistant_score" - t.integer "project_id", :default => 0 - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.integer "late_penalty", :default => 0 - t.integer "absence_penalty", :default => 0 + t.integer "project_id", :default => 0 + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.integer "late_penalty", :default => 0 + t.integer "absence_penalty", :default => 0 end create_table "student_works_evaluation_distributions", :force => true do |t| From 1b1cce615d79f2d6774d99701ba0cbdfb5c54689 Mon Sep 17 00:00:00 2001 From: lizanle <491823689@qq.com> Date: Wed, 8 Jul 2015 17:36:17 +0800 Subject: [PATCH 039/444] =?UTF-8?q?=E5=9B=9E=E5=A4=8D=E9=80=9A=E7=9F=A5api?= =?UTF-8?q?=20=E6=B4=BB=E8=B7=83=E6=8E=92=E5=90=8Dapi=20=E5=85=B6=E4=BB=96?= =?UTF-8?q?api=E7=9A=84=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/apis/comments.rb | 14 ++++++++++++++ app/api/mobile/apis/courses.rb | 3 ++- app/api/mobile/entities/news.rb | 2 ++ app/services/comment_service.rb | 5 ++++- app/services/courses_service.rb | 18 ++++++++++++++---- 5 files changed, 36 insertions(+), 6 deletions(-) diff --git a/app/api/mobile/apis/comments.rb b/app/api/mobile/apis/comments.rb index 86132a93a..7fa676161 100644 --- a/app/api/mobile/apis/comments.rb +++ b/app/api/mobile/apis/comments.rb @@ -113,6 +113,20 @@ module Mobile present :status, 0 end + desc '通知评论列表' + params do + requires :token, type: String + requires :notice_id,type:Integer,desc:'通知id' + optional :page,type:Integer,desc:'页码' + end + get ':notice_id/notice_comments' do + cs = CommentService.new + comments = cs.notice_comments params,current_user + present :data, comments, with: Mobile::Entities::Comment + present :status, 0 + end + + end end end diff --git a/app/api/mobile/apis/courses.rb b/app/api/mobile/apis/courses.rb index 509d31d86..39d2ebe9d 100644 --- a/app/api/mobile/apis/courses.rb +++ b/app/api/mobile/apis/courses.rb @@ -312,11 +312,12 @@ module Mobile present :status,0 end - desc '课程历次作业总成绩列表' + desc '总成绩 or 活跃度列表' params do requires :token,type:String requires :course_id,type:Integer,desc:'课程id' optional :page,type:Integer,desc:'页码' + optional :type,type:Integer,desc:'0是活跃度,1是成绩' end get ':course_id/students_score_list' do cs = CoursesService.new diff --git a/app/api/mobile/entities/news.rb b/app/api/mobile/entities/news.rb index 5ed3958ba..36893d16f 100644 --- a/app/api/mobile/entities/news.rb +++ b/app/api/mobile/entities/news.rb @@ -56,6 +56,8 @@ module Mobile expose :comments, using: Mobile::Entities::Comment do |f, opt| if f.is_a?(Hash) && f.key?(:comments) f[:comments] + elsif f.is_a?(::News) && f.respond_to?(:comments) + f.send(:comments) end end diff --git a/app/services/comment_service.rb b/app/services/comment_service.rb index 2464297da..62955905b 100644 --- a/app/services/comment_service.rb +++ b/app/services/comment_service.rb @@ -112,6 +112,9 @@ class CommentService end end - + # 获取课程里的某个通知的所有回复 + def notice_comments params,current_user + News.find(params[:notice_id]).comments.page(params[:page] || 1).per(10) + end end \ No newline at end of file diff --git a/app/services/courses_service.rb b/app/services/courses_service.rb index 94dcaf6fc..00a8ffd8b 100644 --- a/app/services/courses_service.rb +++ b/app/services/courses_service.rb @@ -719,11 +719,21 @@ class CoursesService # 获取课程历次作业的学生总成绩 def students_score_list params,current_user - homework_count = Course.find(params[:course_id]).homework_commons.count page = (params[:page] || 1) - 1 - sql = "select users.*,sum(IFNULL(0,student_works.final_score))/#{homework_count} score from student_works left outer join users on student_works.user_id = users.id" << - " where homework_common_id in ( select id from homework_commons where homework_commons.course_id = #{params[:course_id]}) GROUP BY student_works.user_id ORDER BY score limit #{page*10},10" - User.find_by_sql(sql) + if params[:type] == 1 + homework_count = Course.find(params[:course_id]).homework_commons.count + + sql = "select users.*,sum(IFNULL(0,student_works.final_score))/#{homework_count} score from student_works left outer join users on student_works.user_id = users.id" << + " where homework_common_id in ( select id from homework_commons where homework_commons.course_id = #{params[:course_id]}) GROUP BY student_works.user_id ORDER BY score limit #{page*10},10" + User.find_by_sql(sql) + else + sql1 = " select users.*,count(author_id)*2 active_count from messages " << + " LEFT JOIN users on messages.author_id = users.id " << + " where messages.board_id in (select id from boards where boards.course_id = #{params[:course_id]} ) " << + " GROUP BY messages.author_id ORDER BY count(author_id) desc " << + " limit #{page*10},10" + User.find_by_sql(sql1) + end end # 获取某次作业的所有作业列表 From a3d71ca93f2327b239dee48cb17a9b4aa9d16ca2 Mon Sep 17 00:00:00 2001 From: zhangshenjerry <1375181337@qq.com> Date: Thu, 9 Jul 2015 10:18:02 +0800 Subject: [PATCH 040/444] =?UTF-8?q?=E8=AF=BE=E7=A8=8B=E7=95=99=E8=A8=80?= =?UTF-8?q?=EF=BC=9A=E5=A6=82=E5=9B=BE=EF=BC=8C=E7=94=A8=E6=88=B7=E5=A4=B4?= =?UTF-8?q?=E5=83=8F=E5=9C=A8=E5=9B=9E=E5=A4=8D=E7=95=99=E8=A8=80=E4=B8=AD?= =?UTF-8?q?=E4=B8=8D=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/words/_journal_reply_items.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/words/_journal_reply_items.html.erb b/app/views/words/_journal_reply_items.html.erb index 5e9d6ef46..692cca85d 100644 --- a/app/views/words/_journal_reply_items.html.erb +++ b/app/views/words/_journal_reply_items.html.erb @@ -6,7 +6,7 @@
    <% if show_name %> - <%= image_tag url_to_avatar(reply.user.show_name),:width => '30',:height => '30' %> + <%= image_tag url_to_avatar(journal.user),:width => '30',:height => '30' %> <% else %> <%= image_tag url_to_avatar(nil),:width => '30',:height => '30' %> <% end %> From eb1976efbbeb5adaafe9a6154ef32659ef86562a Mon Sep 17 00:00:00 2001 From: sw <939547590@qq.com> Date: Thu, 9 Jul 2015 10:38:44 +0800 Subject: [PATCH 041/444] =?UTF-8?q?=E7=BC=96=E7=A8=8B=E4=BD=9C=E4=B8=9A?= =?UTF-8?q?=EF=BC=8C=E6=9C=80=E7=BB=88=E8=AF=84=E5=88=86=E7=9A=84=E8=AE=A1?= =?UTF-8?q?=E7=AE=97?= 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, 4 insertions(+), 2 deletions(-) diff --git a/app/controllers/student_work_controller.rb b/app/controllers/student_work_controller.rb index 0efa0aa66..b6f69a4da 100644 --- a/app/controllers/student_work_controller.rb +++ b/app/controllers/student_work_controller.rb @@ -190,8 +190,10 @@ class StudentWorkController < ApplicationController if @work.student_score.nil? @work.final_score = @work.teaching_asistant_score else - final_ta_score = BigDecimal.new("#{@work.teaching_asistant_score}") * BigDecimal.new("#{@homework.homework_detail_manual.ta_proportion}") - final_s_score = BigDecimal.new("#{@work.student_score}") * (BigDecimal.new('1.0') - BigDecimal.new("#{@homework.homework_detail_manual.ta_proportion}")) + ta_proportion = @homework.homework_detail_manual.ta_proportion if @homework.homework_detail_manual + ta_proportion = @homework.homework_detail_programing.ta_proportion if @homework.homework_detail_programing + final_ta_score = BigDecimal.new("#{@work.teaching_asistant_score}") * BigDecimal.new("#{ta_proportion}") + final_s_score = BigDecimal.new("#{@work.student_score}") * (BigDecimal.new('1.0') - BigDecimal.new("#{ta_proportion}")) final_score = final_ta_score + final_s_score @work.final_score = format("%.2f",final_score.to_f) end From dc4fb00819fb364f645b8cb103b0b6c58bb7b2bb Mon Sep 17 00:00:00 2001 From: huang Date: Thu, 9 Jul 2015 10:42:29 +0800 Subject: [PATCH 042/444] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E3=80=81=E8=AF=BE=E7=A8=8B=E8=AE=A8=E8=AE=BA=E5=8C=BA=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E5=AD=97=E4=BD=93=E5=A4=AA=E5=B0=8F=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/boards/_course_show.html.erb | 22 +++++++++++----------- app/views/boards/_project_show.html.erb | 22 +++++++++++----------- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/app/views/boards/_course_show.html.erb b/app/views/boards/_course_show.html.erb index 3e1530e3f..47de679c8 100644 --- a/app/views/boards/_course_show.html.erb +++ b/app/views/boards/_course_show.html.erb @@ -32,20 +32,20 @@
    <% end %> -

    讨论区共有<%= @topic_count %>个帖子

    +

    讨论区共有<%= @topic_count %>个帖子

    <% if @topics.any? %> <% @topics.each do |topic| %>
    <%= link_to image_tag(url_to_avatar(topic.author), :width=>"42",:height=>"42"), user_path(topic.author),:class =>'talkmain_pic fl' %> -
    +
    <% author = topic.author.to_s %>
    - <%= link_to author, user_path(topic.author), :class =>"talkmain_name fl ",:title=>author, + <%= link_to author, user_path(topic.author), :class =>"talkmain_name fl f14",:title=>author, :style=>'max-width:60px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;' %>

      :

    -

      <%= h(topic.subject) %>

    +

      <%= h(topic.subject) %>

    <% if topic.course_editable_by?(User.current) %> <%= l(:button_edit) %> @@ -101,7 +101,7 @@ // } }); -
    +
    <%= topic.content.html_safe %> @@ -122,7 +122,7 @@ <%= l(:label_activity_time)%>:  <%= format_time topic.created_on %>
    - <%= l(:button_reply) %> + <%= l(:button_reply) %>
    @@ -165,15 +165,15 @@
  • <%= link_to image_tag(url_to_avatar(message.author), :width => '34',:height => '34'), user_path(message.author), :class =>'Msg_pic' %>
    - <%= link_to_user_header message.author,false,:class => 'fl c_orange ' %> + <%= link_to_user_header message.author,false,:class => 'fl c_orange f14 ' %>
    -
    +
    <%= textAreailizable message,:content,:attachments => message.attachments %>

    - <%= format_time(message.created_on) %> + <%= format_time(message.created_on) %> <%= link_to( l(:button_delete), @@ -181,13 +181,13 @@ :method => :post, :data => {:confirm => l(:text_are_you_sure)}, :title => l(:button_delete), - :class => ' c_dblue fr' + :class => ' c_dblue fr f14' ) if message.course_destroyable_by?(User.current) %> <%= link_to( l(:button_reply), 'javascript:;', :nhname =>'showbtn_child_reply', - :class => ' c_dblue fr', + :class => ' c_dblue fr f14', :style => 'margin-right: 10px;', 'data-topic-id' =>message.id, :title => l(:button_reply)) if !topic.locked? && authorize_for('messages', 'reply') %> diff --git a/app/views/boards/_project_show.html.erb b/app/views/boards/_project_show.html.erb index e7071d2a1..c3dd863d5 100644 --- a/app/views/boards/_project_show.html.erb +++ b/app/views/boards/_project_show.html.erb @@ -28,20 +28,20 @@
    -

    讨论区共有<%= @topic_count %>个帖子

    +

    讨论区共有<%= @topic_count %>个帖子

    <% if @topics.any? %> <% @topics.each do |topic| %>
    <%= link_to image_tag(url_to_avatar(topic.author), :width=>"42",:height=>"42"), user_path(topic.author),:class =>'talkmain_pic fl' %> -
    +
    <% author = topic.author.to_s %>
    - <%= link_to author, user_path(topic.author), :class =>"talkmain_name fl ",:title=>author, + <%= link_to author, user_path(topic.author), :class =>"talkmain_name fl f14",:title=>author, :style=>'max-width:60px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;' %>

      :

    -

      <%= h(topic.subject) %>

    +

      <%= h(topic.subject) %>

    <% if topic.editable_by?(User.current) %> <%= l(:button_edit) %> @@ -95,7 +95,7 @@
    -
    +
    <%= topic.content.html_safe %> @@ -111,7 +111,7 @@ <%= l(:label_activity_time)%>:  <%= format_time topic.created_on %>
    <% if User.current.logged? %> - <%= l(:button_reply) %> + <%= l(:button_reply) %> <% end %>
  • <%= link_to image_tag(url_to_avatar(message.author), :width => '34',:height => '34'), user_path(message.author), :class =>'Msg_pic' %>
    - <%= link_to_user_header message.author,false,:class => 'fl c_orange ' %> + <%= link_to_user_header message.author,false,:class => 'fl c_orange f14 ' %>
    -
    +
    <%= textAreailizable message,:content,:attachments => message.attachments %>

    - <%= format_time(message.created_on) %> + <%= format_time(message.created_on) %> <%= link_to( l(:button_delete), @@ -168,13 +168,13 @@ :method => :post, :data => {:confirm => l(:text_are_you_sure)}, :title => l(:button_delete), - :class => ' c_dblue fr' + :class => ' c_dblue fr f14' ) if message.course_destroyable_by?(User.current) %> <%= link_to( l(:button_reply), 'javascript:;', :nhname =>'showbtn_child_reply', - :class => ' c_dblue fr', + :class => ' c_dblue fr f14', :style => 'margin-right: 10px;', :title => l(:button_reply)) if !topic.locked? && authorize_for('messages', 'reply') %>
    From 06c2718b54960992896dff8567676a9d6e0eeda3 Mon Sep 17 00:00:00 2001 From: huang Date: Thu, 9 Jul 2015 11:09:29 +0800 Subject: [PATCH 043/444] =?UTF-8?q?=E8=AF=BE=E7=A8=8B=E3=80=81=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E7=95=99=E8=A8=80=E9=A1=B5=E9=9D=A2=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E5=AD=97=E4=BD=93=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/courses/_history.html.erb | 8 ++++---- app/views/projects/_history.html.erb | 10 +++++----- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/app/views/courses/_history.html.erb b/app/views/courses/_history.html.erb index 043bac947..d8e034161 100644 --- a/app/views/courses/_history.html.erb +++ b/app/views/courses/_history.html.erb @@ -6,12 +6,12 @@ <%= link_to image_tag(url_to_avatar(journal.user),:width => '46',:height => '46'), user_path(journal.user) %>
    -
    +
    - <%= link_to "#{journal.user.show_name}(#{journal.user.login})", user_path(journal.user),:class => 'c_blue fb fl mb10', :target => "_blank"%> + <%= link_to "#{journal.user.show_name}(#{journal.user.login})", user_path(journal.user),:class => 'c_blue fb fl mb10 f14', :target => "_blank"%> - + <%= format_time(journal.created_on) %>
    @@ -20,7 +20,7 @@

    -
    +
    <% ids = 'project_respond_form_'+ journal.id.to_s%> <% if journal.user == User.current|| User.current.admin? || (@course && User.current.allowed_to?(:as_teacher,@course)) %> diff --git a/app/views/projects/_history.html.erb b/app/views/projects/_history.html.erb index 54dda7b28..b31445fdc 100644 --- a/app/views/projects/_history.html.erb +++ b/app/views/projects/_history.html.erb @@ -4,15 +4,15 @@
    <%= link_to image_tag(url_to_avatar(journal.user),:width => '46',:height => '46'), user_path(journal.user) %>
    -
    +
    - <%= link_to journal.user, user_path(journal.user), :class => 'c_blue fb fl mb10', :target => "_blank" %> - <%= format_time(journal.created_on) %> + <%= link_to journal.user, user_path(journal.user), :class => 'c_blue fb fl mb10 f14', :target => "_blank" %> + <%= format_time(journal.created_on) %>

    <%=journal.notes.html_safe%>

    -
    +
    <% ids = 'project_respond_form_'+ journal.id.to_s%> <% if journal.user == User.current|| User.current.admin? %> <%= link_to(l(:label_bid_respond_delete), @@ -31,7 +31,7 @@
    <% ids = 'project_respond_form_'+ journal.id.to_s%> <% if reply_allow %> -
    +
    <%= render :partial => 'words/new_respond_project', :locals => {:journal => journal, :m_reply_id => journal,:show_name => true} %>
    <% end %> From f4132e6ee0e9b11fff23f03e13c857493e1de960 Mon Sep 17 00:00:00 2001 From: huang Date: Thu, 9 Jul 2015 11:35:57 +0800 Subject: [PATCH 044/444] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=85=B1=E5=90=8C?= =?UTF-8?q?=E8=B4=B4=E5=90=A7=EF=BC=8C=E5=B8=96=E5=AD=90=E6=8E=92=E5=BA=8F?= =?UTF-8?q?=E6=B7=B7=E4=B9=B1=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/forums_controller.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/controllers/forums_controller.rb b/app/controllers/forums_controller.rb index 253e1d28d..2b44d51de 100644 --- a/app/controllers/forums_controller.rb +++ b/app/controllers/forums_controller.rb @@ -86,7 +86,7 @@ class ForumsController < ApplicationController order(sort_clause). preload(:author, {:last_reply => :author}). all - + @memos flash.now[:error] = "#{l :label_memo_create_fail}: #{@memo.errors.full_messages[0]}" # back_error_page = @memo.parent_id.nil? ? forum_path(@forum) : forum_memo_path(@forum, @memo.parent_id) format.html { render action: :show, layout: 'base_forums' }#, error: "#{l :label_memo_create_fail}: #{@memo.errors.full_messages[0]}" } @@ -122,14 +122,14 @@ class ForumsController < ApplicationController @topic_count = @forum.topics.count @topic_pages = Paginator.new @topic_count, per_page_option, params['page'] @memos = @forum.topics. - reorder("#{Memo.table_name}.sticky DESC"). + # reorder("#{Memo.table_name}.sticky DESC"). includes(:last_reply). limit(@topic_pages.per_page). offset(@topic_pages.offset). order(sort_clause). preload(:author, {:last_reply => :author}). all - + @memos # @offset, @limit = api_offset_and_limit({:limit => 10}) # @forum = Forum.find(params[:id]) # @memos_all = @forum.topics From 8d7faaced667e3e3c1964756482f2f5f297171f4 Mon Sep 17 00:00:00 2001 From: lizanle <491823689@qq.com> Date: Thu, 9 Jul 2015 14:32:10 +0800 Subject: [PATCH 045/444] =?UTF-8?q?=E7=99=BB=E5=BD=95api=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=20=E6=B4=BB=E8=B7=83=E5=80=BC=EF=BC=8C=E5=B9=B3=E5=9D=87?= =?UTF-8?q?=E6=88=90=E7=BB=A9=20=E6=98=AF=E5=90=A6=E5=8F=AF=E4=BB=A5?= =?UTF-8?q?=E5=8A=A0=E8=BD=BD=20=E9=9C=80=E8=A6=81=E8=AE=A1=E7=AE=97=20?= =?UTF-8?q?=E6=9C=80=E5=A4=A7=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/apis/auth.rb | 3 +- app/api/mobile/apis/courses.rb | 4 ++- app/services/courses_service.rb | 51 ++++++++++++++++++++++++--------- 3 files changed, 42 insertions(+), 16 deletions(-) diff --git a/app/api/mobile/apis/auth.rb b/app/api/mobile/apis/auth.rb index 9e4cb1bc6..9f89d56dc 100644 --- a/app/api/mobile/apis/auth.rb +++ b/app/api/mobile/apis/auth.rb @@ -26,7 +26,8 @@ module Mobile present :data, {token: key.access_token, user: api_user}, using: Entities::Auth present :status, 0 else - raise "无效的用户名或密码" + present :message, "无效的用户名或密码" + present :status,1 end end diff --git a/app/api/mobile/apis/courses.rb b/app/api/mobile/apis/courses.rb index 39d2ebe9d..57c1a8587 100644 --- a/app/api/mobile/apis/courses.rb +++ b/app/api/mobile/apis/courses.rb @@ -322,7 +322,9 @@ module Mobile get ':course_id/students_score_list' do cs = CoursesService.new news = cs.students_score_list params,current_user - present :data,news,with:Mobile::Entities::User + present :data,news[:user_list],with:Mobile::Entities::User + present :maxSize,news[:max_size] + present :status,0 end desc '课程某次作业提交列表 并显示成绩' diff --git a/app/services/courses_service.rb b/app/services/courses_service.rb index 00a8ffd8b..9be3a24cb 100644 --- a/app/services/courses_service.rb +++ b/app/services/courses_service.rb @@ -333,13 +333,13 @@ class CoursesService def homework_list params,current_user course = Course.find(params[:id]) if course.is_public != 0 || current_user.member_of_course?(course) - bids = course.homework_commons.page(1).per(20).order('created_at DESC') + bids = course.homework_commons.page(params[:page] || 1).per(20).order('created_at DESC') bids = bids.like(params[:name]) if params[:name].present? - homeworks = [] - bids.each do |bid| - homeworks << show_homework_info(course,bid,current_user,is_course_teacher(current_user,course)) - end - homeworks + homeworks = [] + bids.each do |bid| + homeworks << show_homework_info(course,bid,current_user,is_course_teacher(current_user,course)) + end + homeworks else raise '403' end @@ -552,17 +552,28 @@ class CoursesService else end end - studentlist = [] - bid.student_works.order("created_at desc").page(1).per(6).each do |work| - studentlist << work.user - end + # studentlist = [] + # bid.student_works.order("created_at desc").page(1).per(6).each do |work| + # studentlist << work.user + # end unless is_course_teacher homework_for_anonymous_comments = get_student_batch_homework_list bid,current_user end #end open_anonymous_evaluation = bid.homework_detail_manual.comment_status - {:course_name => course.name,:course_id => course.id,:id => bid.id, :author => bid.user,:author_real_name => author_real_name, :homework_times => many_times, :homework_name => name, :homework_count => homework_count,:student_questions_count => 0, - :description => description, :homework_state => state,:open_anonymous_evaluation => open_anonymous_evaluation,:homework_for_anonymous_comments => homework_for_anonymous_comments,:created_on => bid.created_at,:deadline => bid.end_time,:studentlist => studentlist} + {:course_name => course.name,:course_id => course.id,:id => bid.id, + :author => bid.user,:author_real_name => author_real_name, + :homework_times => many_times, :homework_name => name, + :homework_count => homework_count,:student_questions_count => 0, + :description => description, :homework_state => state, + :open_anonymous_evaluation => open_anonymous_evaluation, + :homework_for_anonymous_comments => homework_for_anonymous_comments, + :created_on => bid.created_at,:deadline => bid.end_time, + :homework_notsubmit_num => bid.course.members.count - bid.student_works.count, + :homework_submit_num => bid.student_works.count, + :homework_status_student => get_homework_status( bid),:homework_status_teacher => homework_status_desc( bid), + :student_evaluation_part => get_evaluation_part( bid ,3), + :ta_evaluation_part => get_evaluation_part( bid ,2),:homework_anony_type => bid.homework_type == 1 && !bid.homework_detail_manual.nil?} end @@ -720,20 +731,32 @@ class CoursesService # 获取课程历次作业的学生总成绩 def students_score_list params,current_user page = (params[:page] || 1) - 1 + user_list = [] + max_size = 0 if params[:type] == 1 homework_count = Course.find(params[:course_id]).homework_commons.count sql = "select users.*,sum(IFNULL(0,student_works.final_score))/#{homework_count} score from student_works left outer join users on student_works.user_id = users.id" << " where homework_common_id in ( select id from homework_commons where homework_commons.course_id = #{params[:course_id]}) GROUP BY student_works.user_id ORDER BY score limit #{page*10},10" - User.find_by_sql(sql) + sql_count = " select count(distinct(student_works.user_id) ) " << + " from student_works left outer join users on student_works.user_id = users.id " << + " where homework_common_id in " << + " ( select id from homework_commons where homework_commons.course_id = #{params[:course_id]}) " + max_size = ActiveRecord::Base.connection().select_value(sql_count) + user_list = User.find_by_sql(sql) else sql1 = " select users.*,count(author_id)*2 active_count from messages " << " LEFT JOIN users on messages.author_id = users.id " << " where messages.board_id in (select id from boards where boards.course_id = #{params[:course_id]} ) " << " GROUP BY messages.author_id ORDER BY count(author_id) desc " << " limit #{page*10},10" - User.find_by_sql(sql1) + sql1_count = " select count(DISTINCT(messages.author_id))" << + " from messages LEFT JOIN users on messages.author_id = users.id " << + " where messages.board_id in (select id from boards where boards.course_id = #{params[:course_id]} )" + max_size = ActiveRecord::Base.connection().select_value(sql1_count) + user_list = User.find_by_sql(sql1) end + {:user_list=>user_list,:max_size=>max_size} end # 获取某次作业的所有作业列表 From 8de307d198dbb9ec9f48dc136ffe603eb22bfe19 Mon Sep 17 00:00:00 2001 From: huang Date: Thu, 9 Jul 2015 14:36:59 +0800 Subject: [PATCH 046/444] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E8=B5=84=E6=BA=90?= =?UTF-8?q?=E5=BA=93=E5=8C=BA=E5=88=86=E2=80=9C=E9=A1=B9=E7=9B=AE=E5=86=85?= =?UTF-8?q?=E6=90=9C=E7=B4=A2=E2=80=9D=E5=92=8C=E2=80=9C=E5=85=A8=E7=AB=99?= =?UTF-8?q?=E6=90=9C=E7=B4=A2=E2=80=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/files/_project_file_new.html.erb | 2 +- app/views/forums/_show_topics.html.erb | 56 ++++++++-------- app/views/forums/show.html.erb | 74 +++++++++------------- public/stylesheets/project.css | 2 +- 4 files changed, 61 insertions(+), 73 deletions(-) diff --git a/app/views/files/_project_file_new.html.erb b/app/views/files/_project_file_new.html.erb index 878e6a75e..4ee1ccede 100644 --- a/app/views/files/_project_file_new.html.erb +++ b/app/views/files/_project_file_new.html.erb @@ -41,7 +41,7 @@
    <%= form_tag( search_project_project_files_path(@project), method: 'get',:class => "re_search f_l",:remote=>true) do %> <%= text_field_tag 'name', params[:name], name: "name", :class => 're_schbox',:style=>"padding: 0px"%> - <%= submit_tag "站内搜索", :class => "re_schbtn b_lblue",:name => "incourse",:id => "incourse", :onmouseover => "presscss('incourse')",:onmouseout =>"buttoncss()" %> + <%= submit_tag "项目内搜索", :class => "re_schbtn b_lblue",:name => "incourse",:id => "incourse", :onmouseover => "presscss('incourse')",:onmouseout =>"buttoncss()", :style =>"width:72px;" %> <%= submit_tag "全站搜索", :class => "re_schbtn b_lblue",:name => "insite",:id => "insite",:onmouseover => "presscss('insite')",:onmouseout =>"buttoncss()" %> <% end %> <% manage_allowed = User.current.allowed_to?(:manage_files, @project) %> diff --git a/app/views/forums/_show_topics.html.erb b/app/views/forums/_show_topics.html.erb index f46600a6c..f8679cefa 100644 --- a/app/views/forums/_show_topics.html.erb +++ b/app/views/forums/_show_topics.html.erb @@ -1,31 +1,31 @@
    共有 <%=link_to @forum.memos.count %> 个贴子
    -<% if memos.any? %> - <% memos.each do |topic| %> - - - - - -
    - <%= link_to image_tag(url_to_avatar(topic.author), :class => "avatar"), user_path(topic.author) if topic.author%> - - - + <% if memos.any? %> + <% memos.each do |topic| %> +
    + + + + + - - + + - -
    + <%= link_to image_tag(url_to_avatar(topic.author), :class => "avatar"), user_path(topic.author) if topic.author%> + + + - - +
    <%= link_to h(topic.subject), forum_memo_path(topic.forum, topic) %> - +
    - + - + -
    <%= link_to (topic.replies_count), forum_memo_path(topic.forum, topic) %><%= link_to (topic.replies_count), forum_memo_path(topic.forum, topic) %>
    回答回答
    <%= authoring topic.created_at, topic.author %> <% author = topic.last_reply.try(:author)%> @@ -35,14 +35,14 @@
    -
    - <% end %> - -<% else %> -

    <%= l(:label_no_data) %>

    -<% end %> +
  • + + + + <% end %> + + <% else %> +

    <%= l(:label_no_data) %>

    + <% end %>
    \ No newline at end of file diff --git a/app/views/forums/show.html.erb b/app/views/forums/show.html.erb index c105dc2b8..24aa74c23 100644 --- a/app/views/forums/show.html.erb +++ b/app/views/forums/show.html.erb @@ -1,54 +1,42 @@
    -

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

    - <% if User.current.logged? %> - <%= labelled_form_for(@memo, :url => create_memo_forum_path(@forum), :html => {:multipart => true} ) do |f| %> -
    - <%= hidden_field_tag :asset_id,params[:asset_id],:required => false,:style => 'display:none' %> -

    - <%= f.text_field :subject, :required => true, :maxlength => 50%> -

    -

    - <%= f.kindeditor :content, :required => true %> -

    - -

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

    -

    - <%= l(:label_attachment_plural) %> -
    - <%= render :partial => 'attachments/form', :locals => {:container => @memo} %> -

    -
    - <%= f.submit :value => l(:label_memo_create) %> - <%= link_to l(:button_cancel), "#", :onclick => '$("#add-memo").hide(); return false;' %> -
    - <% end %> -<% end %> +

    + <%=l(:label_memo_new)%> +

    + <% if User.current.logged? %> + <%= labelled_form_for(@memo, :url => create_memo_forum_path(@forum), :html => {:multipart => true} ) do |f| %> +
    + <%= hidden_field_tag :asset_id,params[:asset_id],:required => false,:style => 'display:none' %> +

    + <%= f.text_field :subject, :required => true, :maxlength => 50%> +

    +

    + <%= f.kindeditor :content, :required => true %> +

    + +

    + (<%= l(:label_memos_max_length) %>) +

    +

    + <%= l(:label_attachment_plural) %> +
    + <%= render :partial => 'attachments/form', :locals => {:container => @memo} %> +

    +
    + <%= f.submit :value => l(:label_memo_create) %> + <%= link_to l(:button_cancel), "#", :onclick => '$("#add-memo").hide(); return false;' %> +
    + <% end %> + <% end %>
    -<% #= link_to '发布帖子', new_forum_memo_path(@forum), :class => 'icon icon-add' %> - <%= link_to( - image_tag('edit.png')+l(:label_forum_edit), - {:action => 'edit', :id => @forum}, - :method => 'get', - :title => l(:button_edit) - ) if @forum.editable_by?(User.current) %> - <%= link_to( - image_tag('delete.png')+'删除讨论区', - {:action => 'destroy', :id => @forum}, - :method => :delete, - :data => {:confirm => l(:text_are_you_sure)}, - :title => l(:button_delete) + <%= link_to(image_tag('edit.png')+l(:label_forum_edit),{:action => 'edit', :id => @forum}, :method => 'get', :title => l(:button_edit)) if @forum.editable_by?(User.current) %> + <%= link_to(image_tag('delete.png')+'删除讨论区', {:action => 'destroy', :id => @forum}, :method => :delete, :data => {:confirm => l(:text_are_you_sure)}, :title => l(:button_delete) ) if @forum.destroyable_by?(User.current) %> <%= link_to l(:label_memo_new_from_forum), new_forum_memo_path(@forum), :class => 'icon icon-add', - :onclick => 'showAndScrollTo("add-memo", "memo_subject"); return false;' if User.current.logged? %> + :onclick => 'showAndScrollTo("add-memo", "memo_subject"); return false;' if User.current.logged? %> - <%= render :partial => 'forums/show_topics', :locals => {:memos => @memos} %> diff --git a/public/stylesheets/project.css b/public/stylesheets/project.css index 28399462d..673b1f59c 100644 --- a/public/stylesheets/project.css +++ b/public/stylesheets/project.css @@ -159,7 +159,7 @@ a:hover.c_dblue{ color: #0781b4;} .re_top input{ float:left;} .re_search{ margin-top:7px; margin-left:5px;} .re_schbox{ width:240px; height:24px; border:1px solid #64bdd9; color:#666666;} -.re_schbtn{ width:60px; height:26px; color:#fff; margin-right:5px; border:none; margin-left:0px; } +.re_schbtn{ width: 60px;height: 26px;color: #FFF;margin-right: 5px;margin-left: 0px;padding-left: 0px;border: medium none; } a.re_fabu { display:block; width:90px; height:30px; font-size:14px; color:#fff; text-align:center; padding-top:10px; } a:hover.re_fabu{background:#55a1b9;} .re_con{ margin:5px; width:665px;} From 49b1b11d7b491e97668d8c4b9cb719f705883b93 Mon Sep 17 00:00:00 2001 From: lizanle <491823689@qq.com> Date: Thu, 9 Jul 2015 14:57:27 +0800 Subject: [PATCH 047/444] =?UTF-8?q?=E5=8E=BB=E6=8E=89=E5=B7=B2=E7=BB=8F?= =?UTF-8?q?=E8=BF=87=E6=97=B6=E7=9A=84=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/services/courses_service.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/services/courses_service.rb b/app/services/courses_service.rb index 9be3a24cb..3fc9fb51c 100644 --- a/app/services/courses_service.rb +++ b/app/services/courses_service.rb @@ -556,9 +556,9 @@ class CoursesService # bid.student_works.order("created_at desc").page(1).per(6).each do |work| # studentlist << work.user # end - unless is_course_teacher - homework_for_anonymous_comments = get_student_batch_homework_list bid,current_user - end + # unless is_course_teacher + # homework_for_anonymous_comments = get_student_batch_homework_list bid,current_user + # end #end open_anonymous_evaluation = bid.homework_detail_manual.comment_status {:course_name => course.name,:course_id => course.id,:id => bid.id, @@ -567,7 +567,7 @@ class CoursesService :homework_count => homework_count,:student_questions_count => 0, :description => description, :homework_state => state, :open_anonymous_evaluation => open_anonymous_evaluation, - :homework_for_anonymous_comments => homework_for_anonymous_comments, + #:homework_for_anonymous_comments => homework_for_anonymous_comments, :created_on => bid.created_at,:deadline => bid.end_time, :homework_notsubmit_num => bid.course.members.count - bid.student_works.count, :homework_submit_num => bid.student_works.count, From 2b00f65f426b82759ea39c89237e7cecfcd14753 Mon Sep 17 00:00:00 2001 From: zhangshenjerry <1375181337@qq.com> Date: Thu, 9 Jul 2015 15:08:36 +0800 Subject: [PATCH 048/444] =?UTF-8?q?=E8=AF=BE=E7=A8=8B=E7=9A=84=E5=BC=80?= =?UTF-8?q?=E5=AD=A6=E5=AD=A6=E6=9C=9F=EF=BC=8C=E5=A2=9E=E5=8A=A0=EF=BC=9A?= =?UTF-8?q?=E5=A4=8F=E5=AD=A3=E5=AD=A6=E6=9C=9F=EF=BC=8C=E5=BF=AB=EF=BC=81?= =?UTF-8?q?=EF=BC=81=EF=BC=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/helpers/courses_helper.rb | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/app/helpers/courses_helper.rb b/app/helpers/courses_helper.rb index a0bd18582..a67259efd 100644 --- a/app/helpers/courses_helper.rb +++ b/app/helpers/courses_helper.rb @@ -520,10 +520,14 @@ module CoursesHelper option1 << l(:label_spring) option1 << l(:label_spring) option2 = [] - option2 << l(:label_autumn) - option2 << l(:label_autumn) + option2 << l(:label_summer) + option2 << l(:label_summer) + option3 = [] + option3 << l(:label_autumn) + option3 << l(:label_autumn) type << option1 type << option2 + type << option3 type end From 24d6c8e17e83b80d552864490b4dc9527a009831 Mon Sep 17 00:00:00 2001 From: sw <939547590@qq.com> Date: Thu, 9 Jul 2015 15:20:59 +0800 Subject: [PATCH 049/444] =?UTF-8?q?=E7=BC=96=E7=A8=8B=E4=BD=9C=E4=B8=9A?= =?UTF-8?q?=E8=A1=A8=E5=A2=9E=E5=8A=A0question=5Fid=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/migrate/20150709071731_add_question_id_to_homework.rb | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 db/migrate/20150709071731_add_question_id_to_homework.rb diff --git a/db/migrate/20150709071731_add_question_id_to_homework.rb b/db/migrate/20150709071731_add_question_id_to_homework.rb new file mode 100644 index 000000000..d1be59431 --- /dev/null +++ b/db/migrate/20150709071731_add_question_id_to_homework.rb @@ -0,0 +1,9 @@ +class AddQuestionIdToHomework < ActiveRecord::Migration + def up + add_column :homework_detail_programings, :question_id, :integer + end + + def down + remove_column :homework_detail_programings, :question_id + end +end From 5c011fd3429b6df35f1ee4178bf1e9291e7247ba Mon Sep 17 00:00:00 2001 From: yutao <283765470@qq.com> Date: Thu, 9 Jul 2015 15:27:49 +0800 Subject: [PATCH 050/444] =?UTF-8?q?=E4=B8=AA=E4=BA=BA=E4=B8=BB=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/my_controller.rb | 24 + app/controllers/users_controller.rb | 287 +++- app/controllers/watchers_controller.rb | 7 +- app/helpers/users_helper.rb | 155 +++ app/views/avatar/upload.js.erb | 6 +- app/views/courses/finishcourse.js.erb | 10 +- app/views/layouts/_base_footer_new.html.erb | 13 + app/views/layouts/_base_header_new.html.erb | 76 + app/views/layouts/_user_fans_list.html.erb | 12 + app/views/layouts/_user_watch_btn.html.erb | 8 + app/views/layouts/_user_watch_list.html.erb | 11 + app/views/layouts/base_users_new.html.erb | 337 +++++ app/views/my/account.html.erb | 1233 +++++++---------- app/views/my/clear_user_avatar_temp.js.erb | 7 + app/views/my/save_user_avatar.js.erb | 2 + app/views/users/_course_form.html.erb | 118 +- app/views/users/_user_fans_item.html.erb | 50 + app/views/users/show.html.erb | 950 ++++--------- .../users/user_course_activities.html.erb | 12 + app/views/users/user_courses.html.erb | 62 +- app/views/users/user_courses4show.html.erb | 14 + app/views/users/user_fanslist.html.erb | 74 +- app/views/users/user_feedback4show.html.erb | 22 + app/views/users/user_projects.html.erb | 118 +- app/views/users/user_projects4show.html.erb | 14 + app/views/watchers/_set_watcher.js.erb | 63 +- app/views/words/destroy.js.erb | 6 + config/routes.rb | 7 + public/images/pic_uersall.png | Bin 0 -> 9946 bytes public/stylesheets/leftside_new.css | 66 + public/stylesheets/public_new.css | 430 ++++++ public/stylesheets/users.css | 127 ++ 32 files changed, 2669 insertions(+), 1652 deletions(-) create mode 100644 app/views/layouts/_base_footer_new.html.erb create mode 100644 app/views/layouts/_base_header_new.html.erb create mode 100644 app/views/layouts/_user_fans_list.html.erb create mode 100644 app/views/layouts/_user_watch_btn.html.erb create mode 100644 app/views/layouts/_user_watch_list.html.erb create mode 100644 app/views/layouts/base_users_new.html.erb create mode 100644 app/views/my/clear_user_avatar_temp.js.erb create mode 100644 app/views/my/save_user_avatar.js.erb create mode 100644 app/views/users/_user_fans_item.html.erb create mode 100644 app/views/users/user_course_activities.html.erb create mode 100644 app/views/users/user_courses4show.html.erb create mode 100644 app/views/users/user_feedback4show.html.erb create mode 100644 app/views/users/user_projects4show.html.erb create mode 100644 public/images/pic_uersall.png create mode 100644 public/stylesheets/leftside_new.css create mode 100644 public/stylesheets/public_new.css create mode 100644 public/stylesheets/users.css diff --git a/app/controllers/my_controller.rb b/app/controllers/my_controller.rb index 69d8bc3a6..84e2e7d35 100644 --- a/app/controllers/my_controller.rb +++ b/app/controllers/my_controller.rb @@ -25,6 +25,7 @@ class MyController < ApplicationController helper :issues helper :users helper :custom_fields + helper :user_score BLOCKS = { 'issuesassignedtome' => :label_assigned_to_me_issues, 'issuesreportedbyme' => :label_reported_issues, @@ -88,6 +89,23 @@ class MyController < ApplicationController end end + def clear_user_avatar_temp + @user = User.current + diskfile = disk_filename('User', @user.id) + diskfile1 = diskfile + 'temp' + File.delete(diskfile1) if File.exist?(diskfile1) + end + def save_user_avatar + @user = User.current + diskfile = disk_filename('User', @user.id) + diskfile1 = diskfile + 'temp' + begin + FileUtils.mv diskfile1, diskfile, force: true if File.exist? diskfile1 + ensure + File.delete(diskfile1) if File.exist?(diskfile1) + end + end + # Edit user's account def account @user = User.current @@ -119,6 +137,8 @@ class MyController < ApplicationController @se.identity = params[:identity].to_i if params[:identity] @se.technical_title = params[:technical_title] if params[:technical_title] @se.student_id = params[:no] if params[:no] + @se.brief_introduction = params[:brief_introduction] + @se.description = params[:description] if @user.save && @se.save # 头像保存 @@ -137,6 +157,7 @@ class MyController < ApplicationController File.delete(diskfile1) if File.exist?(diskfile1) end + render :layout=>'base_users_new' end # Destroys user's account @@ -159,6 +180,7 @@ class MyController < ApplicationController # Manage user's password def password + @act='password' @user = User.current unless @user.change_password_allowed? flash.now[:error] = l(:notice_can_t_change_password) @@ -178,12 +200,14 @@ class MyController < ApplicationController flash.now[:error] = l(:notice_account_wrong_password) end end + render :template => 'my/account',:layout=>'base_users_new' rescue Exception => e if e.message == 'wrong password' flash.now[:error] = l(:notice_account_wrong_password) else flash.now[:error] = e.message end + render :template => 'my/account',:layout=>'base_users_new' end # Create a new feeds key diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 23053a48e..b02ebd7e5 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -39,13 +39,15 @@ class UsersController < ApplicationController before_filter :require_admin, :except => [:show, :index, :search, :tag_save, :tag_saveEx,:user_projects, :user_newfeedback, :user_comments, :watch_contests, :info, :user_watchlist, :user_fanslist,:update, :user_courses, :user_homeworks, :watch_projects, :show_score, :topic_score_index, :project_score_index, :activity_score_index, :influence_score_index, :score_index,:show_new_score, :topic_new_score_index, :project_new_score_index, - :activity_new_score_index, :influence_new_score_index, :score_new_index,:update_score,:user_activities,:user_projects_index] + :activity_new_score_index, :influence_new_score_index, :score_new_index,:update_score,:user_activities,:user_projects_index, + :user_courses4show,:user_projects4show,:user_course_activities,:user_project_activities,:user_feedback4show] #edit has been deleted by huang, 2013-9-23 before_filter :find_user, :only => [:user_fanslist, :user_watchlist, :show, :edit, :update, :destroy, :edit_membership, :user_courses, :user_homeworks, :destroy_membership, :user_activities, :user_projects, :user_newfeedback, :user_comments, :watch_contests, :info, :watch_projects, :show_score, :topic_score_index, :project_score_index, :activity_score_index, :influence_score_index, :score_index,:show_new_score, :topic_new_score_index, :project_new_score_index, - :activity_new_score_index, :influence_new_score_index, :score_new_index,:user_projects_index] + :activity_new_score_index, :influence_new_score_index, :score_new_index,:user_projects_index, + :user_courses4show,:user_projects4show,:user_course_activities,:user_project_activities,:user_feedback4show] before_filter :auth_user_extension, only: :show #before_filter :rest_user_score, only: :show #before_filter :select_entry, only: :user_projects @@ -76,6 +78,8 @@ class UsersController < ApplicationController # fq helper :words + helper :project_score + include UsersHelper def refresh_changests if !(@user.nil?) && !(@user.memberships.nil?) @@ -104,27 +108,41 @@ class UsersController < ApplicationController #added by young def user_projects - - if User.current.admin? - @memberships = @user.memberships.all(conditions: "projects.project_type = #{Project::ProjectType_project}") - else - cond = Project.visible_condition(User.current) + " AND projects.project_type <> 1" - @memberships = @user.memberships.all(:conditions => cond) - end - #events = Redmine::Activity::Fetcher.new(User.current, :author => @user).events(nil, nil, :limit => 20) - #@events_by_day = events.group_by(&:event_date) - @state = 0 - #add by huang + + #add by huang unless User.current.admin? if !@user.active? #|| (@user != User.current && @memberships.empty? && events.empty?) render_404 - return + return end end - #end - + #end + # if User.current.admin? + # @memberships = @user.memberships.all(conditions: "projects.project_type = #{Project::ProjectType_project}") + # else + # cond = Project.visible_condition(User.current) + " AND projects.project_type <> 1" + # @memberships = @user.memberships.all(:conditions => cond) + # end + #events = Redmine::Activity::Fetcher.new(User.current, :author => @user).events(nil, nil, :limit => 20) + #@events_by_day = events.group_by(&:event_date) + # @state = 0 + + limit = 10; + query = Project.joins("join members m on #{Project.table_name}.id=m.project_id") + query = query.where("m.user_id = ?",@user.id) + if(params[:status] == '1') + query = query.where("#{Project.table_name}.user_id = ?",@user.id); + elsif(params[:status] == '2') + query = query.where("#{Project.table_name}.user_id <> ?",@user.id); + end + @obj_count = query.count(); + + @obj_pages = Paginator.new @obj_count,limit,params['page'] + @list = query.order("#{Project.table_name}.id desc").limit(limit).offset(@obj_pages.offset).all(); + @params = params + respond_to do |format| - format.html + format.html{render :layout=>'base_users_new'} format.api end end @@ -237,44 +255,59 @@ class UsersController < ApplicationController include CoursesHelper - def user_courses + def user_courses unless User.current.admin? if !@user.active? #|| (@user != User.current && @memberships.empty? && events.empty?) render_404 - return + return end end - + #@user.coursememberships.all(:conditions => Course.visible_condition(User.current)) - if User.current == @user || User.current.admin? - membership = @user.coursememberships.all - else - membership = @user.coursememberships.all(:conditions => Course.visible_condition(User.current)) - end - - membership.sort! {|older, newer| newer.created_on <=> older.created_on } - @memberships = [] - membership.collect { |e| - @memberships.push(e) - } - ## 判断课程是否过期 [需封装] - @memberships_doing = [] - @memberships_done = [] - #now_time = Time.now.year - @memberships.map { |e| - #end_time = e.course.get_time.year - isDone = course_endTime_timeout?(e.course) - if isDone - @memberships_done.push e - else - @memberships_doing.push e - end - } + limit = 10; + query = Course.joins("join members m on #{Course.table_name}.id=m.course_id") + query = query.where("m.user_id = ?",@user.id) + if(params[:status] == '1') + query = query.where("endup_time >= ? or endup_time is null or endup_time=''",Time.now); + elsif(params[:status] == '2') + query = query.where("endup_time < ?",Time.now); + end + @obj_count = query.count(); + + @obj_pages = Paginator.new @obj_count,limit,params['page'] + @list = query.order("#{Course.table_name}.id desc").limit(limit).offset(@obj_pages.offset).all(); + @params = params + render :layout=>'base_users_new' + + # if User.current == @user || User.current.admin? + # membership = @user.coursememberships.all + # else + # membership = @user.coursememberships.all(:conditions => Course.visible_condition(User.current)) + # end + # + # membership.sort! {|older, newer| newer.created_on <=> older.created_on } + # @memberships = [] + # membership.collect { |e| + # @memberships.push(e) + # } + # ## 判断课程是否过期 [需封装] + # @memberships_doing = [] + # @memberships_done = [] + # #now_time = Time.now.year + # @memberships.map { |e| + # #end_time = e.course.get_time.year + # isDone = course_endTime_timeout?(e.course) + # if isDone + # @memberships_done.push e + # else + # @memberships_doing.push e + # end + # } # respond_to do |format| - # format.html - # format.api + # format.html + # format.api # end end @@ -408,8 +441,149 @@ class UsersController < ApplicationController format.api end end - + + def user_courses4show + query = Course.joins("join members m on #{Course.table_name}.id=m.course_id") + query = query.where("m.user_id = ?",@user.id) + if User.current == @user #看自己 + else + if @user.user_extensions!=nil && @user.user_extensions.identity == 0 #看老师 + query = query.joins("join member_roles r on m.id = r.member_id") + query = query.where("r.role_id in(7,9)") + end + query = query.where(Course.table_name+".is_public = 1") + # TODO or exists (select 1 from courses c2,members m2 where c2.id=m2.course_id and c2.id=#{Course.table_name}.id and m2.user_id= User.current.id) + end + + if params[:lastid]!=nil && !params[:lastid].empty? + query = query.where("#{Course.table_name}.id < ?",params[:lastid]) + end + @list = query.order("#{Course.table_name}.id desc").limit(8).all + + render :layout=>nil + end + def user_projects4show + + query = Project.joins("join members m on #{Project.table_name}.id=m.project_id") + query = query.where("m.user_id = ?",@user.id) + if User.current == @user #看自己 + else + query = query.where(Project.table_name+".is_public = 1") + # TODO or exists (select 1 from project c2,members m2 where c2.id=m2.course_id and c2.id=#{Project.table_name}.id and m2.user_id= User.current.id) + end + + if params[:lastid]!=nil && !params[:lastid].empty? + query = query.where("#{Project.table_name}.id < ?",params[:lastid]) + end + @list = query.order("#{Project.table_name}.id desc").limit(8).all + + render :layout=>nil + end + + def user_course_activities + @list = [] + lastid = nil + if params[:lastid]!=nil && !params[:lastid].empty? + lastid = params[:lastid]; + end + + user_ids = [] + if @user == User.current + watcher = User.watched_by(@user) + watcher.push(User.current) + user_ids = watcher.map{|x| x.id} + else + user_ids << @user.id + end + + query_rec_count = 8 + query_times = 10 #query_times次没查到query_rec_count条记录就不查了 + query_i = 0; + while( true ) + query_i = query_i+1 + if(query_i>query_times) + break + end + query = Activity.where(user_id: user_ids) + if(lastid != nil) + query = query.where("id < ?",lastid) + end + lastid,item_list = query_activities(query,'course'); + for item in item_list + @list << item + if @list.count() >= query_rec_count + break + end + end + if @list.count() >= query_rec_count + break + end + if lastid == nil + break + end + end + render :layout=>nil + end + + def user_project_activities + @list = [] + lastid = nil + if params[:lastid]!=nil && !params[:lastid].empty? + lastid = params[:lastid]; + end + + user_ids = [] + if @user == User.current + watcher = User.watched_by(@user) + watcher.push(User.current) + user_ids = watcher.map{|x| x.id} + else + user_ids << @user.id + end + + query_rec_count = 8 + query_times = 10 #query_times次没查到query_rec_count条记录就不查了 + query_i = 0; + while( true ) + query_i = query_i+1 + if(query_i>query_times) + break + end + query = Activity.where(user_id: user_ids) + if(lastid != nil) + query = query.where("id < ?",lastid) + end + lastid,item_list = query_activities(query,'project'); + for item in item_list + @list << item + if @list.count() >= query_rec_count + break + end + end + if @list.count() >= query_rec_count + break + end + if lastid == nil + break + end + end + render :action=>'user_course_activities',:layout=>nil + end + + def user_feedback4show + query = @user.journals_for_messages + if params[:lastid]!=nil && !params[:lastid].empty? + query = query.where("#{JournalsForMessage.table_name}.id < ?",params[:lastid]) + end + @list = query.order("#{JournalsForMessage.table_name}.id desc").limit(3).all + render :layout=>nil + end + def show + render :layout=>'base_users_new' + end + + def show_old pre_count = 10 #limit # Time 2015-02-04 11:46:34 # Author lizanle @@ -830,11 +1004,24 @@ class UsersController < ApplicationController end end ###add by huang - def user_watchlist + def user_watchlist + limit = 10; + query = User.watched_by(@user.id); + @obj_count = query.count(); + @obj_pages = Paginator.new @obj_count,limit,params['page'] + @list = query.order("#{Watcher.table_name}.id desc").limit(limit).offset(@obj_pages.offset).all(); + + render :template=>'users/user_fanslist',:layout=>'base_users_new' end ###add by huang - def user_fanslist - + def user_fanslist + limit = 10; + query = @user.watcher_users; + @obj_count = query.count(); + @obj_pages = Paginator.new @obj_count,limit,params['page'] + @list = query.order("#{Watcher.table_name}.id desc").limit(limit).offset(@obj_pages.offset).all(); + @action = 'fans' + render :layout=>'base_users_new' end #william diff --git a/app/controllers/watchers_controller.rb b/app/controllers/watchers_controller.rb index f6d01a03d..3727a974e 100644 --- a/app/controllers/watchers_controller.rb +++ b/app/controllers/watchers_controller.rb @@ -16,12 +16,15 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. class WatchersController < ApplicationController before_filter :require_login#, :find_watchables, :only => [:watch, :unwatch] + + helper :users + def watch s = WatchesService.new watchables = s.watch params.merge(:current_user_id => User.current.id) respond_to do |format| format.html { redirect_to_referer_or {render :text => (true ? 'Watcher added.' : 'Watcher removed.'), :layout => true}} - format.js { render :partial => 'set_watcher', :locals => {:user => User.current, :watched => watchables} } + format.js { render :partial => 'set_watcher', :locals => {:user => User.current, :watched => watchables,:params=>params,:opt=>'add'} } end rescue Exception => e if e.message == "404" @@ -37,7 +40,7 @@ class WatchersController < ApplicationController watchables = s.unwatch params.merge(:current_user_id => User.current.id) respond_to do |format| format.html { redirect_to_referer_or {render :text => (false ? 'Watcher added.' : 'Watcher removed.'), :layout => true}} - format.js { render :partial => 'set_watcher', :locals => {:user => User.current, :watched => watchables} } + format.js { render :partial => 'set_watcher', :locals => {:user => User.current, :watched => watchables,:params=>params,:opt=>'add'} } end rescue Exception => e if e.message == "404" diff --git a/app/helpers/users_helper.rb b/app/helpers/users_helper.rb index af2d5abc4..8a373edab 100644 --- a/app/helpers/users_helper.rb +++ b/app/helpers/users_helper.rb @@ -303,4 +303,159 @@ module UsersHelper end end end + + def get_watcher_users(obj) + count = User.watched_by(obj.id).count + if count == 0 + return [0,[]] + end + list = User.watched_by(obj.id).order("#{Watcher.table_name}.id desc").limit(10).all + return [count,list]; + end + + def get_fans_users(obj) + count = obj.watcher_users.count + if count == 0 + return [0,[]] + end + list = obj.watcher_users.order("#{Watcher.table_name}.id desc").limit(10).all + return [count,list]; + end + + def query_activities(query,type) + query_rec_count = 50 + #query = query.where("act_type not in ('Contest','Contestnotifications','Principal')") + query = query.where("act_type='JournalsForMessage'") + #query = query.where("act_type not in (?)", ['JournalsForMessage','Message','HomeworkCommon','News','Issue','Journal','Poll']) + list = query.order("id desc").limit(query_rec_count).all + if( list == nil || list.count() < query_rec_count ) + lastid = nil + else + lastid = list.last.id + end + + result = []; + for item in list + container = get_activity_container(item,type) + if( activity_is_show(item,container) ) + result << { :item=>item,:e=>container } + end + end + return [lastid,result] + end + def get_activity_container activity,type + e = nil; + if type == 'project' + if activity.act_type == 'Poll' + # 项目没有问卷 + # e = Project.find_by_id(activity.act.polls_group_id) + else + e = activity.act.project if activity.act.respond_to?('project') + end + end + if type == 'course' + if activity.act_type == 'Poll' + e = Course.find_by_id(activity.act.polls_group_id) + else + e = activity.act.course if activity.act.respond_to?('course') + end + end + + return e; + end + def activity_is_show(activity,e) + if(!e) + return false + end + + if activity.user_id == User.current.id + return true + end + if( e.visible? ) + return true + end + return false + end + def get_activity_act_showname(activity) + case activity.act_type + when "HomeworkCommon" + return activity.act.name + when "Issue" + return activity.act.subject + when "Journal" + return activity.act.notes + when "JournalsForMessage" + return activity.act.notes + when "Message" + return activity.act.subject + when "News" + return activity.act.title + when "Poll" + return activity.act.polls_name + when "Contest" + return '' + when "Contestnotification" + return '' + when "Principal" + return '' + else + return activity.act_type + end + end + def get_activity_act_createtime(activity) + case activity.act_type + when "HomeworkCommon" + return activity.act.created_at + when "Poll" + return activity.act.created_at + else + return activity.act.created_on + end + end + def get_activity_url(activity,e) + case activity.act_type + # when "Contest" + # when "Contestnotification" + # when "Principal" + when "HomeworkCommon" + return homework_common_index_path( :course=>e.id ) + when "Issue" + return issue_path(activity.act.id) + when "Journal" + return issue_path( activity.act.journalized_id ) + when "JournalsForMessage" + return e.class.to_s == 'Course' ? course_feedback_path(e) : project_feedback_path(e) + when "Message" + return e.class.to_s == 'Course' ? course_boards_path(e) : project_boards_path(e) + when "News" + return news_path(activity.act) + #return e.class.to_s == 'Course' ? course_news_index_path(e) : project_news_index_path(e) + when "Poll" + return poll_index_path( :polls_group_id=>activity.act.polls_group_id, :polls_type=>e.class.to_s ) + else + return 'javascript:;' + end + end + def get_activity_opt(activity,e) + case activity.act_type + when "HomeworkCommon" + return '创建了作业' + when "News" + return e.class.to_s == 'Course' ? '发布了通知' : '添加了新闻' + when "Issue" + return '发表了问题' + when "Journal" + return '回复了问题' + when "JournalsForMessage" + return e.class.to_s == 'Course' ? '发表了留言' : '提交了反馈' + #return ( activity.act.reply_id == nil || activity.act.reply_id == 0 ) ? '' : '' + when "Message" + return ( activity.act.parent_id == nil || activity.act.parent_id == '' ) ? '发布了帖子' : '回复了帖子' + when "Poll" + return '发布了问卷' + else + return '有了新动态' + end + end + end diff --git a/app/views/avatar/upload.js.erb b/app/views/avatar/upload.js.erb index 1fa90c5a3..41cf3ab77 100644 --- a/app/views/avatar/upload.js.erb +++ b/app/views/avatar/upload.js.erb @@ -1,4 +1,8 @@ +<% if @source_type=='User' %> +var imgSpan = $("img[nhname='avatar_image']"); +imgSpan.attr({"src":'<%= "#{@urlfile.to_s}?#{Time.now.to_i}" %>'}); +<% else %> var imgSpan = jQuery('#avatar_image'); imgSpan.attr({"src":'<%= "#{@urlfile.to_s}?#{Time.now.to_i}" %>'}); - +<% end %> \ No newline at end of file diff --git a/app/views/courses/finishcourse.js.erb b/app/views/courses/finishcourse.js.erb index 2399062fd..0ca89aa19 100644 --- a/app/views/courses/finishcourse.js.erb +++ b/app/views/courses/finishcourse.js.erb @@ -1,8 +1,8 @@ <% if @save_flag %> - $('#finish_course_<%=@course.id%>').replaceWith("<%= escape_javascript(set_course_time(@course_prefs))%>"); +$('#finish_course_<%=@course.id%>').replaceWith("<%= escape_javascript(set_course_time(@course_prefs))%>"); +var html = "<%= escape_javascript( render( :partial => 'users/course_form', :locals => {:item => @course_prefs} ) )%>"; +$('#nh_course_<%=@course.id%>').replaceWith(html); // alert("关闭成功"); <% else %> - alert('权限不足,设置失败,请在论坛提交问题,等待管理员处理。'); -<% end %> - - +alert('权限不足,设置失败,请在论坛提交问题,等待管理员处理。'); +<% end %> \ No newline at end of file diff --git a/app/views/layouts/_base_footer_new.html.erb b/app/views/layouts/_base_footer_new.html.erb new file mode 100644 index 000000000..b4856d2af --- /dev/null +++ b/app/views/layouts/_base_footer_new.html.erb @@ -0,0 +1,13 @@ + \ No newline at end of file diff --git a/app/views/layouts/_base_header_new.html.erb b/app/views/layouts/_base_header_new.html.erb new file mode 100644 index 000000000..63e221cca --- /dev/null +++ b/app/views/layouts/_base_header_new.html.erb @@ -0,0 +1,76 @@ + +
    \ No newline at end of file diff --git a/app/views/layouts/_user_fans_list.html.erb b/app/views/layouts/_user_fans_list.html.erb new file mode 100644 index 000000000..8c39c528c --- /dev/null +++ b/app/views/layouts/_user_fans_list.html.erb @@ -0,0 +1,12 @@ + <% fans_count,fans_list = get_fans_users(user) %> +
    +

    粉丝

    更多 +
    +
    + <% for fans in fans_list %> + <%= link_to image_tag(url_to_avatar(fans), :style => "width:38px;height:38px;"), user_path(fans), :class => "pic_members", :title => "#{fans.name}" %> + <% end %> +
    +
    +
    + \ No newline at end of file diff --git a/app/views/layouts/_user_watch_btn.html.erb b/app/views/layouts/_user_watch_btn.html.erb new file mode 100644 index 000000000..71eea7166 --- /dev/null +++ b/app/views/layouts/_user_watch_btn.html.erb @@ -0,0 +1,8 @@ +<% if(User.current.logged? && User.current!=target)%> + <%if(target.watched_by?(User.current))%> + 取消 + <% else %> + 关注 + <% end %> +<% end %> \ No newline at end of file diff --git a/app/views/layouts/_user_watch_list.html.erb b/app/views/layouts/_user_watch_list.html.erb new file mode 100644 index 000000000..00c0cdc40 --- /dev/null +++ b/app/views/layouts/_user_watch_list.html.erb @@ -0,0 +1,11 @@ + <% watcher_count,watcher_list = get_watcher_users(user) %> +
    +

    关注

    更多 +
    +
    + <% for watcher in watcher_list %> + <%= link_to image_tag(url_to_avatar(watcher), :style => "width:38px;height:38px;"), user_path(watcher), :class => "pic_members", :title => "#{watcher.name}" %> + <% end %> +
    +
    +
    \ No newline at end of file diff --git a/app/views/layouts/base_users_new.html.erb b/app/views/layouts/base_users_new.html.erb new file mode 100644 index 000000000..8911df5ce --- /dev/null +++ b/app/views/layouts/base_users_new.html.erb @@ -0,0 +1,337 @@ +<% @nav_dispaly_home_path_label = 1 + @nav_dispaly_main_course_label = 1 + @nav_dispaly_main_project_label = 1 + @nav_dispaly_main_contest_label = 1 %> +<% @nav_dispaly_forum_label = 1%> +<% @nav_dispaly_user_label = show_item_on_navbar(params) %> +<% @center_flag = (User.current == @user) %> + + + + +<%= h html_title %> + + +<%= csrf_meta_tag %> +<%= favicon %> +<%= stylesheet_link_tag 'jquery/jquery-ui-1.9.2', 'public_new', 'leftside_new','users', :media => 'all' %> +<%= stylesheet_link_tag 'rtl', :media => 'all' if l(:direction) == 'rtl' %> +<%= javascript_heads %> +<%= heads_for_theme %> +<%= call_hook :view_layouts_base_html_head %> + +<%= yield :header_tags -%> + + + + + + + +
    + <%= render :partial => 'layouts/base_header_new'%> + +
    + +
    +
    +
    + +
    + <%=link_to @user.name, user_path(@user),:class=>"fl c_dark fb f14" %> + <% if (@user.user_extensions && (@user.user_extensions.identity != 2) ) %> + + <% end %> + + <%= render :partial => 'layouts/user_watch_btn', :locals => {:target => @user} %> +
    +
    + +
    + <%=l(:label_user_watcher)%>(<%= link_to User.watched_by(@user.id).count.to_s, {:controller=>"users", :action=>"user_watchlist",:id=>@user.id},:class=>"c_blue",:nh_name=>"watcher_count" %>) + + <%=l(:label_x_user_fans, :count => User.current.watcher_users(User.current.id).count)%>(<%= link_to @user.watcher_users.count.to_s, {:controller=>"users", :action=>"user_fanslist",:id=>@user.id},:class=>"c_blue",:nh_name=>"fans_count"%>) + 积分(<%= link_to(format("%.2f" ,get_option_number(@user,1).total_score ).to_i, + {:controller => 'users', :action => 'show_new_score', :remote => true, :id => @user.id }, :class => 'c_blue',:id => 'user_score') %>) +
    +
    + <% if (@user.user_extensions) %> +
    <%= @user.user_extensions.brief_introduction %>
    + <% end %> +
    + +
    +
      +
    • 加入时间 :
    • + <% if @user.user_extensions!=nil && @user.user_extensions.identity == 2 %> +
    • <%= l(:label_company_name) %> :
    • + <% elsif !@user.firstname.empty? || !@user.lastname.empty? %> +
    • 真实姓名 :
    • + <% end %> + <% unless @user.user_extensions.nil? %> + <% if @user.user_extensions.identity == 0 %> +
    • 职称 :
    • + <% end %> + <% if @user.user_extensions && @user.user_extensions.location && !@user.user_extensions.location.empty?%> +
    • 地区 :
    • + <% end %> + <% if (@user.user_extensions.identity == 0 || @user.user_extensions.identity == 1) && !@user.user_extensions.school.nil? %> +
    • 工作单位 :
    • + <% elsif @user.user_extensions.identity == 3 && !@user.user_extensions.occupation.nil? && !@user.user_extensions.occupation.empty? %> +
    • 工作单位 :
    • + <% elsif @user.user_extensions.identity == 2 %> +
    • 工作单位 :
    • + <% end %> + <% if (!@user.user_extensions.description.nil? && !@user.user_extensions.description.empty?) %> +
    • 个人简介 :
    • + <% end %> + <% end %> +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <% if @center_flag %> + + <% end %> +
    + + <%= render :partial => 'layouts/user_watch_list', :locals => {:user => @user} %> + <%= render :partial => 'layouts/user_fans_list', :locals => {:user => @user} %> + + + + + + + + + + + + + + + + + +
    + + <%= yield %> + +
    +
    + + <%= render :partial => 'layouts/base_footer_new'%> +
    +
    + +<%= render :partial => 'layouts/new_feedback' %> + + +<%= javascript_include_tag '/javascripts/avatars.js' %> + + + + diff --git a/app/views/my/account.html.erb b/app/views/my/account.html.erb index 6c0c3a78a..377844a33 100644 --- a/app/views/my/account.html.erb +++ b/app/views/my/account.html.erb @@ -1,743 +1,524 @@ -<% @nav_dispaly_home_path_label = 1 - @nav_dispaly_main_course_label = 1 - @nav_dispaly_main_project_label = 1 - @nav_dispaly_main_contest_label = 1 %> -<% @nav_dispaly_forum_label = 1%> - - - - -
    - <%= link_to(l(:button_change_password), {:action => 'password'}, :class => 'icon icon-passwd') if @user.change_password_allowed? %> - <%= call_hook(:view_my_account_contextual, :user => @user) %> -
    - -

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

    -<%= error_messages_for 'user' %> -
    -<%= labelled_form_for :user, @user, - :url => {:action => "account"}, - :html => {:id => 'my_account_form', - - :method => :post} do |f| %> - - +
    - +
    + +

    <%= l(:lable_school_list)%>

    +    +
    +
      + <% @ss = School.find_by_sql("select distinct province from schools") %> + <% @ss.each do |s| %> +
    • + <%= s.province %> + +
    • + <% end %> +
    +
    + +
    +
      + +
    +
    +
    - - - - - +<%= stylesheet_link_tag 'nyan' %> +<%= javascript_include_tag '/javascripts/jquery.leanModal.min.js' %> +<% if !User.current.user_extensions.nil? %> + <% province = User.current.user_extensions.location %> + <% city = User.current.user_extensions.location_city %> + <% identity = User.current.user_extensions.identity %> + <% occupation1 = User.current.user_extensions.occupation %> + <% occupation = User.current.user_extensions.occupation %> + <% title = User.current.user_extensions.technical_title %> + <% language = User.current.language %> +<% else %> + <% province = "湖南省" %> + <% city = "长沙"%> + <% identity = ""%> + <% occupation1 = ""%> + <% title = "" %> + <% language = ""%> <% end %> -<% html_title(l(:label_my_account)) -%> - + \ No newline at end of file diff --git a/app/views/my/clear_user_avatar_temp.js.erb b/app/views/my/clear_user_avatar_temp.js.erb new file mode 100644 index 000000000..39ff71f6c --- /dev/null +++ b/app/views/my/clear_user_avatar_temp.js.erb @@ -0,0 +1,7 @@ + $("img[nhname='avatar_image']").attr('src',$("#nh_user_tx").attr('src')); + $('#ajax-modal').html($("#nh_tx_dialog_html").html()); + showModal('ajax-modal','460px'); + $('#ajax-modal').siblings().remove(); + $('#ajax-modal').parent().removeClass("alert_praise"); + //$('#ajax-modal').parent().css("top","").css("left",""); + $('#ajax-modal').parent().addClass("alert_box"); \ No newline at end of file diff --git a/app/views/my/save_user_avatar.js.erb b/app/views/my/save_user_avatar.js.erb new file mode 100644 index 000000000..ce4bae501 --- /dev/null +++ b/app/views/my/save_user_avatar.js.erb @@ -0,0 +1,2 @@ +$("#nh_user_tx").replaceWith('<%= image_tag(url_to_avatar(@user), :id=>'nh_user_tx',:style=>"width:216px;height:216px;",:alt=>"头像") %>'); +hideModal(); \ No newline at end of file diff --git a/app/views/users/_course_form.html.erb b/app/views/users/_course_form.html.erb index 82b69ab63..a417c463f 100644 --- a/app/views/users/_course_form.html.erb +++ b/app/views/users/_course_form.html.erb @@ -1,74 +1,46 @@ -
    -
      - <% for membership in memberships %> -
    • - - - - - -
      - <%= image_tag(url_to_avatar(membership.course), :class => 'avatar') %> - - - - - - - - - - - -
      - - <%= link_to_course(membership.course) %> - - - <%= render :partial => 'courses/set_course_time', :locals => {:course => membership.course} %> - <% if (User.current == @user && (!@user.allowed_to?(:as_teacher,membership.course)))%> - <%= join_in_course(membership.course, User.current) %> - <% end %> - -      - <%= l(:label_x_base_courses_member, :count => membership.course.members.count) %> - (<%= "#{membership.course.members.count}" %>) -    - <%= l(:label_homework) %> - ( - - <%= link_to (membership.course.homework_commons.count), homework_common_index_path(:course => membership.course.id) %> - - ) -    - <%= l(:label_course_news) %> - ( - - <%= link_to (membership.course.news.count), {:controller => 'news', :action => 'index', :course_id => membership.course.id} %> - ) - -
      -

      - <%= textilizable membership.course.short_description %> -

      -
      - - <% @course = Course.find_by_extra(membership.course.extra) %> - <% unless (@course.nil? || @course.teacher.nil? || @course.teacher.name.nil?) %> - - <%= l(:label_main_teacher) %> - : <%= link_to(@course.teacher.realname, user_path(@course.teacher)) %> - - - <%= l(:label_course_term) %> - : <%= @course.time %><%= get_course_term_locales @course %> - - <% end %> -
      -
      -
    • - +<% can_edit_flag = User.current.allowed_to?(:as_teacher,item) || User.current.admin? %> +<% course_end_flag = course_endTime_timeout?(item) %> +
    -
    -<%= call_hook :view_account_left_bottom, :user => @user %> \ No newline at end of file +
    +
    + + + + + + + + + + + + + +
    主讲老师: + <%= item.teacher.show_name %> + 课程作业:<%= item.homework_commons.count %>
    成员人数:<%= item.members.count %>开课学期:<%= item.time %><%= get_course_term_locales item %>
    +
    +
  • + <% if(course_end_flag) %> + 课程结束 + <% elsif(can_edit_flag) %> + 发布作业 + <% else %> + 提交作品 + <% end %> +
    +
    \ No newline at end of file diff --git a/app/views/users/_user_fans_item.html.erb b/app/views/users/_user_fans_item.html.erb new file mode 100644 index 000000000..66181d23b --- /dev/null +++ b/app/views/users/_user_fans_item.html.erb @@ -0,0 +1,50 @@ +
    +
    + + <%= image_tag(url_to_avatar(item), :style=>"width:64px;height:64px;",:alt=>"头像") %> + +
    +
    + <%= item.show_name %> +
    +
    + <% if item.user_extensions && !item.user_extensions.brief_introduction.nil? && !item.user_extensions.brief_introduction.empty? %> +

    个性签名:<%= item.user_extensions.brief_introduction %>

    + <% end %> + + + + <% if (item.user_extensions.identity == 0 || item.user_extensions.identity == 1) && !item.user_extensions.school.nil? %> + + + <% elsif item.user_extensions.identity == 3 && !item.user_extensions.occupation.nil? && !item.user_extensions.occupation.empty? %> + + + <% elsif item.user_extensions.identity == 2 %> + + + <% end %> +
    加入时间:<%= format_date(item.created_on) %>工作单位: +
  • + <%= item.user_extensions.school.name %> +
  • +
    工作单位: +
  • + <%= item.user_extensions.occupation %> +
  • +
    工作单位: +
  • + <%= item.show_name %> +
  • +
    +
    +
    + <% if(User.current.logged? && User.current != item )%> + <%if(item.watched_by?(User.current))%> + 取消关注 + <% else %> + 添加关注 + <% end %> + <% end %> +
    +
    diff --git a/app/views/users/show.html.erb b/app/views/users/show.html.erb index 496211e82..bb0ce28d7 100644 --- a/app/views/users/show.html.erb +++ b/app/views/users/show.html.erb @@ -1,661 +1,321 @@ -<% if User.current.id == @user.id %> - -
    - <%= form_tag(:controller => 'users', :action => "show") do %> - + +<%= javascript_include_tag "/assets/kindeditor/kindeditor",'/assets/kindeditor/pasteimg' %> +<% @center_flag = (User.current == @user) %> +<% if @center_flag %> +
    + + <% if @user.allowed_to?(:add_project, nil, :global => true) %> + 新建项目 + <% else %> + 加入项目 <% end %> -<% end %> -<%= render_flash_messages %> -<% unless @state == 2 %> - <% unless @activity.empty? %> -
    - <% @activity.each do |e| %> - <%# 以下一行代码解决有未知的活动无法转换成Model报错%> - <% (Rails.logger.error "[Error] =========================================================> NameError: uninitialized constant " + e.act_type.to_s; next;) if e.act_type.safe_constantize.nil? %> - <% act = e.act %> - <% unless act.nil? %> - <% if e.act_type == 'JournalsForMessage' || e.act_type == 'HomeworkCommon' || e.act_type == 'Journal'|| e.act_type == 'Changeset' || e.act_type == 'Message' || e.act_type == 'Principal' || e.act_type == 'News' || e.act_type == 'Issue' || e.act_type == 'Contest' %> - - - - - - -
    - <%= image_tag(url_to_avatar(e.user), :class => "avatar") %> - - - <% case e.act_type %> - <% when 'JournalsForMessage' %> - - - - - - - - - - <% when 'HomeworkCommon' %> - - <% if e.user == User.current %> - - <% else %> - - <% end %> - - - - - - - - <% when 'Journal' %> - - <% if e.user == User.current %> - - <% else %> - - <% end %> - - - <% if act.notes.nil? %> - <% desStr = '' %> - <% else %> - <% desStr= textAreailizable(act, :notes) %> - <% end %> - - - - - - <% when 'Changeset' %> - - <% if e.user == User.current %> - - <% else %> - - <% end %> - - - - - - - - <% when 'Message' %> - - <% if e.user == User.current %> - - <% else %> - - <% end %> - - - - - - - - <% when 'Principal' %> - - <% if e.user == User.current %> - - <% else %> - - <% end %> - - - - - - - - <% when 'News' %> - - <% if e.user == User.current %> - - <% else %> - - <% end %> - - - - - - - - <% when 'Issue' %> - <% if e.user == User.current %> - + <% if @user.user_extensions.identity == 0 && @user.allowed_to?(:add_course, nil, :global => true) %> + 新建课程 + <% else %> + + 加入课程 + <% end %> +
    + +<% end %> - - - - - - - - - <% else %> - - - - - - - - +
    +
    +
    + +

    +
    + 取消 + 发布 + +
    - <% end %> + +
    - <% when 'Contest' %> -
    - <% if e.user == User.current && @show_contest == 1 %> - - <% else %> - - <% end %> - - - - - - - <% else %> - <% end %> -
    - <% if User.current.login == e.user.try(:login) %> - - <%= link_to("#{l(:label_i)}", user_path(e.user_id)) %> - -   - <% if User.current.language == "zh" %> - - <%= l(:label_i_have_feedback) %> - <%= link_to("#{e.act.user.name}", user_path(e.act.user.id)) %> - <%= l(:label_of_feedback) + l(:label_layouts_feedback) %> - - <% else %> - - <%= l(:label_i_have_feedback) %> - <%= l(:label_layouts_feedback) + l(:label_of_feedback) %> - <%= link_to("#{e.act.user.name}", user_path(e.act.user.id)) %> - - <% end %> - <% else %> - - <%= link_to("#{e.user.name}", user_path(e.user_id)) %> - - <% if User.current.language == "zh" %> - - <%= l(:label_have_feedback) %> - <%= link_to("#{e.act.user.name}", user_path(e.act.user.id)) %> - <%= l(:label_of_feedback) + l(:label_layouts_feedback) %> - - <% else %> - - <%= l(:label_have_feedback) %> - <%= l(:label_layouts_feedback) + l(:label_of_feedback) %> - <%= link_to("#{e.act.user.name}", user_path(e.act.user.id)) %> - - <% end %> - <% end %> -
    -

    - <%= textAreailizable act.notes %> -

    - -
    - - <%= user_jour_feed_back_url e %> - -
    -
    -
    - - <%= (l(:label_update_time).to_s << ': ' << format_time(e.act.created_on)).to_s %> - -
    -
    -
    - - <%= link_to("#{l(:label_i)}", user_path(e.user_id)) %> - - - <%= l(:label_i_new_activity) %> - - <%= link_to format_activity_title("#{l(:label_active_homework)}##{act.id}:#{act.name}"), student_work_index_path(:homework => e.act_id) %> - - - <%= link_to(h(e.user), user_path(e.user_id)) %> -   - - <%= l(:label_new_activity) %> -   - <%= link_to format_activity_title("#{l(:label_active_homework)}##{act.id}:#{act.name}"), student_work_index_path(:homework => e.act_id) %> -
    -

    - <%= textAreailizable act, :description %> -

    -
    - - <%= (l(:label_update_time).to_s << ': ' << format_time(e.act.created_at)).to_s %> - -
    - - - - - - - - -
    - - <%= link_to("#{l(:label_i)}", user_path(e.user_id)) %> - -   - - <%= l(:label_i_new_activity) %> - -   - <%= link_to(l(:label_activity_project)+":"+act.issue.project.name, project_path(act.issue.project.id)) %> - <%= link_to format_activity_title("#{act.issue.tracker} ##{act.issue.id}: #{act.issue.subject}"), - {:controller => 'issues', :action => 'show', :id => act.issue.id, :anchor => "change-#{act.id}"} %> - - - <%= link_to(h(e.user), user_path(e.user_id)) %> - -   - - <%= l(:label_new_activity) %> - -   - <%= link_to(l(:label_activity_project)+":"+act.issue.project.name, project_path(act.issue.project.id)) %> - <%= link_to format_activity_title("#{act.issue.tracker} ##{act.issue.id}: #{act.issue.subject}"), - {:controller => 'issues', :action => 'show', :id => act.issue.id, :anchor => "change-#{act.id}"} %> -
    -

    - <%= desStr %> -

    -
    -
    - - <%= (l(:label_update_time).to_s << ': ' << format_time(e.act.created_on)).to_s %> - -
    -
    -
    - - <%= link_to("#{l(:label_i)}", user_path(e.user_id)) %> - -   - - <%= l(:label_i_new_activity) %> - -   - <%= link_to format_activity_title(act.title), - {:controller => 'repositories', - :action => 'revision', - :id => act.repository.project, - :repository_id => act.repository.identifier_param, - :rev => act.identifier} %> - - - <%= link_to(h(e.user), user_path(e.user_id)) %> - -   - - <%= l(:label_new_activity) %> - -   - <%= link_to format_activity_title(act.title), - {:controller => 'repositories', - :action => 'revision', - :id => act.repository.project, - :repository_id => act.repository.identifier_param, - :rev => act.identifier} %> -
    -

    - <%= textAreailizable act, :long_comments %> -

    -
    -
    - - <%= format_time(e.act.committed_on) %> - -
    -
    - <%= link_to l(:label_find_all_comments), - {:controller => 'repositories', - :action => 'revision', - :id => act.repository.project, - :repository_id => act.repository.identifier_param, - :rev => act.identifier} if e.act.count!= 0 %> - - - <%= l(:label_comments_count, :count => e.act.count) %> - -
    -
    - - <%= link_to("#{l(:label_i)}", user_path(e.user_id)) %> - -   - - <%= l(:label_i_new_activity) %> - -   - <%= link_to format_activity_title("#{act.board.name}: #{act.subject}"), - act.board.project ? project_boards_path(act.board.project,:topic_id => act.id) : course_boards_path(act.board.course,:topic_id => act.id), - :class => "problem_tit fl fb " %> - - - <%= link_to(h(e.user), user_path(e.user_id)) %> - -   - - <%= l(:label_new_activity) %> - -   - <%= link_to format_activity_title("#{act.board.name}: #{act.subject}"), - {:controller => 'messages', - :action => 'show', - :board_id => act.board_id}.merge(act.parent_id.nil? ? {:id => act.id} : {:id => act.parent_id, :r => act.id, :anchor => "message-#{act.id}"}) %> -
    -

    - <%= textAreailizable(act, :content) %> -

    -
    -
    - - <%= (l(:label_update_time).to_s << ': ' << format_time(e.act.created_on)).to_s %> - -
    -
    -
    - - <%= link_to("#{l(:label_i)}", user_path(e.user_id)) %> - -   - - <%= l(:label_new_user) %> - - - - <%= link_to(h(e.user), user_path(e.user_id)) %> - -   - - <%= l(:label_new_user) %> - -
    -

    -
    -
    - - <%= (l(:label_update_time).to_s << ': ' << format_time(e.act.created_on)).to_s %> - -
    -
    -
    - - <%= link_to("#{l(:label_i)}", user_path(e.user_id)) %> - -   - - <%= l(:label_i_new_activity) %> - -   - <%= link_to format_activity_title(" #{act.title}"), {:controller => 'news', :action => 'show', :id => act.id} %> - - - <%= link_to(h(e.user), user_path(e.user_id)) %> - -   - - <%= l(:label_new_activity) %> - -   - <%= link_to format_activity_title("#{l(:label_news)}: #{act.title}"), {:controller => 'news', :action => 'show', :id => act.id} %> -
    -

    - <%= textAreailizable act, :description %> -

    -
    -
    - - <%= (l(:label_update_time).to_s << ': ' << format_time(e.act.created_on)).to_s %> - -
    -
    - - <%= link_to l(:label_find_all_comments), {:controller => 'news', :action => 'show', :id => act.id} if e.act.comments_count!= 0 %> - - - <%= l(:label_comments_count, :count => e.act.comments_count) %> - -
    -
    - - <%= link_to("#{l(:label_i)}", user_path(e.user_id)) %> - -   - - <%= l(:label_i_new_activity) %> -   - <%= link_to format_activity_title("#{act.source_from} (#{act.status}): #{act.tracker.name} #{act.subject}"), - {:controller => 'issues', - :action => 'show', - :id => act.id} %> -
    - <%= textAreailizable act, :description %> -
    -
    - - <%= (l(:label_update_time).to_s << ': ' << format_time(e.act.created_on)).to_s %> - -
    -
    - - <%= link_to l(:label_find_all_comments), {:controller => 'issues', :action => 'show', :id => act.id} if e.act.journals.count!= 0 %> - - - <%= l(:label_comments_count, :count => e.act.journals.count) %> - -
    -
    - - <%= link_to(h(e.user), user_path(e.user_id)) %> -   - - <%= l(:label_new_activity) %> -   - <%= link_to format_activity_title("#{act.source_from} (#{act.status}): #{act.tracker.name} #{act.subject}"), - {:controller => 'issues', - :action => 'show', - :id => act.id} %> -
    - <%= textAreailizable act, :description %> -
    -
    - - <%= (l(:label_update_time).to_s << ': ' << format_time(e.act.created_on)).to_s %> - -
    -
    - - <%= link_to l(:label_find_all_comments), {:controller => 'issues', :action => 'show', :id => act.id} if e.act.journals.count!= 0 %> - - - <%= l(:label_comments_count, :count => e.act.journals.count) %> - -
    -
    - - <%= link_to("#{l(:label_i)}", user_path(e.user_id)) %> - -   - - <%= l(:label_i_new_activity) %> - -   - <%= link_to format_activity_title("#{l(:label_contest)}: #{act.name}"), {:controller => 'contests', :action => 'show_contest', :id => act.id} %> - - - <%= link_to(h(e.user), user_path(e.user_id)) %> - -   - - <%= l(:label_new_activity) %> - -   - <%= link_to format_activity_title("#{l(:label_contest)}: #{act.name}"), {:controller => 'contests', :action => 'show_contest', :id => act.id} %> -
    -

    - <%= textAreailizable act, :description %> -

    -
    -
    - - <%= (l(:label_update_time).to_s << ': ' << format_time(e.act.created_on)).to_s %> - -
    -
    -
    +
    +
    + <%= @center_flag ? '我的课程' : 'TA的课程' %> + <% if @center_flag %> + <% if @user.user_extensions.identity == 0 && @user.allowed_to?(:add_course, nil, :global => true) %> + 新建课程 + <% else %> + 加入课程 + <% end %> + <% end %> +
    +
    +
    +
    + +
    +
    +
    +

    课程动态

    +
    + +
    - <% end %> - <% end %> - <% end %> -
    - - <% else %> - <% if @user == User.current %> - <%= l(:label_user_activities_no) %> +
    +
    + <%= @center_flag ? '我的项目' : 'TA的项目' %> + <% if @center_flag %> + <% if @user.allowed_to?(:add_project, nil, :global => true) %> + 新建项目 <% else %> -

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

    + 加入项目 <% end %> - <% end %> - -<% else %> - <% unless @message.empty? %> -
    - <% @message.each do |e| -%> - - - - - -
    <%= image_tag(url_to_avatar(e.user), :class => "avatar") %> - - - - - - - - - - - -
    - <%= link_to(h(e.user), user_path(e.user)) %> - <% if e.instance_of?(JournalsForMessage) %> - <% if e.reply_id == User.current.id %> - <% if e.jour_type == 'Bid' %> - <%= l(:label_in_bids) %><%= link_to(e.jour.name, respond_path(e.jour)) %> <%= l(:label_quote_my_words) %> - <% elsif e.jour_type == 'User' %> - <%= l(:label_in_users) %><%= link_to(e.jour.firstname, feedback_path(e.jour)) %> <%= l(:label_quote_my_words) %> - <% elsif e.jour_type == 'Project' %> - <%= l(:label_in_projects) %><%= link_to(e.jour.name, feedback_path(e.jour)) %> <%= l(:label_reply_plural) %> - <% end %> - <% else %> - <%= l(:label_about_requirement) %><%= link_to(e.jour.name, respond_path(e.jour_id)) %> <%= l(:label_have_respond) %> - <% end %> - <% else %> - <% if e.journal_reply.nil? || e.journal_reply.reply_id != User.current.id %> - <%= l(:label_about_issue) %><%= link_to(e.issue.subject, issue_path(e.journalized_id)) %><%= l(:label_have_respond) %> + <% end %> + +
    +
    +
    + +
    + - <% else %> - <%= l(:label_in_issues) %><%= link_to(e.issue.subject, issue_path(e.issue)) %><%= l(:label_quote_my_words) %> - <% end %> - <% end %>
    -
    -

    - <%= textAreailizable e.notes %> -

    -
    - - <%= format_time e.created_on %> - -
    -
    - <% end %> -
    +
    +

    项目动态

    +
    + +
    - +
    - <% else %> -

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

    - <% end %> + + -<% html_title(l(:label_activity)) -%> + }); + \ No newline at end of file diff --git a/app/views/users/user_course_activities.html.erb b/app/views/users/user_course_activities.html.erb new file mode 100644 index 000000000..8a9996c41 --- /dev/null +++ b/app/views/users/user_course_activities.html.erb @@ -0,0 +1,12 @@ +<% for rec in @list %> +
    + <%= rec[:e].name %> + <%= rec[:item].user.show_name %> + <%= get_activity_opt(rec[:item],rec[:e]) %> + + <%= get_activity_act_showname(rec[:item]).html_safe %> + + <%= time_tag(get_activity_act_createtime(rec[:item])).html_safe %>前 +
    +<% end %> \ No newline at end of file diff --git a/app/views/users/user_courses.html.erb b/app/views/users/user_courses.html.erb index 6e0a1ca17..228d2af90 100644 --- a/app/views/users/user_courses.html.erb +++ b/app/views/users/user_courses.html.erb @@ -1,33 +1,31 @@ -<% if @user.user_extensions.identity == UserExtensions::TEACHER %> - <%= render :partial => 'my_course' %> -<% else %> - <%= render :partial => 'my_joinedcourse' %> -<% end %> - +
    + + <% if @user.user_extensions.identity == 0 && @user.allowed_to?(:add_course, nil, :global => true) %> + 新建课程 + <% else %> + 加入课程 + <% end %> +
    +
    - -<% html_title(l(:label_user_course)) -%> \ No newline at end of file +
    +
    +
    +

    所有课程

    + +
    +
    + <% for item in @list %> + <%= render :partial => 'course_form', :locals => {:item => item} %> + <% end %> +

    <%= l(:label_no_data) %>

    +
    +
      + <%= pagination_links_full @obj_pages, @obj_count, :per_page_links => false, :remote => false, :flag => true%> +
    +
    +
    \ No newline at end of file diff --git a/app/views/users/user_courses4show.html.erb b/app/views/users/user_courses4show.html.erb new file mode 100644 index 000000000..a95c90f18 --- /dev/null +++ b/app/views/users/user_courses4show.html.erb @@ -0,0 +1,14 @@ +<% for item in @list %> + + +<% end %> diff --git a/app/views/users/user_fanslist.html.erb b/app/views/users/user_fanslist.html.erb index 92cc1cfb7..a952bc89d 100644 --- a/app/views/users/user_fanslist.html.erb +++ b/app/views/users/user_fanslist.html.erb @@ -1,52 +1,22 @@ - -

    <%= l(:label_x_user_fans, :count => User.current.watcher_users(User.current.id).count) %>

    -
    - <% for user in @user.watcher_users %> -
      -
    • - - - - - -
      - <%= link_to image_tag(url_to_avatar(user), :class => "avatar"),user_path(user),:title => "#{user.name}" %> - - - - - - - - - - - - - - -
      - <%= content_tag "div", link_to(user.name, user_path(user)), :class => "project_avatar_name" %> -

      - <% cond = Project.visible_condition(User.current) + " AND projects.project_type <> 1" %> - <% memberships = user.memberships.all(:conditions => cond) %> - <%= l(:label_x_contribute_to, :count => memberships.count) %> - <% for member in memberships %> - <%= link_to_project(member.project) %><%= (user.memberships.last == member) ? '' : ',' %> - <% end %> - -

      - <% user_courses = user_courses_list(user) %> - <%= l(:label_x_course_contribute_to, :count => user_courses.count) %> - <%= ":" unless user_courses.empty? %> - <% for course in user_courses %> - <%= link_to course.name,{:controller => 'courses',:action => 'show',id:course.id, host: Setting.host_course} %><%= (user_courses.last == course) ? '' : ',' %> - <% end %> -

      -
      <%= l(:label_user_joinin) %><%= format_date(user.created_on) %> -
      -
      -
    • -
    - <% end %> -
    \ No newline at end of file +
    +
    +
    + <% if @action == 'fans'%> +

    粉丝

    +
    共有<%=@obj_count%>名粉丝
    + <% else %> +

    关注

    +
    一共关注<%=@obj_count%>
    + <% end %> +
    +
    + <% for item in @list %> + <%= render :partial => 'users/user_fans_item', :locals => {:item => item,:target=>@user} %> + <% end %> +

    <%= l(:label_no_data) %>

    +
    +
      + <%= pagination_links_full @obj_pages, @obj_count, :per_page_links => false, :remote => false, :flag => true%> +
    +
    +
    diff --git a/app/views/users/user_feedback4show.html.erb b/app/views/users/user_feedback4show.html.erb new file mode 100644 index 000000000..d57d4ca5a --- /dev/null +++ b/app/views/users/user_feedback4show.html.erb @@ -0,0 +1,22 @@ +<% for item in @list %> +
    + + <%= image_tag url_to_avatar(item.user),:width => '27',:height => '27' %> + + <%= item.user.show_name %> + <% if item.at_user %> +  回复 + <%= item.at_user.show_name %> + <% end %> +  :  +

    <%=item.notes.html_safe%>

    + <% if JournalsForMessage.create_by_user? User.current %> + 回复 + <% end %> + <% if User.current.admin? || item.user.id == User.current.id %> + item.id,:user_id=>item.user.id) %>" data-confirm="您确定要删除吗?" data-remote="true" data-method="delete" class="fl mt5 c_purple ml5">删除 + <% end %> + <%= time_tag(item.created_on).html_safe %>前 +
    +
    +<% end %> diff --git a/app/views/users/user_projects.html.erb b/app/views/users/user_projects.html.erb index 69dda693e..9fe948838 100644 --- a/app/views/users/user_projects.html.erb +++ b/app/views/users/user_projects.html.erb @@ -1,66 +1,56 @@ - - - -
    <% id = 'project_respond_form_'+ reply.id.to_s %> - <%= link_to "#{reply.user.show_name}(#{reply.user.login})", user_path(reply.user) %> - <%= l(:label_reply_to)%> - <% if show_name %> - <%= link_to "#{parent_jour.user.show_name}(#{parent_jour.user.login})", user_path(parent_jour.user) %> + <% if User.current.member_of_course?(@course) %> + <%= link_to User.current.member_of_course?(@course)? "#{reply.user.show_name}(#{reply.user.login})" : "#{reply.user.login}" , user_path(reply.user) %> + <%= l(:label_reply_to)%> + <% if show_name %> + <%= link_to "#{parent_jour.user.show_name}(#{parent_jour.user.login})", user_path(parent_jour.user) %> + <% else %> + <%#= 之所以改成这样是因为觉得没有真实姓名的用“匿名用户”替换不合理 %> + <%= link_to "#{parent_jour.user}", user_path(parent_jour.user) %> + <% end %> <% else %> - <%= l(:label_anonymous) %> + <%= link_to "#{reply.user}", user_path(reply.user) %> + <%= l(:label_reply_to)%> + <%= link_to "#{parent_jour.user}", user_path(parent_jour.user) %> <% end %> -

    <%= reply.notes.html_safe %>

    From 57f6f72c6410956bff6a4148aa21fbced4ed7cd9 Mon Sep 17 00:00:00 2001 From: huang Date: Fri, 10 Jul 2015 13:09:09 +0800 Subject: [PATCH 063/444] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=BC=96=E8=BE=91?= =?UTF-8?q?=E5=99=A8=E4=B8=8B=E9=9D=A2=E5=A4=9A=E4=BD=99=E7=9A=84=E9=BB=91?= =?UTF-8?q?=E8=89=B2=E6=A1=86=E6=A1=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/assets/kindeditor/themes/default/default.css | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/public/assets/kindeditor/themes/default/default.css b/public/assets/kindeditor/themes/default/default.css index c5a84c186..986263903 100644 --- a/public/assets/kindeditor/themes/default/default.css +++ b/public/assets/kindeditor/themes/default/default.css @@ -522,8 +522,7 @@ /* statusbar */ .ke-statusbar { position: relative; - background-color: #F0F0EE; - border-top: 1px solid #CCCCCC; + font-size: 0; line-height: 0; *height: 12px; From e39fe372efb6168d49def122992aa6d00815354f Mon Sep 17 00:00:00 2001 From: lizanle <491823689@qq.com> Date: Fri, 10 Jul 2015 13:32:56 +0800 Subject: [PATCH 064/444] =?UTF-8?q?=E4=BD=9C=E4=B8=9A=E7=8A=B6=E6=80=81=20?= =?UTF-8?q?=E6=8F=8F=E8=BF=B0=E6=94=B9=E5=8F=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/helpers/api_helper.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/helpers/api_helper.rb b/app/helpers/api_helper.rb index 96966150c..fa231607a 100644 --- a/app/helpers/api_helper.rb +++ b/app/helpers/api_helper.rb @@ -93,7 +93,7 @@ module ApiHelper def homework_status_desc homework if homework.homework_type == 1 && homework.homework_detail_manual #匿评作业 if Time.parse(homework.end_time.to_s).strftime("%Y-%m-%d") >= Time.now.strftime("%Y-%m-%d") - link = "截止日期之前不可启动匿评" + link = show_homework_deadline homework elsif homework.student_works.count >= 2 #作业份数大于2 case homework.homework_detail_manual.comment_status when 1 @@ -104,10 +104,10 @@ module ApiHelper link = " 匿评结束" end else - link = "提交作业数大于2才可启动匿评" + link = "提交作业数过少" end else - link = "未开启匿评作业不可启动匿评" + link = "未开启匿评作业" end link end From 02d09c84b42f3a31f8e6729e2a58db131bf4eec6 Mon Sep 17 00:00:00 2001 From: yutao <283765470@qq.com> Date: Fri, 10 Jul 2015 14:17:19 +0800 Subject: [PATCH 065/444] =?UTF-8?q?=E4=B8=AA=E4=BA=BA=E4=B8=BB=E9=A1=B5->?= =?UTF-8?q?=E7=95=99=E8=A8=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/users_controller.rb | 4 +- app/controllers/words_controller.rb | 11 +- app/helpers/users_helper.rb | 4 +- app/views/layouts/base_users_new.html.erb | 4 +- app/views/users/show.html.erb | 219 +++++++++++--------- app/views/users/user_feedback4show.html.erb | 18 +- app/views/words/create.js.erb | 13 +- app/views/words/create_reply.js.erb | 13 +- app/views/words/destroy.js.erb | 4 +- public/stylesheets/users.css | 2 +- 10 files changed, 173 insertions(+), 119 deletions(-) diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index b02ebd7e5..c83afd397 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -575,8 +575,10 @@ class UsersController < ApplicationController if params[:lastid]!=nil && !params[:lastid].empty? query = query.where("#{JournalsForMessage.table_name}.id < ?",params[:lastid]) end + logger.info('xxoo') @list = query.order("#{JournalsForMessage.table_name}.id desc").limit(3).all - render :layout=>nil + logger.info('aavv') + render :layout=>nil,:locals => {:feed_list=>@list} end def show diff --git a/app/controllers/words_controller.rb b/app/controllers/words_controller.rb index cc6c4f47e..4ff01d36c 100644 --- a/app/controllers/words_controller.rb +++ b/app/controllers/words_controller.rb @@ -13,11 +13,12 @@ class WordsController < ApplicationController end refer_user_id = params[:new_form][:reference_user_id].to_i - @user.add_jour(User.current, message, refer_user_id) + list = @user.add_jour(User.current, message, refer_user_id) unless refer_user_id == 0 || refer_user_id == User.current.id - User.find(refer_user_id).add_jour(User.current, message, refer_user_id) + list = User.find(refer_user_id).add_jour(User.current, message, refer_user_id) end - @user.count_new_jour + @jour = list.last + # @user.count_new_jour # if a_message.size > 5 # @message = a_message[-5, 5] # else @@ -26,8 +27,8 @@ class WordsController < ApplicationController # @message_count = a_message.count end end - @jours = @user.journals_for_messages.where('m_parent_id IS NULL').reverse - @jour = paginateHelper @jours,10 + # @jours = @user.journals_for_messages.where('m_parent_id IS NULL').reverse + # @jour = paginateHelper @jours,10 respond_to do |format| # format.html { redirect_to_referer_or {render :text => 'Watcher added.', :layout => true}} diff --git a/app/helpers/users_helper.rb b/app/helpers/users_helper.rb index 8a373edab..b1f71f40f 100644 --- a/app/helpers/users_helper.rb +++ b/app/helpers/users_helper.rb @@ -324,8 +324,8 @@ module UsersHelper def query_activities(query,type) query_rec_count = 50 - #query = query.where("act_type not in ('Contest','Contestnotifications','Principal')") - query = query.where("act_type='JournalsForMessage'") + query = query.where("act_type not in ('Contest','Contestnotifications','Principal')") + # query = query.where("act_type='JournalsForMessage'") #query = query.where("act_type not in (?)", ['JournalsForMessage','Message','HomeworkCommon','News','Issue','Journal','Poll']) list = query.order("id desc").limit(query_rec_count).all if( list == nil || list.count() < query_rec_count ) diff --git a/app/views/layouts/base_users_new.html.erb b/app/views/layouts/base_users_new.html.erb index 8911df5ce..4da9ae3a3 100644 --- a/app/views/layouts/base_users_new.html.erb +++ b/app/views/layouts/base_users_new.html.erb @@ -183,14 +183,14 @@ $(".subNav").click(function(){ <% end %> <% if (@user.user_extensions.identity == 0 || @user.user_extensions.identity == 1) && !@user.user_extensions.school.nil? %> -
  • <%= @user.user_extensions.school.name %>
  • +
  • <%= @user.user_extensions.school.name %>
  • <% elsif @user.user_extensions.identity == 3 && !@user.user_extensions.occupation.nil? && !@user.user_extensions.occupation.empty? %>
  • <%= @user.user_extensions.occupation %>
  • <% elsif @user.user_extensions.identity == 2 %>
  • <%= @user.show_name %>
  • <% end %> <% if (!@user.user_extensions.description.nil? && !@user.user_extensions.description.empty?) %> -
  • <%= @user.user_extensions.description %>
  • +
  • <%= @user.user_extensions.description %>
  • <% end %> <% end %> diff --git a/app/views/users/show.html.erb b/app/views/users/show.html.erb index bb0ce28d7..2b54b6d5c 100644 --- a/app/views/users/show.html.erb +++ b/app/views/users/show.html.erb @@ -29,18 +29,20 @@ <% end %>
    -
    -
    - -

    -
    - 取消 - 发布 -
    +
    +
    +
    + +

    +
    + 取消 + 发布 +
    +
    -
    -
    + -
    +