From e77a891bc618b152ec52c97fe1218038ff08e561 Mon Sep 17 00:00:00 2001 From: huang Date: Mon, 21 Mar 2016 16:36:25 +0800 Subject: [PATCH 01/37] =?UTF-8?q?=E6=B6=88=E6=81=AF=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E8=AF=AD=E5=8F=A5=E4=BC=98=E5=8C=96=EF=BC=8C=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E7=B4=A2=E5=BC=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/users_controller.rb | 29 +++++++++---------- ...0160321071740_add_index_to_message_alls.rb | 5 ++++ ...0321073042_add_index_to_course_messages.rb | 5 ++++ ...160321073107_add_index_to_memo_messages.rb | 5 ++++ ...227_add_index_to_user_feedback_messages.rb | 5 ++++ ...60321075815_add_index_to_forge_messages.rb | 5 ++++ ...1080116_add_forgetype_to_forge_messages.rb | 5 ++++ ..._add_usertype_to_user_feedback_messages.rb | 5 ++++ ...321080412_add_memotype_to_memo_messages.rb | 5 ++++ ...0825_add_feed_to_user_feedback_messages.rb | 5 ++++ db/schema.rb | 17 ++++++++++- 11 files changed, 74 insertions(+), 17 deletions(-) create mode 100644 db/migrate/20160321071740_add_index_to_message_alls.rb create mode 100644 db/migrate/20160321073042_add_index_to_course_messages.rb create mode 100644 db/migrate/20160321073107_add_index_to_memo_messages.rb create mode 100644 db/migrate/20160321073227_add_index_to_user_feedback_messages.rb create mode 100644 db/migrate/20160321075815_add_index_to_forge_messages.rb create mode 100644 db/migrate/20160321080116_add_forgetype_to_forge_messages.rb create mode 100644 db/migrate/20160321080336_add_usertype_to_user_feedback_messages.rb create mode 100644 db/migrate/20160321080412_add_memotype_to_memo_messages.rb create mode 100644 db/migrate/20160321080825_add_feed_to_user_feedback_messages.rb diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 38f1ad152..d85778e73 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -119,49 +119,46 @@ class UsersController < ApplicationController # @new_message_count = forge_querys.count + forum_querys.count + course_querys.count + user_querys.count case params[:type] when nil + # 系统消息为管理员发送,我的消息中包含有系统消息 @message_alls = [] - messages = MessageAll.where("(user_id =? and message_type !=?) or message_type =?" ,@user, "SystemMessage", "SystemMessage").order("created_at desc") + messages = MessageAll.where("(user_id =? and message_type !=?) or message_type =?" ,@user.id, "SystemMessage", "SystemMessage").includes(:message).order("created_at desc") messages.each do |message_all| @message_alls << message_all.message end when 'unviewed' @message_alls = [] - messages = MessageAll.where("user_id =?", @user).order("created_at desc") + messages = MessageAll.where("user_id =?", @user.id).includes(:message).order("created_at desc") messages.each do |message_all| # 在点击或者刷新消息列表后未读的消息存放在数组 if message_all.message_type != "SystemMessage"&& !message_all.message.nil? && message_all.message.viewed == 0 @message_alls << message_all.message end end - #课程相关消息 when 'homework' - @message_alls = CourseMessage.where("course_message_type in ('HomeworkCommon','StudentWorksScore','JournalsForMessage','StudentWork','Exercise') and user_id =?", @user).order("created_at desc") + @message_alls = CourseMessage.where("course_message_type in ('HomeworkCommon','StudentWorksScore','JournalsForMessage','StudentWork','Exercise') and user_id =?", @user.id).order("created_at desc") when 'course_message' - @message_alls = CourseMessage.where("course_message_type =? and user_id =?", "Message", @user).order("created_at desc") + @message_alls = CourseMessage.where("course_message_type =? and user_id =?", "Message", @user.id).order("created_at desc") when 'course_news' # 课程通知包含发布的通知和回复的通知 - @message_alls = CourseMessage.where("course_message_type in (?, ? ,?)", "News", "Comment", "Course").where("user_id =?", @user).order("created_at desc") + @message_alls = CourseMessage.where("course_message_type in ('News', 'Comment') and user_id =?", @user.id).order("created_at desc") when 'poll' - @message_alls = CourseMessage.where("course_message_type =? and user_id =?", "Poll", @user).order("created_at desc") - + @message_alls = CourseMessage.where("course_message_type =? and user_id =?", "Poll", @user.id).order("created_at desc") #项目相关消息 when 'issue' - @message_alls = ForgeMessage.where("forge_message_type =? or forge_message_type =?" , "Issue", "Journal").where("user_id=?", @user).order("created_at desc") + @message_alls = ForgeMessage.where("forge_message_type in ('Issue', 'Journal') and user_id =?" , @user.id).order("created_at desc") when 'forge_message' - @message_alls = ForgeMessage.where("forge_message_type =? and user_id =?", "Message", @user).order("created_at desc") + @message_alls = ForgeMessage.where("forge_message_type =? and user_id =?", "Message", @user.id).order("created_at desc") when 'forge_news' - @message_alls = ForgeMessage.where("forge_message_type in (?,?) and user_id =?", "News", "Comment", @user).order("created_at desc") + @message_alls = ForgeMessage.where("forge_message_type in (?,?) and user_id =?", "News", "Comment", @user.id).order("created_at desc") when 'apply' - @message_alls = ForgeMessage.where("forge_message_type in ('ProjectInvite', 'AppliedProject', 'JoinProject', 'RemoveFromProject') and user_id =?", @user).order("created_at desc") - + @message_alls = ForgeMessage.where("forge_message_type in ('ProjectInvite', 'AppliedProject', 'JoinProject', 'RemoveFromProject') and user_id =?", @user.id).order("created_at desc") #贴吧消息 when 'forum' - @message_alls = MemoMessage.where("memo_type =? and user_id =?", "Memo", @user).order("created_at desc") - + @message_alls = MemoMessage.where("memo_type =? and user_id =?", "Memo", @user.id).order("created_at desc") #用户留言 when 'user_feedback' - @message_alls = UserFeedbackMessage.where("journals_for_message_type =? and user_id =?", "JournalsForMessage", @user).order("created_at desc") + @message_alls = UserFeedbackMessage.where("journals_for_message_type =? and user_id =?", "JournalsForMessage", @user.id).order("created_at desc") else render_404 return diff --git a/db/migrate/20160321071740_add_index_to_message_alls.rb b/db/migrate/20160321071740_add_index_to_message_alls.rb new file mode 100644 index 000000000..cb204d809 --- /dev/null +++ b/db/migrate/20160321071740_add_index_to_message_alls.rb @@ -0,0 +1,5 @@ +class AddIndexToMessageAlls < ActiveRecord::Migration + def change + add_index :message_alls, [:user_id, :message_id, :message_type, :created_at] + end +end diff --git a/db/migrate/20160321073042_add_index_to_course_messages.rb b/db/migrate/20160321073042_add_index_to_course_messages.rb new file mode 100644 index 000000000..ede54779b --- /dev/null +++ b/db/migrate/20160321073042_add_index_to_course_messages.rb @@ -0,0 +1,5 @@ +class AddIndexToCourseMessages < ActiveRecord::Migration + def change + add_index :course_messages, [:user_id, :course_id, :created_at] + end +end diff --git a/db/migrate/20160321073107_add_index_to_memo_messages.rb b/db/migrate/20160321073107_add_index_to_memo_messages.rb new file mode 100644 index 000000000..59bf69fb5 --- /dev/null +++ b/db/migrate/20160321073107_add_index_to_memo_messages.rb @@ -0,0 +1,5 @@ +class AddIndexToMemoMessages < ActiveRecord::Migration + def change + add_index :memo_messages, [:user_id, :forum_id, :created_at] + end +end diff --git a/db/migrate/20160321073227_add_index_to_user_feedback_messages.rb b/db/migrate/20160321073227_add_index_to_user_feedback_messages.rb new file mode 100644 index 000000000..c067f58d8 --- /dev/null +++ b/db/migrate/20160321073227_add_index_to_user_feedback_messages.rb @@ -0,0 +1,5 @@ +class AddIndexToUserFeedbackMessages < ActiveRecord::Migration + def change + add_index :user_feedback_messages, [:user_id, :created_at] + end +end diff --git a/db/migrate/20160321075815_add_index_to_forge_messages.rb b/db/migrate/20160321075815_add_index_to_forge_messages.rb new file mode 100644 index 000000000..ada345501 --- /dev/null +++ b/db/migrate/20160321075815_add_index_to_forge_messages.rb @@ -0,0 +1,5 @@ +class AddIndexToForgeMessages < ActiveRecord::Migration + def change + add_index :forge_messages, [:user_id, :project_id, :created_at] + end +end diff --git a/db/migrate/20160321080116_add_forgetype_to_forge_messages.rb b/db/migrate/20160321080116_add_forgetype_to_forge_messages.rb new file mode 100644 index 000000000..5dbd96340 --- /dev/null +++ b/db/migrate/20160321080116_add_forgetype_to_forge_messages.rb @@ -0,0 +1,5 @@ +class AddForgetypeToForgeMessages < ActiveRecord::Migration + def change + add_index :forge_messages, [:forge_message_id, :forge_message_type] + end +end diff --git a/db/migrate/20160321080336_add_usertype_to_user_feedback_messages.rb b/db/migrate/20160321080336_add_usertype_to_user_feedback_messages.rb new file mode 100644 index 000000000..6a40ad444 --- /dev/null +++ b/db/migrate/20160321080336_add_usertype_to_user_feedback_messages.rb @@ -0,0 +1,5 @@ +class AddUsertypeToUserFeedbackMessages < ActiveRecord::Migration + def change + add_index :user_feedback_messages, [:journals_for_message_id] + end +end diff --git a/db/migrate/20160321080412_add_memotype_to_memo_messages.rb b/db/migrate/20160321080412_add_memotype_to_memo_messages.rb new file mode 100644 index 000000000..0e79cd8f6 --- /dev/null +++ b/db/migrate/20160321080412_add_memotype_to_memo_messages.rb @@ -0,0 +1,5 @@ +class AddMemotypeToMemoMessages < ActiveRecord::Migration + def change + add_index :memo_messages, [:memo_id, :memo_type] + end +end diff --git a/db/migrate/20160321080825_add_feed_to_user_feedback_messages.rb b/db/migrate/20160321080825_add_feed_to_user_feedback_messages.rb new file mode 100644 index 000000000..98a3e2c3e --- /dev/null +++ b/db/migrate/20160321080825_add_feed_to_user_feedback_messages.rb @@ -0,0 +1,5 @@ +class AddFeedToUserFeedbackMessages < ActiveRecord::Migration + def change + add_index :course_messages, [:course_message_type] + end +end diff --git a/db/schema.rb b/db/schema.rb index 2c55aad61..5eb9edd36 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 => 20160317090350) do +ActiveRecord::Schema.define(:version => 20160321080825) do create_table "activities", :force => true do |t| t.integer "act_id", :null => false @@ -465,6 +465,10 @@ ActiveRecord::Schema.define(:version => 20160317090350) do t.integer "status" end + add_index "course_messages", ["course_message_id"], :name => "index_course_messages_on_course_message_id" + add_index "course_messages", ["course_message_type"], :name => "index_course_messages_on_course_message_type" + add_index "course_messages", ["user_id", "course_id", "created_at"], :name => "index_course_messages_on_user_id_and_course_id_and_created_at" + create_table "course_statuses", :force => true do |t| t.integer "changesets_count" t.integer "watchers_count" @@ -741,6 +745,9 @@ ActiveRecord::Schema.define(:version => 20160317090350) do t.integer "status" end + add_index "forge_messages", ["forge_message_id", "forge_message_type"], :name => "index_forge_messages_on_forge_message_id_and_forge_message_type" + add_index "forge_messages", ["user_id", "project_id", "created_at"], :name => "index_forge_messages_on_user_id_and_project_id_and_created_at" + create_table "forums", :force => true do |t| t.string "name", :null => false t.text "description" @@ -1055,6 +1062,9 @@ ActiveRecord::Schema.define(:version => 20160317090350) do t.datetime "updated_at", :null => false end + add_index "memo_messages", ["memo_id", "memo_type"], :name => "index_memo_messages_on_memo_id_and_memo_type" + add_index "memo_messages", ["user_id", "forum_id", "created_at"], :name => "index_memo_messages_on_user_id_and_forum_id_and_created_at" + create_table "memos", :force => true do |t| t.integer "forum_id", :null => false t.integer "parent_id" @@ -1078,6 +1088,8 @@ ActiveRecord::Schema.define(:version => 20160317090350) do t.datetime "updated_at", :null => false end + add_index "message_alls", ["message_id", "message_type", "created_at"], :name => "index_message_alls_on_message_id_and_message_type_and_created_at" + create_table "messages", :force => true do |t| t.integer "board_id", :null => false t.integer "parent_id" @@ -1830,6 +1842,9 @@ ActiveRecord::Schema.define(:version => 20160317090350) do t.datetime "updated_at", :null => false end + add_index "user_feedback_messages", ["journals_for_message_id"], :name => "index_user_feedback_messages_on_journals_for_message_id" + add_index "user_feedback_messages", ["user_id", "created_at"], :name => "index_user_feedback_messages_on_user_id_and_created_at" + create_table "user_grades", :force => true do |t| t.integer "user_id", :null => false t.integer "project_id", :null => false From e06695b56b5c4d40cb8905f91144934ce416cec7 Mon Sep 17 00:00:00 2001 From: huang Date: Mon, 21 Mar 2016 16:45:49 +0800 Subject: [PATCH 02/37] =?UTF-8?q?=E8=AF=BE=E7=A8=8B=E6=B4=BB=E8=B7=83?= =?UTF-8?q?=E5=BA=A6=E4=BB=A3=E7=A0=81=E5=B0=81=E8=A3=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../courses/_course_activity_users.html.erb | 59 ++++++++++++++++ app/views/layouts/base_courses.html.erb | 67 +------------------ 2 files changed, 61 insertions(+), 65 deletions(-) create mode 100644 app/views/courses/_course_activity_users.html.erb diff --git a/app/views/courses/_course_activity_users.html.erb b/app/views/courses/_course_activity_users.html.erb new file mode 100644 index 000000000..a0cac45f7 --- /dev/null +++ b/app/views/courses/_course_activity_users.html.erb @@ -0,0 +1,59 @@ +<% unless contributor_course_scor(course.id).count == 0 %> + +<% end %> \ No newline at end of file diff --git a/app/views/layouts/base_courses.html.erb b/app/views/layouts/base_courses.html.erb index 1df3caab2..00f197c7f 100644 --- a/app/views/layouts/base_courses.html.erb +++ b/app/views/layouts/base_courses.html.erb @@ -138,72 +138,9 @@ <% end %> - <%# 课程贡献榜 %> + <%# 课程活跃度 %>
- <% unless contributor_course_scor(@course.id).count == 0 %> - - <% end %> + <%= render :partial => 'courses/course_activity_users', :locals => {:course => @course} %> <% hero_homework_scores = hero_homework_score(@course, "desc") %> <% unless hero_homework_scores.map(&:score).detect{|s| s.to_i != 0}.nil? %> From 70d594659e9284ebe1193fc968421c421f776b50 Mon Sep 17 00:00:00 2001 From: huang Date: Mon, 21 Mar 2016 16:50:24 +0800 Subject: [PATCH 03/37] =?UTF-8?q?=E8=AF=BE=E7=A8=8B=E8=8B=B1=E9=9B=84?= =?UTF-8?q?=E6=A6=9C=E4=BB=A3=E7=A0=81=E5=B0=81=E8=A3=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/courses/_course_heroes.html.erb | 21 ++++++++++++++++++++ app/views/layouts/base_courses.html.erb | 24 ++--------------------- 2 files changed, 23 insertions(+), 22 deletions(-) create mode 100644 app/views/courses/_course_heroes.html.erb diff --git a/app/views/courses/_course_heroes.html.erb b/app/views/courses/_course_heroes.html.erb new file mode 100644 index 000000000..5e9851594 --- /dev/null +++ b/app/views/courses/_course_heroes.html.erb @@ -0,0 +1,21 @@ +<% hero_homework_scores = hero_homework_score(course, "desc") %> +<% unless hero_homework_scores.map(&:score).detect{|s| s.to_i != 0}.nil? %> + +<% end %> \ No newline at end of file diff --git a/app/views/layouts/base_courses.html.erb b/app/views/layouts/base_courses.html.erb index 00f197c7f..ff7f20300 100644 --- a/app/views/layouts/base_courses.html.erb +++ b/app/views/layouts/base_courses.html.erb @@ -141,28 +141,8 @@ <%# 课程活跃度 %>
<%= render :partial => 'courses/course_activity_users', :locals => {:course => @course} %> - - <% hero_homework_scores = hero_homework_score(@course, "desc") %> - <% unless hero_homework_scores.map(&:score).detect{|s| s.to_i != 0}.nil? %> - - <% end %> + <%# 课程英雄榜 %> + <%= render :partial => 'courses/course_heroes', :locals => {:course => @course} %> <% if @course.description && !@course.description.blank? %>
From 44549e091d19741df725a4eb61f17f9f654bb94a Mon Sep 17 00:00:00 2001 From: huang Date: Mon, 21 Mar 2016 16:54:12 +0800 Subject: [PATCH 04/37] =?UTF-8?q?message=5Fall=E8=A1=A8=E4=B8=AD=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0type=E7=B4=A2=E5=BC=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/migrate/20160321071740_add_index_to_message_alls.rb | 2 +- db/migrate/20160321085313_add_index_mtye_to_message_alls.rb | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 db/migrate/20160321085313_add_index_mtye_to_message_alls.rb diff --git a/db/migrate/20160321071740_add_index_to_message_alls.rb b/db/migrate/20160321071740_add_index_to_message_alls.rb index cb204d809..d3e095da5 100644 --- a/db/migrate/20160321071740_add_index_to_message_alls.rb +++ b/db/migrate/20160321071740_add_index_to_message_alls.rb @@ -1,5 +1,5 @@ class AddIndexToMessageAlls < ActiveRecord::Migration def change - add_index :message_alls, [:user_id, :message_id, :message_type, :created_at] + add_index :message_alls, [:user_id, :message_id, :created_at] end end diff --git a/db/migrate/20160321085313_add_index_mtye_to_message_alls.rb b/db/migrate/20160321085313_add_index_mtye_to_message_alls.rb new file mode 100644 index 000000000..8f5c734c4 --- /dev/null +++ b/db/migrate/20160321085313_add_index_mtye_to_message_alls.rb @@ -0,0 +1,5 @@ +class AddIndexMtyeToMessageAlls < ActiveRecord::Migration + def change + add_index :message_alls, [:message_type] + end +end From e20fe85ddff0a915bf5e6d5898f0dae9fd807760 Mon Sep 17 00:00:00 2001 From: huang Date: Mon, 21 Mar 2016 18:16:50 +0800 Subject: [PATCH 05/37] =?UTF-8?q?=E6=B6=88=E6=81=AF=E5=8E=BB=E6=8E=89tip?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/users/_user_at_message.html.erb | 7 - app/views/users/_user_message_course.html.erb | 320 +----------------- app/views/users/_user_message_forge.html.erb | 106 +----- app/views/users/_user_message_forum.html.erb | 14 - app/views/users/_user_message_system.html.erb | 8 - .../_user_message_userfeedaback.html.erb | 1 - 6 files changed, 16 insertions(+), 440 deletions(-) diff --git a/app/views/users/_user_at_message.html.erb b/app/views/users/_user_at_message.html.erb index 089171c3d..8f0c6acaf 100644 --- a/app/views/users/_user_at_message.html.erb +++ b/app/views/users/_user_at_message.html.erb @@ -21,13 +21,6 @@ <%= link_to ma.subject.html_safe, ma.url, :class =>"#{ma.viewed? ? "newsGrey" : "newsBlack"}", :onmouseover =>"message_titile_show($(this),event)", :onmouseout => "message_titile_hide($(this))" %> <% end %> -
  • <%= time_tag(ma.created_at).html_safe %>
  • <% end %> \ No newline at end of file diff --git a/app/views/users/_user_message_course.html.erb b/app/views/users/_user_message_course.html.erb index 7de1ce417..e042cd738 100644 --- a/app/views/users/_user_message_course.html.erb +++ b/app/views/users/_user_message_course.html.erb @@ -9,13 +9,6 @@ -
  • <%= time_tag(ma.created_at).html_safe %>
  • <% end %> @@ -29,13 +22,6 @@ -
  • <%= time_tag(ma.created_at).html_safe %>
  • <% end %> @@ -58,43 +44,6 @@ <% end %> -
  • <%= time_tag(ma.created_at).html_safe %>
  • <% end %> @@ -110,24 +59,6 @@ -
  •    截止时间快到啦
  • <%= time_tag(ma.created_at).html_safe %>
  • @@ -148,22 +79,6 @@ :onmouseover => "message_titile_show($(this),event)", :onmouseout => "message_titile_hide($(this))" %> -
  • <%= time_tag(ma.created_at).html_safe %>
  • <% end %> @@ -179,22 +94,6 @@ -
  • <%= time_tag(ma.created_at).html_safe %>
  • <% end %> @@ -214,18 +113,6 @@ -
  • <%= time_tag(ma.created_at).html_safe %>
  • <% end %> @@ -240,9 +127,6 @@ -
  • <%= time_tag(ma.created_at).html_safe %>
  • <% end %> @@ -252,37 +136,13 @@
  • <%=link_to ma.course_message.author, user_path(ma.course_message.author), :class => "newsBlue homepageNewsPublisher" %>"> <%= ma.course_message.parent_id.nil? ? "发布了课程帖子:" : "评论了课程帖子:" %>
  • - <% if ma.course_message.parent_id.nil? %> -
  • - <%= link_to ma.course_message.subject, course_boards_path(ma.course_message.course, :parent_id => ma.course_message.parent_id ? ma.course_message.parent_id : ma.course_message.id, :topic_id => ma.course_message.id), - :class => "#{ma.viewed==0 ? "newsBlack" : "newsGrey"}" %> - - -
  • - - <% else %> -
  • - <%= link_to ma.course_message.content.html_safe, course_boards_path(ma.course_message.course, :parent_id => ma.course_message.parent_id ? ma.course_message.parent_id : ma.course_message.id, :topic_id => ma.course_message.id), - :class => "#{ma.viewed==0 ? "newsBlack" : "newsGrey"}" %> - - -
  • - - <% end %> +
  • + <%= link_to ma.course_message.subject, course_boards_path(ma.course_message.course, :parent_id => ma.course_message.parent_id ? ma.course_message.parent_id : ma.course_message.id, :topic_id => ma.course_message.id), + :class => "#{ma.viewed==0 ? "newsBlack" : "newsGrey"}" %> + + +
  • <%= time_tag(ma.created_at).html_safe %>
  • - <% end %> <% if ma.course_message_type == "StudentWorksScore" %> @@ -312,28 +172,9 @@ - <% end %> -
  • <%= time_tag(ma.created_at).html_safe %>
  • - +
  • <%= time_tag(ma.created_at).html_safe %>
  • + <% end %> <% if ma.course_message_type == "JournalsForMessage" %> <% if ma.course_message.jour_type == 'Course' %> @@ -352,9 +193,6 @@ -
  • <%= time_tag(ma.created_at).html_safe %>
  • <% end %> @@ -375,18 +213,6 @@ -
  • <%= time_tag(ma.created_at).html_safe %>
  • <% end %> @@ -406,20 +232,6 @@ -
  •   您成功提交了作品(但被标记为迟交啦)
  • <%= time_tag(ma.created_at).html_safe %>
  • @@ -440,23 +252,6 @@ -
  • <%= time_tag(ma.created_at).html_safe %>
  • <% end %> @@ -474,16 +269,6 @@ -
  • <% if ma.status == 0 || ma.status.nil?%> @@ -519,15 +304,6 @@
  • -
  • <%= time_tag(ma.created_at).html_safe %>
  • <% end %> @@ -548,20 +324,6 @@ -
  • <%= time_tag(ma.created_at).html_safe %>
  • <% end %> @@ -582,20 +344,6 @@ -
  • <%= time_tag(ma.created_at).html_safe %>
  • <% end %> @@ -616,21 +364,6 @@ -
  • <%= time_tag(ma.created_at).html_safe %>
  • <% end %> @@ -647,27 +380,6 @@ - -
  • <%= time_tag(ma.created_at).html_safe %>
  • <% end %> @@ -683,23 +395,7 @@ <%= link_to "测验题目:" + ma.course_message.exercise_name, exercise_path(:id => ma.course_message.id), :class =>"#{ma.viewed == 0 ? "newsBlack" : "newsGrey"}" %> - - -
  • 截止时间快到啦
  • <%= time_tag(ma.created_at).html_safe %>
  • diff --git a/app/views/users/_user_message_forge.html.erb b/app/views/users/_user_message_forge.html.erb index 574411055..1fd981d73 100644 --- a/app/views/users/_user_message_forge.html.erb +++ b/app/views/users/_user_message_forge.html.erb @@ -15,9 +15,6 @@ -
  • <%= time_tag(ma.created_at).html_safe %>
  • <% end %> @@ -38,21 +35,6 @@ -
  • <%= time_tag(ma.created_at).html_safe %>
  • <% end %> @@ -74,21 +56,6 @@ -
  • <%= time_tag(ma.created_at).html_safe %>
  • <% end %> @@ -114,9 +81,6 @@ - <% unless User.current.member_of?(ma.project) %>
  • <%=link_to "同意加入", {:controller => 'projects', :action => 'member', :id => ma.project_id, :message_id =>ma.id, :key => ma.secret_key}, @@ -144,13 +108,6 @@
  • -
  •    截止时间快到了!
  • <%= time_tag(ma.created_at).html_safe %>
  • @@ -169,13 +126,6 @@ -
  • <%= time_tag(ma.created_at).html_safe %>
  • <% end %> @@ -197,11 +147,6 @@ -
  • <%= time_tag(ma.created_at).html_safe %>
  • <% end %> @@ -210,37 +155,14 @@
  • <%=link_to image_tag(url_to_avatar(ma.forge_message.author), :width => "30", :height => "30"), user_path(ma.forge_message.author) %>
  • <%=link_to ma.forge_message.author, user_path(ma.forge_message.author), :class => "newsBlue homepageNewsPublisher" %> "><%= ma.forge_message.parent_id.nil? ? "发布了项目帖子:" : "评论了项目帖子:" %>
  • - <% if ma.forge_message.parent_id.nil? %> -
  • - <%= link_to ma.forge_message.subject, project_boards_path(ma.forge_message.project, - :parent_id => ma.forge_message.parent_id ? ma.forge_message.parent_id : ma.forge_message.id, - :topic_id => ma.forge_message.id), :class => "#{ma.viewed==0 ? "newsBlack" : "newsGrey"}" %> - - -
  • - - <% else %> -
  • - <%= link_to ma.forge_message.subject, project_boards_path(ma.forge_message.project, - :parent_id => ma.forge_message.parent_id ? ma.forge_message.parent_id : ma.forge_message.id, - :topic_id => ma.forge_message.id), :class => "#{ma.viewed==0 ? "newsBlack" : "newsGrey"}" %> - - -
  • - - <% end %> +
  • + <%= link_to ma.forge_message.subject, project_boards_path(ma.forge_message.project, + :parent_id => ma.forge_message.parent_id ? ma.forge_message.parent_id : ma.forge_message.id, + :topic_id => ma.forge_message.id), :class => "#{ma.viewed==0 ? "newsBlack" : "newsGrey"}" %> + + + +
  • <%= time_tag(ma.created_at).html_safe %>
  • <% end %> @@ -260,13 +182,6 @@ -
  • <%= time_tag(ma.created_at).html_safe %>
  • <% end %> @@ -281,11 +196,6 @@ -
  • <%= time_tag(ma.created_at).html_safe %>
  • <% end %> diff --git a/app/views/users/_user_message_forum.html.erb b/app/views/users/_user_message_forum.html.erb index d18292068..716fef349 100644 --- a/app/views/users/_user_message_forum.html.erb +++ b/app/views/users/_user_message_forum.html.erb @@ -15,13 +15,6 @@ - <% else %>
  • <%= link_to ma.memo.content.html_safe, forum_memo_path(ma.memo.forum_id, ma.memo.parent_id ? ma.memo.parent_id: ma.memo.id), :class =>"#{ma.viewed == 0 ? "newsBlack" : "newsGrey"}" %> @@ -29,13 +22,6 @@
  • - <% end %>
  • <%= time_tag(ma.memo.created_at).html_safe %>
  • diff --git a/app/views/users/_user_message_system.html.erb b/app/views/users/_user_message_system.html.erb index a80d35bd4..72241636f 100644 --- a/app/views/users/_user_message_system.html.erb +++ b/app/views/users/_user_message_system.html.erb @@ -15,14 +15,6 @@ -
  • <%= time_tag(ma.created_at).html_safe %>
  • <%# end %> diff --git a/app/views/users/_user_message_userfeedaback.html.erb b/app/views/users/_user_message_userfeedaback.html.erb index 894eedbfc..1898090aa 100644 --- a/app/views/users/_user_message_userfeedaback.html.erb +++ b/app/views/users/_user_message_userfeedaback.html.erb @@ -24,7 +24,6 @@ <% end %>
  • <%= time_tag(ma.journals_for_message.created_on).html_safe %>
  • - <% end %> <% end %> \ No newline at end of file From 341308658da0423cac9e28400af07974c384ba7e Mon Sep 17 00:00:00 2001 From: huang Date: Tue, 22 Mar 2016 10:48:37 +0800 Subject: [PATCH 06/37] =?UTF-8?q?=E4=BC=98=E5=8C=96=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E6=B6=88=E6=81=AF=E6=9B=B4=E6=96=B0=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/projects_controller.rb | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index 2ced977be..f74350672 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -560,18 +560,9 @@ class ProjectsController < ApplicationController end def update_message_status(user, project) - project_invite_messages = ForgeMessage.where("user_id =? and project_id =? and forge_message_type =?", user, project, "ProjectInvite") - project_invite_messages.each do |project_invite_message| - project_invite_message.update_attribute(:viewed, true) - end - #更新被加入项目消息的viewed字段 - join_project_messages = ForgeMessage.where("user_id =? and project_id =? and forge_message_type=?", user, project, "JoinProject") - join_project_messages.each do |join_project| - join_project.update_attribute(:viewed, true) - end - #更新被移出项目消息的viewed字段 - remove_project_messages = ForgeMessage.where("user_id =? and project_id =? and forge_message_type=?", user, project, "RemoveFromProject") - remove_project_messages.update_all(:viewed => true) + # 更新加入项目消息 + project__messages = ForgeMessage.where("forge_message_type in ('ProjectInvite', 'JoinProject', 'RemoveFromProject') and user_id =? and project_id =? ", user, project) + project__messages.update_all(:viewed => true) unless project__messages.blank? end def message_invite(message_id, key) From 478311128d52613d4f78df7ab6a736818877ee83 Mon Sep 17 00:00:00 2001 From: huang Date: Tue, 22 Mar 2016 12:42:53 +0800 Subject: [PATCH 07/37] =?UTF-8?q?=E4=BC=98=E5=8C=96project=5Fcontroller=20?= =?UTF-8?q?show=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/courses_controller.rb | 2 +- app/controllers/projects_controller.rb | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/controllers/courses_controller.rb b/app/controllers/courses_controller.rb index dfa30915e..515b94392 100644 --- a/app/controllers/courses_controller.rb +++ b/app/controllers/courses_controller.rb @@ -852,7 +852,7 @@ class CoursesController < ApplicationController # return # end # 统计访问量 - @course.update_attribute(:visits, @course.visits.to_i + 1) + @course.update_column(:visits, @course.visits.to_i + 1) #更新创建课程消息状态 create_course_messages = @course.course_messages.where("user_id =? and course_message_type =? and course_id =? and viewed =?", User.current.id, 'Course', @course.id, 0) create_course_messages.update_all(:viewed => true) diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index f74350672..fe7d4bbe5 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -295,11 +295,13 @@ class ProjectsController < ApplicationController def show # 更新消息为已读 update_message_status(User.current, @project) + # over if params[:jump] && redirect_to_project_menu_item(@project, params[:jump]) return end # 统计访问量 - @project.update_attribute(:visits, @project.visits.to_i + 1) + @project.update_column(:visits, @project.visits + 1) + # over @author = params[:user_id].blank? ? nil : User.active.find(params[:user_id]) @page = params[:page] ? params[:page].to_i + 1 : 0 # 根据私密性,取出符合条件的所有数据 @@ -321,8 +323,6 @@ class ProjectsController < ApplicationController = ? and forge_act_type != ? ",@project,1, "Document").order("created_at desc") .page(params['page'|| 1]).per(10); end - boards = @project.boards.includes(:last_message => :author).all - @topic_count = @project.boards.count # 根据对应的请求,返回对应的数据 respond_to do |format| format.html From 7967066b05db8bc4568f1a715ea1b0e086ec61a9 Mon Sep 17 00:00:00 2001 From: huang Date: Tue, 22 Mar 2016 15:06:54 +0800 Subject: [PATCH 08/37] =?UTF-8?q?=E9=99=84=E4=BB=B6=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=8A=A8=E6=80=81=E5=8F=91=E9=80=81=E6=96=B9=E5=BC=8F=E6=94=B9?= =?UTF-8?q?=E5=8F=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/files_controller.rb | 13 +++++++------ app/models/attachment.rb | 2 +- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/app/controllers/files_controller.rb b/app/controllers/files_controller.rb index 7ae1b85f8..69b356b5a 100644 --- a/app/controllers/files_controller.rb +++ b/app/controllers/files_controller.rb @@ -458,10 +458,16 @@ class FilesController < ApplicationController if params[:in_project_toolbar] @in_project_toolbar = params[:in_project_toolbar] end - # 发送邮件 attachments = Attachment.attach_filesex(@project, params[:attachments], params[:attachment_type]) if !attachments.empty? && !attachments[:files].blank? && Setting.notified_events.include?('file_added') + # 发送邮件 Mailer.run.attachments_added(attachments[:files]) + # 生成动态 + attachments[:files].each do |file| + ForgeActivity.create(:user_id => User.current.id, :project_id => @project.id, :forge_act_id => file.id, :forge_act_type => "Attachment") + end + # 更新资源总数, 根据上传的附件数累加 + @project.project_score.update_attribute(:attach_num, @project.project_score.attach_num + attachments[:files].count) unless @project.project_score.nil? end # end if params[:project_attachment_type] && params[:project_attachment_type].is_a?(Array) @@ -485,11 +491,6 @@ class FilesController < ApplicationController end end end - # 更新资源总数, 根据上传的附件数累加 - unless @project.project_score.nil? - @project.project_score.update_attribute(:attach_num, @project.project_score.attach_num + attachments[:files].count) - end - # end # TODO: 临时用 nyan sort_init 'created_on', 'desc' sort_update 'created_on' => "#{Attachment.table_name}.created_on", diff --git a/app/models/attachment.rb b/app/models/attachment.rb index 714da9920..881621c3a 100644 --- a/app/models/attachment.rb +++ b/app/models/attachment.rb @@ -90,7 +90,7 @@ class Attachment < ActiveRecord::Base @@thumbnails_storage_path = File.join(Rails.root, "tmp", "thumbnails") before_save :files_to_final_location - after_save :act_as_course_activity,:act_as_forge_activity + after_save :act_as_course_activity after_create :office_conver, :be_user_score,:create_attachment_ealasticsearch_index after_update :office_conver, :be_user_score,:update_attachment_ealasticsearch_index after_destroy :delete_from_disk,:down_user_score,:delete_attachment_ealasticsearch_index, :decrease_attchments_count, :down_course_score From 9273e37a5b8c1effd20a1e5e7a3866606f3ce6ea Mon Sep 17 00:00:00 2001 From: alan <547533434@qq.com> Date: Wed, 23 Mar 2016 00:04:53 +0800 Subject: [PATCH 09/37] =?UTF-8?q?=E4=BC=98=E5=8C=96SQL=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=EF=BC=9A1=EF=BC=8Cmembers=E4=B8=8Eusers=E8=A1=A8=E5=85=B3?= =?UTF-8?q?=E8=81=94=E6=9F=A5=E8=AF=A2=EF=BC=9B=202=EF=BC=8Cblogs=E8=A1=A8?= =?UTF-8?q?=E5=8D=95=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/users_controller.rb | 7 ++++++- app/helpers/issues_helper.rb | 4 ++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index d85778e73..6802a2bd0 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -1250,7 +1250,12 @@ class UsersController < ApplicationController end else # @user_activities = UserActivity.where("(container_type = 'Project' and container_id in #{user_project_ids} and act_type in #{project_types}) or (container_type = 'Course' and container_id in #{user_course_ids} and act_type in #{course_types})or (container_type = 'Principal' and act_type= '#{principal_types}' and container_id = #{@user.id})").order('updated_at desc').limit(10).offset(@page * 10) - blog_ids = "("+@user.blog.id.to_s+","+((User.watched_by(@user.id).count == 0 )? '0' :User.watched_by(@user.id).map{|u| u.blog.id}.join(','))+")" + # blog_ids = "("+@user.blog.id.to_s+","+((User.watched_by(@user.id).count == 0 )? '0' :User.watched_by(@user.id).map{|u| u.blog.id}.join(','))+")" + # 减少数据库交互 + user_ids = "(" + @user.id.to_s + "," + User.watched_by(@user.id).map{|u| u.id }.join(',') + ")" + watched_user_blog_ids = Blog.select("id").where("author_id in #{user_ids}").map { |blog| blog.id}.join(",") + blog_ids = "(" + watched_user_blog_ids + ")" + @user_activities = UserActivity.where("(container_type = 'Project' and container_id in #{user_project_ids} and act_type in #{project_types})" + "or (container_type = 'Course' and container_id in #{user_course_ids} and act_type in #{course_types}) "+ "or (container_type = 'Principal' and act_type= '#{principal_types}' and container_id = #{@user.id}) " + diff --git a/app/helpers/issues_helper.rb b/app/helpers/issues_helper.rb index 4ad3cb49d..1cd22558b 100644 --- a/app/helpers/issues_helper.rb +++ b/app/helpers/issues_helper.rb @@ -111,9 +111,9 @@ module IssuesHelper def principals_options_for_isuue_list(project) if User.current.member_of?(project) - project.members.order("lower(users.login)").map{|c| [c.name, c.user_id]}.unshift(["<< #{l(:label_me)} >>", User.current.id]).unshift(["指派给", 0]) + project.members.includes(:user).order("lower(users.login)").map{|c| [c.name, c.user_id]}.unshift(["<< #{l(:label_me)} >>", User.current.id]).unshift(["指派给", 0]) else - project.members.order("lower(users.login)").map{|c| [c.name, c.user_id]}.unshift(["指派给", 0]) + project.members.includes(:user).order("lower(users.login)").map{|c| [c.name, c.user_id]}.unshift(["指派给", 0]) end end From 13e265b7d2e99b87ca3810ade108c5f88509b5a0 Mon Sep 17 00:00:00 2001 From: alan <547533434@qq.com> Date: Wed, 23 Mar 2016 18:25:50 +0800 Subject: [PATCH 10/37] =?UTF-8?q?=E4=BC=98=E5=8C=96=20layouts/=5Fuser=5Fpr?= =?UTF-8?q?ojects=20=E5=92=8C=20layouts/=5Fuser=5Fcourses=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/helpers/application_helper.rb | 2 +- app/views/layouts/new_base_user.html.erb | 17 +++++++++++++++-- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 3a5cdb1a1..6432d83d8 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -764,7 +764,7 @@ module ApplicationHelper # 判断版本库是否初始为gitlab def rep_is_gitlab?(project) - rep = Repository.where("project_id =? and type =?", project, "Repository::Gitlab") + rep = project.repositories.where("type =?", "Repository::Gitlab") return rep.blank? ? true :false end diff --git a/app/views/layouts/new_base_user.html.erb b/app/views/layouts/new_base_user.html.erb index c90c69f75..c288b9402 100644 --- a/app/views/layouts/new_base_user.html.erb +++ b/app/views/layouts/new_base_user.html.erb @@ -204,7 +204,13 @@ <% end%> <% end%> - <% courses = @user.courses.visible.where("is_delete =?", 0).select("courses.*,(SELECT MAX(updated_at) FROM `course_activities` WHERE course_activities.course_id = courses.id) AS a").order("a desc").limit(5) %> + <% course_order_ids = "(" + + CourseActivity.find_by_sql("SELECT c.course_id, updated_at FROM + (SELECT ca.course_id, MAX(ca.updated_at) AS updated_at FROM course_activities ca WHERE ca.course_id IN (" + @user.courses.visible.select('courses.id').map{|c| c.id}.join(',') + ") + GROUP BY ca.course_id) AS c + ORDER BY c.updated_at DESC limit 5").map {|c| c.course_id}.join(",") + ")"%> + <% courses = Course.where("id in #{course_order_ids}")%> + <%# courses = @user.courses.visible.where("is_delete =?", 0).select("courses.*,(SELECT MAX(updated_at) FROM `course_activities` WHERE course_activities.course_id = courses.id) AS a").order("a desc").limit(5) %>
      <%= render :partial => 'layouts/user_courses', :locals => {:courses => courses,:user => @user, :page => 0} %> @@ -217,7 +223,14 @@ <%=link_to "", new_project_path(:host=> Setting.host_name), :class => "homepageMenuSetting fr", :style => "margin-right:10px;", :title => "新建项目"%> <% end%>
    - <% projects = @user.projects.visible.select("projects.*,(SELECT MAX(created_at) FROM `forge_activities` WHERE forge_activities.project_id = projects.id) AS a").order("a desc").limit(5)%> + <% project_order_ids = "(" + + ForgeActivity.find_by_sql("SELECT p.project_id, p.created_at FROM + (SELECT fa.project_id, MAX(fa.created_at) AS created_at FROM forge_activities fa WHERE fa.project_id IN (" + @user.projects.visible.select('projects.id').map{|p| p.id}.join(',') + ") + GROUP BY fa.project_id) AS p + ORDER BY p.created_at DESC limit 5").map {|p| p.project_id}.join(",") + ")"%> + <%# project_order_ids = "(" + ForgeActivity.select("DISTINCT project_id, max(created_at) as max_created_at").where("project_id in #{"(" + @user.projects.visible.select("projects.id").map{|p| p.id}.join(",") + ")"}").order("max_created_at desc").map {|p| p.project_id}.join(",") + ")"%> + <% projects = Project.joins(:repositories).where("projects.id in #{project_order_ids} and repositories.type='Repository::Gitlab'")%> + <%# projects = @user.projects.visible.select("projects.*, (SELECT MAX(created_at) FROM `forge_activities` WHERE forge_activities.project_id = projects.id) AS a").order("a desc").limit(5)%>
      <%= render :partial => 'layouts/user_projects', :locals => {:projects => projects,:user => @user, :page => 0} %> From 185ad829cdb720382ffedcb6d0ae902ef623c6ba Mon Sep 17 00:00:00 2001 From: huang Date: Thu, 24 Mar 2016 09:36:46 +0800 Subject: [PATCH 11/37] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E8=AE=BF=E9=97=AE?= =?UTF-8?q?=E9=80=9F=E5=BA=A6=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/projects_controller.rb | 14 ++++++-------- app/controllers/users_controller.rb | 4 +--- app/helpers/issues_helper.rb | 4 ++-- app/models/user.rb | 16 +++++++++------- app/views/users/_project_issue_detail.html.erb | 8 ++++++++ 5 files changed, 26 insertions(+), 20 deletions(-) diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index fe7d4bbe5..b2a828768 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -308,20 +308,18 @@ class ProjectsController < ApplicationController if User.current.member_of?(@project) || User.current.admin? case params[:type] when nil - @events_pages = ForgeActivity.where("project_id = ? and forge_act_type in ('Issue', 'Message','News', 'ProjectCreateInfo', 'Attachment')",@project).order("updated_at desc").limit(10).offset(@page * 10) + @events_pages = ForgeActivity.where("project_id = ? and forge_act_type in ('Issue', 'Message','News', 'ProjectCreateInfo', 'Attachment')", @project).includes(:forge_act).order("updated_at desc").limit(10).offset(@page * 10) when 'issue' - @events_pages = ForgeActivity.where("project_id = ? and forge_act_type = 'Issue'",@project).order("updated_at desc").limit(10).offset(@page * 10) + @events_pages = ForgeActivity.where("project_id = ? and forge_act_type = 'Issue'", @project).includes(:forge_act).order("updated_at desc").limit(10).offset(@page * 10) when 'news' - @events_pages = ForgeActivity.where("project_id = ? and forge_act_type = 'News'",@project).order("updated_at desc").limit(10).offset(@page * 10) + @events_pages = ForgeActivity.where("project_id = ? and forge_act_type = 'News'", @project).includes(:forge_act).order("updated_at desc").limit(10).offset(@page * 10) when 'message' - @events_pages = ForgeActivity.where("project_id = ? and forge_act_type = 'Message'",@project).order("updated_at desc").limit(10).offset(@page * 10) + @events_pages = ForgeActivity.where("project_id = ? and forge_act_type = 'Message'", @project).includes(:forge_act).order("updated_at desc").limit(10).offset(@page * 10) when 'attachment' - @events_pages = ForgeActivity.where("project_id = ? and forge_act_type = 'Attachment'",@project).order("updated_at desc").limit(10).offset(@page * 10) + @events_pages = ForgeActivity.where("project_id = ? and forge_act_type = 'Attachment'", @project).includes(:forge_act).order("updated_at desc").limit(10).offset(@page * 10) end else - @events_pages = ForgeActivity.includes(:project).where("forge_activities.project_id = ? and projects.is_public - = ? and forge_act_type != ? ",@project,1, "Document").order("created_at desc") - .page(params['page'|| 1]).per(10); + @events_pages = ForgeActivity.includes(:project).where("forge_activities.project_id = ? and projects.is_public = ? and forge_act_type != ? ",@project,1, "Document").order("created_at desc").page(params['page'|| 1]).per(10); end # 根据对应的请求,返回对应的数据 respond_to do |format| diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index d85778e73..658b44e40 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -1206,9 +1206,7 @@ class UsersController < ApplicationController def show # 统计访问量 - unless User.current == @user - @user.update_attribute(:visits, @user.visits.to_i + 1) - end + @user.update_column(:visits, @user.visits.to_i + 1) unless User.current == @user #更新用户申请成为课程老师或教辅消息的状态 if params[:course_id] != nil join_course_messages = CourseMessage.where("course_id =? and course_message_type =? and user_id =? and course_message_id =? and viewed =?", diff --git a/app/helpers/issues_helper.rb b/app/helpers/issues_helper.rb index 4ad3cb49d..1cd22558b 100644 --- a/app/helpers/issues_helper.rb +++ b/app/helpers/issues_helper.rb @@ -111,9 +111,9 @@ module IssuesHelper def principals_options_for_isuue_list(project) if User.current.member_of?(project) - project.members.order("lower(users.login)").map{|c| [c.name, c.user_id]}.unshift(["<< #{l(:label_me)} >>", User.current.id]).unshift(["指派给", 0]) + project.members.includes(:user).order("lower(users.login)").map{|c| [c.name, c.user_id]}.unshift(["<< #{l(:label_me)} >>", User.current.id]).unshift(["指派给", 0]) else - project.members.order("lower(users.login)").map{|c| [c.name, c.user_id]}.unshift(["指派给", 0]) + project.members.includes(:user).order("lower(users.login)").map{|c| [c.name, c.user_id]}.unshift(["指派给", 0]) end end diff --git a/app/models/user.rb b/app/models/user.rb index 78d823ea7..2a9a13c73 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -339,13 +339,15 @@ class User < Principal message_new_time.onclick_time = User.current.last_login_on.nil? ? Time.now : User.current.last_login_on message_new_time.save end - course_count = CourseMessage.where("user_id =? and viewed =? and created_at >?", User.current.id, 0, User.current.onclick_time.onclick_time).count - forge_count = ForgeMessage.where("user_id =? and viewed =? and created_at >?", User.current.id, 0, User.current.onclick_time.onclick_time).count - user_feedback_count = UserFeedbackMessage.where("user_id =? and viewed =? and created_at >?", User.current.id, 0, User.current.onclick_time.onclick_time).count - user_memo_count = MemoMessage.where("user_id =? and viewed =? and created_at >?", User.current.id, 0, User.current.onclick_time.onclick_time).count - system_messages_count = SystemMessage.where("created_at >?", User.current.onclick_time.onclick_time).count - at_count = AtMessage.where("user_id =? and viewed =? and created_at >?", User.current.id, 0, User.current.onclick_time.onclick_time).count - org_count = OrgMessage.where("user_id=? and viewed =? and created_at >?", User.current.id,0, User.current.onclick_time.onclick_time).count + user = User.current + onclick_time = user.onclick_time.onclick_time + course_count = CourseMessage.where("user_id =? and viewed =? and created_at >?", user.id, 0, onclick_time).count + forge_count = ForgeMessage.where("user_id =? and viewed =? and created_at >?", user.id, 0, onclick_time).count + user_feedback_count = UserFeedbackMessage.where("user_id =? and viewed =? and created_at >?", user.id, 0, onclick_time).count + user_memo_count = MemoMessage.where("user_id =? and viewed =? and created_at >?", user.id, 0, onclick_time).count + system_messages_count = SystemMessage.where("created_at >?", onclick_time).count + at_count = AtMessage.where("user_id =? and viewed =? and created_at >?", user.id, 0, onclick_time).count + org_count = OrgMessage.where("user_id=? and viewed =? and created_at >?", user.id,0, onclick_time).count messages_count = course_count + forge_count + user_feedback_count + user_memo_count + system_messages_count + at_count + org_count end diff --git a/app/views/users/_project_issue_detail.html.erb b/app/views/users/_project_issue_detail.html.erb index 1235b4e53..95e297f49 100644 --- a/app/views/users/_project_issue_detail.html.erb +++ b/app/views/users/_project_issue_detail.html.erb @@ -54,6 +54,10 @@ <% end %>
      + + + + <%= form_tag({:controller => 'issues', :action => 'update', :id => activity.id, :issue_detail => true, :type => "assigned"},:remote=>'true', :method => :put, :id=>"issue_query_assign_form_#{activity.id}", :class => 'query_form') do %>
    •  指派  : 

      @@ -66,6 +70,10 @@
    • <% end %>
      + + + +
      <%= form_tag({:controller => 'issues', :action => 'update', :id => activity.id, :issue_detail => true, :type => "prior"},:remote=>'true', :method => :put, :id=>"issue_query_prior_form_#{activity.id}", :class => 'query_form') do %> From 0d049bbe1f0bf885697e3444748507b68fb224fc Mon Sep 17 00:00:00 2001 From: alan <547533434@qq.com> Date: Thu, 24 Mar 2016 10:07:39 +0800 Subject: [PATCH 12/37] refactor new_base_user --- app/views/layouts/new_base_user.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/layouts/new_base_user.html.erb b/app/views/layouts/new_base_user.html.erb index c288b9402..a613d8984 100644 --- a/app/views/layouts/new_base_user.html.erb +++ b/app/views/layouts/new_base_user.html.erb @@ -229,7 +229,7 @@ GROUP BY fa.project_id) AS p ORDER BY p.created_at DESC limit 5").map {|p| p.project_id}.join(",") + ")"%> <%# project_order_ids = "(" + ForgeActivity.select("DISTINCT project_id, max(created_at) as max_created_at").where("project_id in #{"(" + @user.projects.visible.select("projects.id").map{|p| p.id}.join(",") + ")"}").order("max_created_at desc").map {|p| p.project_id}.join(",") + ")"%> - <% projects = Project.joins(:repositories).where("projects.id in #{project_order_ids} and repositories.type='Repository::Gitlab'")%> + <% projects = Project.where("projects.id in #{project_order_ids}")%> <%# projects = @user.projects.visible.select("projects.*, (SELECT MAX(created_at) FROM `forge_activities` WHERE forge_activities.project_id = projects.id) AS a").order("a desc").limit(5)%>
        From d6f81c89784a511feffb88b249d47ede86cf3980 Mon Sep 17 00:00:00 2001 From: huang Date: Thu, 24 Mar 2016 10:41:08 +0800 Subject: [PATCH 13/37] =?UTF-8?q?=E8=AF=BE=E7=A8=8B=E8=AE=A8=E8=AE=BA?= =?UTF-8?q?=E5=8C=BA=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/boards_controller.rb | 31 +++++++--------------------- 1 file changed, 8 insertions(+), 23 deletions(-) diff --git a/app/controllers/boards_controller.rb b/app/controllers/boards_controller.rb index c8518e8a3..a77346d89 100644 --- a/app/controllers/boards_controller.rb +++ b/app/controllers/boards_controller.rb @@ -70,31 +70,16 @@ class BoardsController < ApplicationController def show # 讨论区消息状态更新(已读和未读) if @project - query_forge_messages = @board.messages - query_forge_messages.each do |query_forge_message| - query = query_forge_message.forge_messages - query.each do |forge_message| - if User.current.id == forge_message.user_id - forge_message.update_attributes(:viewed => true) - end - end - end + ForgeMessage.where("user_id =? and project_id =? and viewed =?", User.current.id, @project.id, 0).update_all(:viewed => true) # 更新@消息为已读 - @project.boards.each do |board| - board.messages.each do |m| - User.current.at_messages.unviewed('Message', m.id).each {|x| x.viewed!} - end - end + # 注释掉这句是因为和上面的方法代码重复,一个类型的消息,已经更新就不需要再更新 + # @project.boards.each do |board| + # board.messages.each do |m| + # User.current.at_messages.unviewed('Message', m.id).each {|x| x.viewed!} + # end + # end elsif @course - query_course_messages = @board.messages - query_course_messages.each do |query_course_message| - query = query_course_message.course_messages - query.each do |course_message| - if User.current.id == course_message.user_id - course_message.update_attributes(:viewed => true) - end - end - end + CourseMessage.where("user_id =? and course_id =? and viewed =?", User.current.id, @course.id, 0).update_all(:viewed => true) end sort_init 'updated_on', 'desc' From 1330f02db80cee79f1455ec813092aaf794fec8c Mon Sep 17 00:00:00 2001 From: huang Date: Thu, 24 Mar 2016 12:59:03 +0800 Subject: [PATCH 14/37] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E7=9A=84=E5=8A=A8=E6=80=81=E4=BB=A5=E5=A4=9A=E6=80=81=E5=BD=A2?= =?UTF-8?q?=E5=BC=8F=E5=AD=98=E5=85=A5forge=5Factivities?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/projects_controller.rb | 2 +- app/models/project.rb | 7 +++---- app/views/layouts/base_projects.html.erb | 16 ---------------- app/views/projects/_project_activities.html.erb | 2 +- 4 files changed, 5 insertions(+), 22 deletions(-) diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index b2a828768..113e37af3 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -308,7 +308,7 @@ class ProjectsController < ApplicationController if User.current.member_of?(@project) || User.current.admin? case params[:type] when nil - @events_pages = ForgeActivity.where("project_id = ? and forge_act_type in ('Issue', 'Message','News', 'ProjectCreateInfo', 'Attachment')", @project).includes(:forge_act).order("updated_at desc").limit(10).offset(@page * 10) + @events_pages = ForgeActivity.where("project_id = ? and forge_act_type in ('Issue', 'Message','News', 'Project', 'Attachment')", @project).includes(:forge_act).order("updated_at desc").limit(10).offset(@page * 10) when 'issue' @events_pages = ForgeActivity.where("project_id = ? and forge_act_type = 'Issue'", @project).includes(:forge_act).order("updated_at desc").limit(10).offset(@page * 10) when 'news' diff --git a/app/models/project.rb b/app/models/project.rb index 32677143d..184b3c7af 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -108,7 +108,8 @@ class Project < ActiveRecord::Base has_many :tags, :through => :project_tags, :class_name => 'Tag' has_many :project_tags, :class_name => 'ProjectTags' # 动态级联删除 - has_many :forge_activities, :class_name => 'ForgeActivity', :dependent => :destroy + has_many :forge_acts, :class_name => 'ForgeActivity',:as =>:forge_act ,:dependent => :destroy + #has_many :forge_activities, :class_name => 'ForgeActivity', :as =>:forge_act, :dependent => :destroy # 关联虚拟表 has_many :forge_messages, :class_name =>'ForgeMessage', :as => :forge_message, :dependent => :destroy @@ -1212,9 +1213,7 @@ class Project < ActiveRecord::Base # Author lizanle # Description 新建项目要在ForgeActivities中加一条数据。 def acts_as_forge_activities - fa = ForgeActivity.new(:user_id => User.current.id,:project_id => self.id, - :forge_act_id => self.id,:forge_act_type => "ProjectCreateInfo") - fa.save! + self.forge_acts << ForgeActivity.new(:user_id => User.current.id, :project_id => self.id) end diff --git a/app/views/layouts/base_projects.html.erb b/app/views/layouts/base_projects.html.erb index 5ad25d5bd..3af8f9212 100644 --- a/app/views/layouts/base_projects.html.erb +++ b/app/views/layouts/base_projects.html.erb @@ -44,8 +44,6 @@
        - - <%#= render :partial => 'layouts/new_header'%>
        @@ -104,20 +102,6 @@