diff --git a/app/controllers/at_controller.rb b/app/controllers/at_controller.rb
index 9e7309646..25e731754 100644
--- a/app/controllers/at_controller.rb
+++ b/app/controllers/at_controller.rb
@@ -53,6 +53,7 @@ class AtController < ApplicationController
end
def find_project(id)
+ return [] if id<0
at_persons = Project.find(id).users
at_persons.delete_if { |u| u.id == User.current.id }
end
diff --git a/app/controllers/comments_controller.rb b/app/controllers/comments_controller.rb
index 11a788590..c8dcf0b8e 100644
--- a/app/controllers/comments_controller.rb
+++ b/app/controllers/comments_controller.rb
@@ -54,16 +54,9 @@ class CommentsController < ApplicationController
# end
# # ������ض�̬�ļ�¼add end
#flash[:notice] = l(:label_comment_added)
- course_activity = CourseActivity.where("course_act_type='News' and course_act_id =#{@news.id}").first
- if course_activity
- course_activity.updated_at = Time.now
- course_activity.save
- end
- user_activity = UserActivity.where("act_type='News' and act_id =#{@news.id}").first
- if user_activity
- user_activity.updated_at = Time.now
- user_activity.save
- end
+ update_course_activity(@news.class,@news.id)
+ update_user_activity(@news.class,@news.id)
+ update_org_activity(@news.class,@news.id)
end
if params[:user_activity_id]
diff --git a/app/controllers/files_controller.rb b/app/controllers/files_controller.rb
index 70a0b76b8..42b486e69 100644
--- a/app/controllers/files_controller.rb
+++ b/app/controllers/files_controller.rb
@@ -17,8 +17,7 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
class FilesController < ApplicationController
-
- layout 'base_projects' #by young
+ layout 'base_projects' #by young
menu_item :files
before_filter :auth_login1, :only => [:index]
@@ -454,6 +453,9 @@ class FilesController < ApplicationController
end
end
end
+ # 更新资源总数, 根据上传的附件数累加
+ @project.update_attribute(:attachments_count, @project.attachments_count + attachments[:files].count)
+ # end
# TODO: 临时用 nyan
sort_init 'created_on', 'desc'
sort_update 'created_on' => "#{Attachment.table_name}.created_on",
@@ -482,9 +484,6 @@ class FilesController < ApplicationController
if !attachments.empty? && !attachments[:files].blank? && Setting.notified_events.include?('file_added')
Mailer.run.attachments_added(attachments[:files])
end
- # 更新课程英雄榜得分
- update_contributor_score(@course, attachments[:files].first)
- # end
if params[:course_attachment_type] && params[:course_attachment_type].is_a?(Array)
params[:course_attachment_type].each do |type|
tag_name = get_tag_name_by_type_number type
@@ -506,8 +505,9 @@ class FilesController < ApplicationController
end
end
end
-
-
+ # 更新课程英雄榜得分
+ update_contributor_score(@course, attachments[:files].first)
+ # end
# TODO: 临时用 nyan
sort_init 'created_on', 'desc'
sort_update 'created_on' => "#{Attachment.table_name}.created_on",
@@ -828,5 +828,5 @@ class FilesController < ApplicationController
def upload_files_menu
- end
+end
end
diff --git a/app/controllers/issues_controller.rb b/app/controllers/issues_controller.rb
index 4aa959e81..8fc13c83c 100644
--- a/app/controllers/issues_controller.rb
+++ b/app/controllers/issues_controller.rb
@@ -405,9 +405,9 @@ class IssuesController < ApplicationController
jour.journalized = @issue
jour.save_attachments(params[:attachments])
jour.save
- user_activity = UserActivity.where("act_type='Issue' and act_id =#{@issue.id}").first
- user_activity.updated_at = jour.created_on
- user_activity.save
+ update_user_activity(@issue.class,@issue.id)
+ update_forge_activity(@issue.class,@issue.id)
+
@user_activity_id = params[:user_activity_id]
if params[:issue_id]
@issue_id = params[:issue_id]
@@ -455,9 +455,9 @@ class IssuesController < ApplicationController
@issue = Issue.find params[:id]
jour.journalized = @issue
jour.save
- user_activity = UserActivity.where("act_type='Issue' and act_id =#{@issue.id}").first
- user_activity.updated_at = jour.created_on
- user_activity.save
+ update_user_activity(@issue.class,@issue.id)
+ update_forge_activity(@issue.class,@issue.id)
+
respond_to do |format|
format.js
end
diff --git a/app/controllers/messages_controller.rb b/app/controllers/messages_controller.rb
index 72bffa06c..17111b3f3 100644
--- a/app/controllers/messages_controller.rb
+++ b/app/controllers/messages_controller.rb
@@ -176,26 +176,11 @@ class MessagesController < ApplicationController
@reply.subject = "RE: #{@topic.subject}" unless params[:reply][:subject]
# @reply.reply_id = params[:id]
@topic.children << @reply
- course_activity = CourseActivity.where("course_act_type='Message' and course_act_id =#{@topic.id}").first
- if course_activity
- course_activity.updated_at = Time.now
- course_activity.save
- end
- forge_activity = ForgeActivity.where("forge_act_type='Message' and forge_act_id=#{@topic.id}").first
- if forge_activity
- forge_activity.updated_at = Time.now
- forge_activity.save
- end
- user_activity = UserActivity.where("act_type='Message' and act_id =#{@topic.id}").first
- if user_activity
- user_activity.updated_at = Time.now
- user_activity.save
- end
- org_activity = OrgActivity.where("org_act_type='Message' and org_act_id =#{@topic.id}").first
- if org_activity
- org_activity.updated_at = Time.now
- org_activity.save
- end
+ update_course_activity(@topic.class,@topic.id)
+ update_user_activity(@topic.class,@topic.id)
+ update_forge_activity(@topic.class,@topic.id)
+ update_org_activity(@topic.class,@topic.id)
+
#@topic.update_attribute(:updated_on, Time.now)
if !@reply.new_record?
if params[:asset_id]
diff --git a/app/controllers/repositories_controller.rb b/app/controllers/repositories_controller.rb
index 1674055ac..4d407e35e 100644
--- a/app/controllers/repositories_controller.rb
+++ b/app/controllers/repositories_controller.rb
@@ -344,20 +344,15 @@ update
#Modified by young
# (show_error_not_found; return) unless @entries
g = Gitlab.client
-
- # count = 0
- # (0..100).each do |page|
- # if g.commits(@project.gpid,:page => page).count == 0
- # break
- # else
- # count = count + g.commits(@project.gpid,:page => page).count
- # end
- # end
-
@changesets = g.commits(@project.gpid, :ref_name => @rev)
# @changesets = @repository.latest_changesets(@path, @rev)
# @changesets_count = @repository.latest_changesets(@path, @rev).count
- @changesets_all_count = @project.gpid.nil? ? 0 : g.commits_total_count(@project.gpid).count
+ @changesets_all_count = @project.gpid.nil? ? 0 : g.project(@project.gpid).commit_count
+ # 访问该页面的是会后则刷新
+ if @changesets_all_count != @project.commits_count && @changesets_all_count != 0
+ update_commits_count(@project, @changesets_all_count)
+ end
+ # end
@changesets_latest_coimmit = @changesets[0]
@properties = @repository.properties(@path, @rev)
@repositories = @project.repositories
@@ -583,6 +578,10 @@ update
end
private
+ # 更新项目统计数
+ def update_commits_count project, count
+ project.update_attribute(:commits_count, count)
+ end
def find_repository
@repository = Repository.find(params[:id])
diff --git a/app/controllers/student_work_controller.rb b/app/controllers/student_work_controller.rb
index 9319c4db2..2f6c4ecc7 100644
--- a/app/controllers/student_work_controller.rb
+++ b/app/controllers/student_work_controller.rb
@@ -259,16 +259,10 @@ class StudentWorkController < ApplicationController
stu_project.save
end
end
- course_activity = CourseActivity.where("course_act_type='HomeworkCommon' and course_act_id =#{@homework.id}").first
- if course_activity
- course_activity.updated_at = Time.now
- course_activity.save
- end
- user_activity = UserActivity.where("act_type='HomeworkCommon' and act_id =#{@homework.id}").first
- if user_activity
- user_activity.updated_at = Time.now
- user_activity.save
- end
+ update_course_activity(@homework.class,@homework.id)
+ update_user_activity(@homework.class,@homework.id)
+ update_org_activity(@homework.class,@homework.id)
+
course_message = CourseMessage.new(:user_id =>User.current.id,:content=>"new",:course_message_id=>student_work.id,:course_id => @course.id,:course_message_type=>"StudentWork", :status => 9) #作品提交记录
course_message.save
diff --git a/app/controllers/words_controller.rb b/app/controllers/words_controller.rb
index 79981ec4d..ebd46caa7 100644
--- a/app/controllers/words_controller.rb
+++ b/app/controllers/words_controller.rb
@@ -57,21 +57,11 @@ class WordsController < ApplicationController
@jfm = add_reply_adapter options
@save_succ = true if @jfm.errors.empty?
if @save_succ
- course_activity = CourseActivity.where("course_act_type='JournalsForMessage' and course_act_id =#{parent_id}").first
- if course_activity
- course_activity.updated_at = Time.now
- course_activity.save
- end
- principal_activity = PrincipalActivity.where("principal_act_type='JournalsForMessage' and principal_act_id =#{parent_id}").first
- if principal_activity
- principal_activity.updated_at = Time.now
- principal_activity.save
- end
- user_activity = UserActivity.where("act_type='JournalsForMessage' and act_id =#{parent_id}").first
- if user_activity
- user_activity.updated_at = Time.now
- user_activity.save
- end
+ update_course_activity('JournalsForMessage',parent_id)
+ update_user_activity('JournalsForMessage',parent_id)
+ update_forge_activity('JournalsForMessage',parent_id)
+ update_org_activity('JournalsForMessage',parent_id)
+ update_principal_activity('JournalsForMessage',parent_id)
end
respond_to do |format|
# format.html {
@@ -278,16 +268,9 @@ class WordsController < ApplicationController
update_kindeditor_assets_owner ids,feedback[:id],OwnerTypeHelper::JOURNALSFORMESSAGE
end
- course_activity = CourseActivity.where("course_act_type='HomeworkCommon' and course_act_id =#{@homework_common.id}").first
- if course_activity
- course_activity.updated_at = Time.now
- course_activity.save
- end
- user_activity = UserActivity.where("act_type='HomeworkCommon' and act_id =#{@homework_common.id}").first
- if user_activity
- user_activity.updated_at = Time.now
- user_activity.save
- end
+ update_course_activity(@homework_common.class,@homework_common.id)
+ update_user_activity(@homework_common.class,@homework_common.id)
+ update_org_activity(@homework_common.class,@homework_common.id)
respond_to do |format|
format.js{
@user_activity_id = params[:user_activity_id]
diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
index 9b7888bf2..17f80cec8 100644
--- a/app/helpers/application_helper.rb
+++ b/app/helpers/application_helper.rb
@@ -49,6 +49,12 @@ module ApplicationHelper
end
end
+ # 获取项目/课程总分
+ # 发布缺陷 4分 回复缺陷 1分 提交一次 4分 讨论帖子 2分 回复帖子 1分 发布新闻 1分
+ def static_project_score obj
+ score = obj.issues_count * 4 + obj.journals_count + obj.commits_count * 4 + obj.boards_count * 2 + obj.boards_reply_count + obj.news_count + obj.attachments_count * 5
+ end
+
# 获取组织成员中文名字
def get_org_member_role_name member
case member.roles[0].name
@@ -2784,8 +2790,48 @@ int main(int argc, char** argv){
#代码提交数量
def changesets_num project
g = Gitlab.client
- project.gpid.nil? ? 0 : g.commits_total_count(project.gpid).count
- # # commits_total_count(project.gpid)
+ project.gpid.nil? ? 0 : g.project(project.gpid).commit_count
# project.changesets.count
end
+
+ #课程动态的更新
+ def update_course_activity type, id
+ course_activity = CourseActivity.where("course_act_type=? and course_act_id =?", type.to_s, id).first
+ if course_activity
+ course_activity.updated_at = Time.now
+ course_activity.save
+ end
+ end
+ #首页动态更新
+ def update_user_activity type, id
+ user_activity = UserActivity.where("act_type=? and act_id =?", type.to_s, id).first
+ if user_activity
+ user_activity.updated_at = Time.now
+ user_activity.save
+ end
+ end
+ #项目动态更新
+ def update_forge_activity type, id
+ forge_activity = ForgeActivity.where("forge_act_type=? and forge_act_id=?", type.to_s, id).first
+ if forge_activity
+ forge_activity.updated_at = Time.now
+ forge_activity.save
+ end
+ end
+ #组织动态更新
+ def update_org_activity type , id
+ org_activity = OrgActivity.where("org_act_type=? and org_act_id =?", type.to_s, id).first
+ if org_activity
+ org_activity.updated_at = Time.now
+ org_activity.save
+ end
+ end
+ #个人动态更新
+ def update_principal_activity type, id
+ principal_activity = PrincipalActivity.where("principal_act_type=? and principal_act_id =?", type.to_s, id).first
+ if principal_activity
+ principal_activity.updated_at = Time.now
+ principal_activity.save
+ end
+ end
end
diff --git a/app/helpers/courses_helper.rb b/app/helpers/courses_helper.rb
index a1b119cb5..097a3c1a4 100644
--- a/app/helpers/courses_helper.rb
+++ b/app/helpers/courses_helper.rb
@@ -507,8 +507,10 @@ module CoursesHelper
#课程实践年份下拉框
def course_time_option year
type = []
+ month = Time.now.month
now_year = year.nil? ? Time.now.year : (Time.now.year <= year ? Time.now.year : year)
- for i in (now_year..now_year + 10)
+ year = month < 3 ? now_year - 1 : now_year
+ for i in (year..year + 10)
option = []
option << i
option << i
diff --git a/app/models/attachment.rb b/app/models/attachment.rb
index d90b0368e..3088714ee 100644
--- a/app/models/attachment.rb
+++ b/app/models/attachment.rb
@@ -90,7 +90,7 @@ class Attachment < ActiveRecord::Base
before_save :files_to_final_location,:act_as_course_activity
after_create :office_conver, :be_user_score,:act_as_forge_activity,: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
+ after_destroy :delete_from_disk,:down_user_score,:delete_attachment_ealasticsearch_index#, :decrease_attchments_count
# add by nwb
# 获取所有可公开的资源文件列表
@@ -617,6 +617,7 @@ class Attachment < ActiveRecord::Base
self.__elasticsearch__.index_document
end
end
+
def update_attachment_ealasticsearch_index
if self.is_public == 1 && ( ((self.container_type == 'Project' or self.container_type == 'Version') && Project.find(self.container_id).is_public == 1) ||
( self.container_type == 'Course' && Course.find(self.container_id).is_public == 1) ||
@@ -632,12 +633,20 @@ class Attachment < ActiveRecord::Base
end
end
end
+
def delete_attachment_ealasticsearch_index
begin
self.__elasticsearch__.delete_document
rescue => e
end
end
+
+ # def decrease_attchments_count
+ # if self.container_type == "Project"
+ # count = self.container.attachments_count
+ # #self.container.update_attribute(:attachments_count, self.container.attachments_count - 1)
+ # end
+ # end
end
# Delete the previous articles index in Elasticsearch
diff --git a/app/models/blog_comment.rb b/app/models/blog_comment.rb
index 27da33121..db28e55d6 100644
--- a/app/models/blog_comment.rb
+++ b/app/models/blog_comment.rb
@@ -17,6 +17,7 @@ class BlogComment < ActiveRecord::Base
safe_attributes 'title', 'content',"sticky", "locked"
after_save :add_user_activity
+ after_update :update_activity
before_destroy :destroy_user_activity
scope :like, lambda {|arg|
@@ -28,6 +29,15 @@ class BlogComment < ActiveRecord::Base
end
}
+ #动态更新
+ def update_activity
+ user_activity = UserActivity.where("act_type='BlogComment' and act_id =?",self.id).first
+ if user_activity
+ user_activity.updated_at = Time.now
+ user_activity.save
+ end
+ end
+
#在个人动态里面增加当前动态
def add_user_activity
if self.parent_id.nil? #只有发博文才插入动态
diff --git a/app/models/course.rb b/app/models/course.rb
index 0194a2a9d..4e3b4fff0 100644
--- a/app/models/course.rb
+++ b/app/models/course.rb
@@ -70,7 +70,7 @@ class Course < ActiveRecord::Base
validates_length_of :description, :maximum => 10000
before_save :self_validate
# 公开课程变成私有课程,所有资源都变成私有
- after_update :update_files_public,:update_course_ealasticsearch_index
+ after_update :update_files_public,:update_course_ealasticsearch_index,:update_activity
after_create :create_board_sync, :act_as_course_activity, :act_as_course_message,:create_course_ealasticsearch_index
before_destroy :delete_all_members,:delete_course_ealasticsearch_index
@@ -428,6 +428,12 @@ class Course < ActiveRecord::Base
end
end
end
+#动态的更新
+def update_activity
+ update_course_activity(self.class, self.id)
+ update_user_activity(self.class, self.id)
+ update_org_activity(self.class, self.id)
+end
# Delete the previous articles index in Elasticsearch
# Course.__elasticsearch__.client.indices.delete index: Course.index_name rescue nil
diff --git a/app/models/forge_activity.rb b/app/models/forge_activity.rb
index c98c5475b..310d194a0 100644
--- a/app/models/forge_activity.rb
+++ b/app/models/forge_activity.rb
@@ -20,8 +20,8 @@ class ForgeActivity < ActiveRecord::Base
validates :forge_act_id,presence: true
validates :forge_act_type, presence: true
has_many :user_acts, :class_name => 'UserAcivity',:as =>:act
- after_save :add_user_activity, :add_org_activity
- before_destroy :destroy_user_activity, :destroy_org_activity
+ after_save :add_user_activity, :add_org_activity, :add_acts_count
+ before_destroy :destroy_user_activity, :destroy_org_activity, :decrease_acts_count
#在个人动态里面增加当前动态
def add_user_activity
@@ -45,6 +45,21 @@ class ForgeActivity < ActiveRecord::Base
end
end
+ # 更新动态数
+ def add_acts_count
+ if self.project
+ count = self.project.acts_count + 1
+ self.project.update_attribute(:acts_count, count)
+ end
+ end
+
+ def decrease_acts_count
+ if self.project
+ count = self.project.acts_count - 1
+ self.project.update_attribute(:acts_count, count)
+ end
+ end
+
def add_org_activity
org_activity = OrgActivity.where("org_act_type = '#{self.forge_act_type.to_s}' and org_act_id = #{self.forge_act_id}").first
if org_activity
diff --git a/app/models/homework_common.rb b/app/models/homework_common.rb
index 0ad667bd1..f8e222b0f 100644
--- a/app/models/homework_common.rb
+++ b/app/models/homework_common.rb
@@ -26,6 +26,7 @@ class HomeworkCommon < ActiveRecord::Base
:author => :author,
:url => Proc.new {|o| {:controller => 'student_work', :action => 'index', :homework => o.id}}
after_create :act_as_activity, :send_mail, :act_as_course_message
+ after_update :update_activity
after_save :act_as_course_activity
after_destroy :delete_kindeditor_assets
@@ -60,7 +61,12 @@ class HomeworkCommon < ActiveRecord::Base
end
end
end
-
+ #动态的更新
+ def update_activity
+ update_course_activity(self.class, self.id)
+ update_user_activity(self.class, self.id)
+ update_org_activity(self.class, self.id)
+ end
#删除对应的图片
def delete_kindeditor_assets
delete_kindeditor_assets_from_disk self.id,OwnerTypeHelper::HOMEWORKCOMMON
diff --git a/app/models/issue.rb b/app/models/issue.rb
index 5ecb3e36f..e898296af 100644
--- a/app/models/issue.rb
+++ b/app/models/issue.rb
@@ -83,9 +83,9 @@ class Issue < ActiveRecord::Base
attr_reader :current_journal
# fq
- after_create :act_as_activity,:be_user_score_new_issue,:act_as_forge_activity, :act_as_forge_message, :act_as_at_message
- after_update :be_user_score
- after_destroy :down_user_score
+ after_create :act_as_activity,:be_user_score_new_issue,:act_as_forge_activity, :act_as_forge_message, :act_as_at_message, :add_issues_count
+ after_update :be_user_score,:update_activity
+ after_destroy :down_user_score, :decrease_issues_count
# after_create :be_user_score
# end
@@ -126,6 +126,12 @@ class Issue < ActiveRecord::Base
after_save :after_create_from_copy
after_destroy :update_parent_attributes
+ #动态的更新
+ def update_activity
+ update_user_activity(self.class, self.id)
+ update_forge_activity(self.class, self.id)
+ update_org_activity(self.class, self.id)
+ end
# fq
def act_as_activity
@@ -165,6 +171,18 @@ class Issue < ActiveRecord::Base
end
end
+ # 创建issue的时候,issues_count加1
+ def add_issues_count
+ issue_count = self.project.issues_count + 1
+ self.project.update_attribute(:issues_count, issue_count)
+ end
+
+ # 删除issue的时候,issues_count减1
+ def decrease_issues_count
+ issue_count = self.project.issues_count - 1
+ self.project.update_attribute(:issues_count, issue_count)
+ end
+
# 更新缺陷
#def act_as_forge_message_update
# unless self.author_id == self.assigned_to_id
diff --git a/app/models/journal.rb b/app/models/journal.rb
index e1464a703..62f0d1d69 100644
--- a/app/models/journal.rb
+++ b/app/models/journal.rb
@@ -48,14 +48,14 @@ class Journal < ActiveRecord::Base
:conditions => "#{Journal.table_name}.journalized_type = 'Issue' AND" +
"(#{JournalDetail.table_name}.prop_key = 'status_id' OR #{Journal.table_name}.notes <> '')"}
- before_create :split_private_notes
+ before_create :split_private_notes, :add_journals_count
# fq
after_save :act_as_activity,:be_user_score, :act_as_forge_message, :act_as_at_message
# end
#after_destroy :down_user_score
#before_save :be_user_score
- after_destroy :down_user_score
+ after_destroy :down_user_score, :decrease_issues_journal_count
scope :visible, lambda {|*args|
user = args.shift || User.current
@@ -214,4 +214,20 @@ class Journal < ActiveRecord::Base
end
end
+
+ # 减少留言数量统计
+ def decrease_issues_journal_count
+ unless self.issue.project.nil?
+ project = self.issue.project
+ project.update_attribute(:journals_count, project.journals_count - 1)
+ end
+ end
+
+ # issue留言总数更新
+ def add_journals_count
+ unless self.issue.project.nil? && self.journalized_type == "Issue"
+ project = self.issue.project
+ project.update_attribute(:journals_count, project.journals_count + 1)
+ end
+ end
end
diff --git a/app/models/journals_for_message.rb b/app/models/journals_for_message.rb
index d3e76addc..9e0ce2dd2 100644
--- a/app/models/journals_for_message.rb
+++ b/app/models/journals_for_message.rb
@@ -70,12 +70,21 @@ class JournalsForMessage < ActiveRecord::Base
validates :notes, presence: true, if: :is_homework_jour?
after_create :act_as_activity, :act_as_course_activity, :act_as_course_message, :act_as_at_message, :act_as_user_feedback_message, :act_as_principal_activity, :act_as_student_score
after_create :reset_counters!
+ after_update :update_ativity
after_destroy :reset_counters!
after_save :be_user_score
after_destroy :down_user_score
# default_scope { where('m_parent_id IS NULL') }
+ #动态的更新
+ def update_activity
+ update_course_activity(self.class, self.id)
+ update_user_activity(self.class, self.id)
+ update_forge_activity(self.class, self.id)
+ update_org_activity(self.class, self.id)
+ update_principal_activity(self.class, self.id)
+ end
def self.create_by_user? user
if user.anonymous?
return false
diff --git a/app/models/message.rb b/app/models/message.rb
index 3bb08f481..2a83011f1 100644
--- a/app/models/message.rb
+++ b/app/models/message.rb
@@ -36,6 +36,8 @@ class Message < ActiveRecord::Base
has_many :forge_acts, :class_name => 'ForgeActivity',:as =>:forge_act ,:dependent => :destroy
# 课程动态
has_many :course_acts, :class_name => 'CourseActivity',:as =>:course_act ,:dependent => :destroy
+ has_many :user_acts, :class_name => 'UserActivity',:as =>:user_act ,:dependent => :destroy
+
# end
# 课程/项目 消息
has_many :course_messages, :class_name =>'CourseMessage', :as => :course_message, :dependent => :destroy
@@ -74,9 +76,9 @@ class Message < ActiveRecord::Base
validates_length_of :subject, :maximum => 255
validate :cannot_reply_to_locked_topic, :on => :create
- after_create :add_author_as_watcher, :reset_counters!
- after_update :update_messages_board
- after_destroy :reset_counters!,:down_user_score,:delete_kindeditor_assets
+ after_create :add_author_as_watcher, :reset_counters!, :add_boards_count
+ after_update :update_messages_board, :update_activity
+ after_destroy :reset_counters!,:down_user_score,:delete_kindeditor_assets, :decrease_boards_count
after_create :act_as_activity,:act_as_course_activity,:be_user_score,:act_as_forge_activity, :act_as_system_message, :send_mail, :act_as_student_score, :act_as_at_message
#before_save :be_user_score
@@ -125,6 +127,20 @@ class Message < ActiveRecord::Base
end
end
+ # 发帖精辟更新发帖总数
+ def add_boards_count
+ if self.project
+ # 讨论区
+ if self.parent_id.nil?
+ count = self.project.boards_count + 1
+ self.project.update_attribute(:boards_count, count)
+ else # 回复
+ count = self.project.boards_reply_count + 1
+ self.project.update_attribute(:boards_reply_count, count)
+ end
+ end
+ end
+
def reset_counters!
if parent && parent.id
Message.update_all({:last_reply_id => parent.children.maximum(:id)}, {:id => parent.id})
@@ -180,6 +196,13 @@ class Message < ActiveRecord::Base
def get_notify_is_read()
return @notify_is_read
end
+ #动态的更新
+ def update_activity
+ update_course_activity(self.class, self.id)
+ update_user_activity(self.class, self.id)
+ update_forge_activity(self.class, self.id)
+ update_org_activity(self.class, self.id)
+ end
private
@@ -303,6 +326,20 @@ class Message < ActiveRecord::Base
delete_kindeditor_assets_from_disk self.id,OwnerTypeHelper::MESSAGE
end
+ # 删除帖子的时候更新帖子总数, 删除回复的时候总数不减少
+ def decrease_boards_count
+ if self.project && self.parent_id.nil?
+ # 讨论区
+ if self.parent_id.nil?
+ count = self.project.boards_count - 1
+ self.project.update_attribute(:boards_count, count)
+ else # 回复
+ count = self.project.boards_reply_count - 1
+ self.project.update_attribute(:boards_reply_count, count)
+ end
+ end
+ end
+
# 课程成员得分(英雄榜)
def act_as_student_score
if self.course
diff --git a/app/models/news.rb b/app/models/news.rb
index a7407c91f..4903003e8 100644
--- a/app/models/news.rb
+++ b/app/models/news.rb
@@ -55,9 +55,9 @@ class News < ActiveRecord::Base
:author_key => :author_id
acts_as_watchable
- after_create :act_as_activity,:act_as_forge_activity, :act_as_course_activity,:act_as_system_message, :add_author_as_watcher, :send_mail
-
- after_destroy :delete_kindeditor_assets
+ after_create :act_as_activity,:act_as_forge_activity, :act_as_course_activity,:act_as_system_message, :add_author_as_watcher, :send_mail, :add_news_count
+ after_update :update_activity
+ after_destroy :delete_kindeditor_assets, :decrease_news_count
scope :visible, lambda {|*args|
includes(:project).where(Project.allowed_to_condition(args.shift || User.current, :view_news, *args))
@@ -68,6 +68,14 @@ class News < ActiveRecord::Base
}
safe_attributes 'title', 'summary', 'description', 'sticky'
+ #动态的更新
+ def update_activity
+ update_course_activity(self.class, self.id)
+ update_user_activity(self.class, self.id)
+ update_org_activity(self.class, self.id)
+ update_forge_activity(self.class, self.id)
+ end
+
def visible?(user=User.current)
!user.nil? && user.allowed_to?(:view_news, project)
end
@@ -107,10 +115,17 @@ class News < ActiveRecord::Base
end
private
+ def add_news_count
+ if self.project
+ count = self.project.news_count + 1
+ self.project.update_attribute(:news_count, count)
+ end
+ end
def add_author_as_watcher
Watcher.create(:watchable => self, :user => author)
end
+
## fq
def act_as_activity
self.acts << Activity.new(:user_id => self.author_id)
@@ -161,6 +176,13 @@ class News < ActiveRecord::Base
delete_kindeditor_assets_from_disk self.id,OwnerTypeHelper::NEWS
end
+ def decrease_news_count
+ if self.project
+ count = self.project.news_count - 1
+ self.project.update_attribute(:news_count, count)
+ end
+ end
+
def send_mail
Mailer.run.news_added(self) if Setting.notified_events.include?('news_added')
end
diff --git a/app/models/org_document_comment.rb b/app/models/org_document_comment.rb
index c1619fc6e..75db910c3 100644
--- a/app/models/org_document_comment.rb
+++ b/app/models/org_document_comment.rb
@@ -8,6 +8,16 @@ class OrgDocumentComment < ActiveRecord::Base
acts_as_attachable
has_many :org_acts, :class_name => 'OrgActivity',:as =>:org_act ,:dependent => :destroy
after_create :document_save_as_org_activity
+ after_update :update_activity
+
+ #动态的更新
+ def update_activity
+ org_activity = OrgActivity.where("org_act_type='OrgDocumentComment' and org_act_id =?", id).first
+ if org_activity
+ org_activity.updated_at = Time.now
+ org_activity.save
+ end
+ end
def document_save_as_org_activity
if(self.parent().nil?)
diff --git a/app/models/poll.rb b/app/models/poll.rb
index 67bb9f5a8..41bfe8a72 100644
--- a/app/models/poll.rb
+++ b/app/models/poll.rb
@@ -14,7 +14,7 @@ class Poll < ActiveRecord::Base
# 课程消息
has_many :course_messages, :class_name =>'CourseMessage', :as => :course_message, :dependent => :destroy
after_save :act_as_course_message, :act_as_activity, :act_as_course_activity
-
+ after_update :update_activity
acts_as_event :title => Proc.new {|o| "#{l(:label_course_poll)}: #{o.polls_name}" },
:description => :polls_description,
:datetime => :published_at,
@@ -32,6 +32,13 @@ class Poll < ActiveRecord::Base
self.acts << Activity.new(:user_id => self.user_id)
end
+ #动态的更新
+ def update_activity
+ update_course_activity(self.class, self.id)
+ update_user_activity(self.class, self.id)
+ update_org_activity(self.class, self.id)
+ end
+
#课程动态公共表记录
def act_as_course_activity
if self.polls_type == "Course"
diff --git a/app/models/project.rb b/app/models/project.rb
index cd4036810..f17124478 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -155,7 +155,7 @@ class Project < ActiveRecord::Base
# 创建project之后默认创建一个board,之后的board去掉了board的概念
after_create :create_board_sync,:acts_as_forge_activities,:create_project_ealasticsearch_index
before_destroy :delete_all_members,:delete_project_ealasticsearch_index
- after_update :update_project_ealasticsearch_index
+ # after_update :update_project_ealasticsearch_index
def remove_references_before_destroy
return if self.id.nil?
Watcher.delete_all ['watchable_id = ?', id]
@@ -1223,21 +1223,21 @@ class Project < ActiveRecord::Base
self.__elasticsearch__.index_document
end
end
- def update_project_ealasticsearch_index
- if self.is_public #如果是初次更新成为公开的情况,会报错,那么这条记录尚未被索引过。没有报错就是更新的其他属性
- begin
- self.__elasticsearch__.update_document
- rescue => e
- self.__elasticsearch__.index_document
- end
- else #如果是更新成为私有的,那么索引就要被删除
- begin
- self.__elasticsearch__.delete_document
- rescue => e
-
- end
- end
- end
+ # def update_project_ealasticsearch_index
+ # if self.is_public #如果是初次更新成为公开的情况,会报错,那么这条记录尚未被索引过。没有报错就是更新的其他属性
+ # begin
+ # self.__elasticsearch__.update_document
+ # rescue => e
+ # self.__elasticsearch__.index_document
+ # end
+ # else #如果是更新成为私有的,那么索引就要被删除
+ # begin
+ # self.__elasticsearch__.delete_document
+ # rescue => e
+ #
+ # end
+ # end
+ # end
def delete_project_ealasticsearch_index
begin
self.__elasticsearch__.delete_document
diff --git a/app/views/blogs/_article.html.erb b/app/views/blogs/_article.html.erb
index 0b813c4a7..0c43d0542 100644
--- a/app/views/blogs/_article.html.erb
+++ b/app/views/blogs/_article.html.erb
@@ -65,9 +65,13 @@
<% end%>
-
+
发帖时间:<%= format_time(activity.created_on) %>
+
+ 更新时间:<%= format_time(UserActivity.where("act_type='#{activity.class}' and act_id =#{activity.id}").first.updated_at) %>
+
+
<% if activity.parent_id.nil? %>
diff --git a/app/views/boards/_course_show_detail.html.erb b/app/views/boards/_course_show_detail.html.erb
index 804f6543e..1898fce02 100644
--- a/app/views/boards/_course_show_detail.html.erb
+++ b/app/views/boards/_course_show_detail.html.erb
@@ -40,7 +40,7 @@
}
$(function () {
- init_activity_KindEditor_data(<%= topic.id%>, null, "87%");
+ init_activity_KindEditor_data(<%= topic.id%>, null, "87%", "<%=topic.class.to_s%>");
});
<% if topic %>
diff --git a/app/views/files/_course_list.html.erb b/app/views/files/_course_list.html.erb
index 9c3c1efe2..f1d96d22c 100644
--- a/app/views/files/_course_list.html.erb
+++ b/app/views/files/_course_list.html.erb
@@ -20,7 +20,7 @@
- 上传时间:<%= format_date(file.created_on)%>
+ 上传时间:<%= format_time(file.created_on)%>
<% if file.tag_list.length > 0%>
上传类型:<%= file.tag_list[0] %>
<% end %>
diff --git a/app/views/files/_project_list.html.erb b/app/views/files/_project_list.html.erb
index 0d4b0f35e..391430126 100644
--- a/app/views/files/_project_list.html.erb
+++ b/app/views/files/_project_list.html.erb
@@ -19,7 +19,7 @@
-
上传时间:<%= format_date(file.created_on)%>
+
上传时间:<%= format_time(file.created_on)%>
<% if file.tag_list.length > 0%>
上传类型:<%= file.tag_list[0] %>
<% end %>
diff --git a/app/views/issues/_list.html.erb b/app/views/issues/_list.html.erb
index e47967099..2a1ae56d4 100644
--- a/app/views/issues/_list.html.erb
+++ b/app/views/issues/_list.html.erb
@@ -24,14 +24,5 @@
<%= render :partial => 'users/project_issue', :locals => {:activity => issue, :user_activity_id => issue.id} %>
<% end %>
<% if issues.count == 10%>
-
展开更多<%=link_to "", project_issues_path({:project_id => project.id}.merge(params)),:id => "more_issues_link",:remote => "true",:class => "none" %>
- <%#= link_to "点击展开更多",user_activities_path(@user.id,:type => type,:page => page),:id => "show_more_activities",:remote => "true",:class => "loadMore mt10 f_grey"%>
+ <%= link_to "点击展开更多",project_issues_path({:project_id => project.id}.merge(params)),:id => "show_more_issues",:remote => "true",:class => "loadMore mt10 f_grey"%>
<% end%>
-
-
-
-
\ No newline at end of file
diff --git a/app/views/layouts/base_projects.html.erb b/app/views/layouts/base_projects.html.erb
index 545b29073..8ecc6fb54 100644
--- a/app/views/layouts/base_projects.html.erb
+++ b/app/views/layouts/base_projects.html.erb
@@ -76,12 +76,13 @@
<% if @project.project_type == 0 %>
- <% unless project_scores(@project) == 0 %>
+ <% unless static_project_score(@project) == 0 %>
<%= l(:label_project_score)%> :
- <%= link_to(format("%.2f" ,project_scores(@project) ).to_i, {:controller => 'projects',
- :action => 'show_projects_score',
- :remote => true,
- :id => @project.id}, :class => "c_orange f14" ) %>
+ <%= link_to(format("%.2f" ,static_project_score(@project) ).to_i,
+ {:controller => 'projects',
+ :action => 'show_projects_score',
+ :remote => true,
+ :id => @project.id}, :class => "c_orange f14" ) %>
<% end %>
<% end %>
@@ -91,12 +92,11 @@
<%= l(:label_member) %>(<%= link_to "#{@project.members.count}", project_member_path(@project), :class => 'info_foot_num c_blue', :id => 'project_members_number' %>)
|
<%= l(:label_user_watcher) %>(<%= link_to "#{@project.watcher_users.count}", {:controller=>"projects", :action=>"watcherlist", :id => @project.id}, :class => 'info_foot_num c_blue' %>)
- <% attaments_num = @project.attachments.count %>
<% unless @project.enabled_modules.where("name = 'files'").empty? %>
|
<%= l(:project_module_attachments) %>(
- <% attaments_num %>
- <%= link_to "#{attaments_num}", project_files_path(@project), :class => 'info_foot_num c_blue', :id=>'project_files_count_info' %>)
+ <% @project.attachments_count %>
+ <%= link_to "#{@project.attachments_count}", project_files_path(@project), :class => 'info_foot_num c_blue', :id=>'project_files_count_info' %>)
<% end %>
@@ -120,11 +120,11 @@
<% if @project.project_new_type == 1 || @project.project_new_type.nil? %>
- <%= render :partial => 'projects/development_group', :locals => {:project => @project, :attaments_num => attaments_num} %>
+ <%= render :partial => 'projects/development_group', :locals => {:project => @project} %>
<% elsif @project.project_new_type == 2 %>
- <%= render :partial => 'projects/research_team', :locals => {:project => @project, :attaments_num => attaments_num} %>
+ <%= render :partial => 'projects/research_team', :locals => {:project => @project} %>
<% else %>
- <%= render :partial => 'projects/friend_group', :locals => {:project => @project, :attaments_num => attaments_num} %>
+ <%= render :partial => 'projects/friend_group', :locals => {:project => @project} %>
<% end %>
@@ -213,19 +213,19 @@
if(data == 1)
{
$("#setting_project_type").replaceWith("<%= escape_javascript(project_type_link(l(:label_development_team), 1))%>");
- $("#project_memu_list").html('<%= escape_javascript(render(:partial => 'projects/development_group', :locals => {:project => @project, :attaments_num => attaments_num})) %>');
+ $("#project_memu_list").html('<%= escape_javascript(render(:partial => 'projects/development_group', :locals => {:project => @project})) %>');
$("#close_light").attr("onClick","close_window('development_group');");
}
else if(data == 2)
{
$("#setting_project_type").replaceWith("<%= escape_javascript(project_type_link(l(:label_research_group), 2))%>");
- $("#project_memu_list").html('<%= escape_javascript(render(:partial => 'projects/research_team', :locals => {:project => @project, :attaments_num => attaments_num})) %>');
+ $("#project_memu_list").html('<%= escape_javascript(render(:partial => 'projects/research_team', :locals => {:project => @project})) %>');
$("#close_light").attr("onClick","close_window('research_group');");
}
else if(data == 3)
{
$("#setting_project_type").replaceWith("<%= escape_javascript(project_type_link(l(:label_friend_organization), 3))%>");
- $("#project_memu_list").html('<%= escape_javascript(render(:partial => 'projects/friend_group', :locals => {:project => @project, :attaments_num => attaments_num})) %>');
+ $("#project_memu_list").html('<%= escape_javascript(render(:partial => 'projects/friend_group', :locals => {:project => @project})) %>');
$("#close_light").attr("onClick","close_window('friend_organization');");
}
else
diff --git a/app/views/organizations/_org_course_create.html.erb b/app/views/organizations/_org_course_create.html.erb
index dc1e0ee81..a5544ab07 100644
--- a/app/views/organizations/_org_course_create.html.erb
+++ b/app/views/organizations/_org_course_create.html.erb
@@ -17,9 +17,13 @@
<%= link_to activity.name, course_path(activity.id,:host=>Setting.host_course), :class => "postGrey" %>
-
+
创建时间:<%= format_time(activity.created_at) %>
+
+ 更新时间:<%= format_time(CourseActivity.where("course_act_type='#{activity.class}' and course_act_id =#{activity.id}").first.updated_at) %>
+
+
diff --git a/app/views/organizations/_org_course_message.html.erb b/app/views/organizations/_org_course_message.html.erb
index 6c3975d73..93aa7a97b 100644
--- a/app/views/organizations/_org_course_message.html.erb
+++ b/app/views/organizations/_org_course_message.html.erb
@@ -28,9 +28,13 @@
<% end%>
-
+
发帖时间:<%= format_time(activity.created_on) %>
+
+ 更新时间:<%= format_time(CourseActivity.where("course_act_type='#{activity.class}' and course_act_id =#{activity.id}").first.updated_at) %>
+
+
<% if activity.parent_id.nil? %>
diff --git a/app/views/organizations/_org_course_news.html.erb b/app/views/organizations/_org_course_news.html.erb
index fb4b0276e..7926d2737 100644
--- a/app/views/organizations/_org_course_news.html.erb
+++ b/app/views/organizations/_org_course_news.html.erb
@@ -20,9 +20,13 @@
置顶
<% end%>
-
+
发布时间:<%= format_time(activity.created_on) %>
+
+ 更新时间:<%= format_time(CourseActivity.where("course_act_type='#{activity.class}' and course_act_id =#{activity.id}").first.updated_at) %>
+
+
<%= activity.description.html_safe %>
diff --git a/app/views/organizations/_org_course_poll.html.erb b/app/views/organizations/_org_course_poll.html.erb
index 460358b1f..925839f92 100644
--- a/app/views/organizations/_org_course_poll.html.erb
+++ b/app/views/organizations/_org_course_poll.html.erb
@@ -27,9 +27,13 @@
<%= link_to poll_name, poll_path(activity.id), :class => "postGrey"%>
<% end %>
-
+
发布时间:<%= format_time(activity.published_at) %>
+
+ 更新时间:<%= format_time(CourseActivity.where("course_act_type='#{activity.class}' and course_act_id =#{activity.id}").first.updated_at) %>
+
+
<%= activity.polls_description.html_safe %>
diff --git a/app/views/organizations/_org_project_issue.html.erb b/app/views/organizations/_org_project_issue.html.erb
index 7faab97df..32b717896 100644
--- a/app/views/organizations/_org_project_issue.html.erb
+++ b/app/views/organizations/_org_project_issue.html.erb
@@ -29,10 +29,14 @@
<% end %>
<% end %>
-
- 时间:
+
+ 发布时间:
<%=format_time(activity.created_on) %>
+
+ 更新时间:<%= format_time(ForgeActivity.where("forge_act_type='#{activity.class}' and forge_act_id =#{activity.id}").first.updated_at) %>
+
+
diff --git a/app/views/organizations/_org_subfield_message.html.erb b/app/views/organizations/_org_subfield_message.html.erb
index 0210a462a..bc9e28de0 100644
--- a/app/views/organizations/_org_subfield_message.html.erb
+++ b/app/views/organizations/_org_subfield_message.html.erb
@@ -24,9 +24,13 @@
%>
<% end %>
-
- 时间:<%= format_time(activity.created_on) %>
+
+ 发布时间:<%= format_time(activity.created_on) %>
+
+ 更新时间:<%= format_time(OrgActivity.where("org_act_type='#{activity.class}' and org_act_id =#{activity.id}").first.updated_at) %>
+
+
<% if activity.parent_id.nil? %>
diff --git a/app/views/organizations/_project_create.html.erb b/app/views/organizations/_project_create.html.erb
index b68b7ceeb..3b35838a7 100644
--- a/app/views/organizations/_project_create.html.erb
+++ b/app/views/organizations/_project_create.html.erb
@@ -19,9 +19,13 @@
<%= link_to project.name, project_path(project.id,:host=>Setting.host_course), :class => "postGrey" %>
-
+
创建时间:<%= format_time(project.created_on) %>
+
+ 更新时间:<%= format_time(ForgeActivity.where("forge_act_type='#{activity.class}' and forge_act_id =#{activity.id}").first.updated_at) %>
+
+
diff --git a/app/views/organizations/_project_message.html.erb b/app/views/organizations/_project_message.html.erb
index 37d611ae4..7e8746fc4 100644
--- a/app/views/organizations/_project_message.html.erb
+++ b/app/views/organizations/_project_message.html.erb
@@ -24,9 +24,13 @@
%>
<% end %>
-
- 时间:<%= format_time(activity.created_on) %>
+
+ 发帖时间:<%= format_time(activity.created_on) %>
+
+ 更新时间:<%= format_time(ForgeActivity.where("forge_act_type='#{activity.class}' and forge_act_id =#{activity.id}").first.updated_at) %>
+
+
<% if activity.parent_id.nil? %>
diff --git a/app/views/organizations/_show_org_document.html.erb b/app/views/organizations/_show_org_document.html.erb
index c90147494..14eb8ef74 100644
--- a/app/views/organizations/_show_org_document.html.erb
+++ b/app/views/organizations/_show_org_document.html.erb
@@ -12,8 +12,13 @@
<%= document.org_subfield_id.nil? ? "组织文章" :"#{OrgSubfield.find(document.org_subfield_id).name}" %>
<%= link_to document.title, org_document_comment_path(:id => document.id, :organization_id => document.organization.id) %>
-
- 发布时间:<%= format_activity_day(document.created_at) %> <%= format_time(document.created_at, false) %>
+
+ 发布时间:<%= format_activity_day(document.created_at) %> <%= format_time(document.created_at, false) %>
+
+
+ 更新时间:<%= format_time(OrgActivity.where("org_act_type='#{document.class}' and org_act_id =#{document.id}").first.updated_at) %>
+
+
<% unless document.content.blank? %>
<%= document.content.html_safe %>
diff --git a/app/views/projects/_development_group.html.erb b/app/views/projects/_development_group.html.erb
index 83b65fe90..0c33f70a6 100644
--- a/app/views/projects/_development_group.html.erb
+++ b/app/views/projects/_development_group.html.erb
@@ -1,14 +1,14 @@
<% unless @project.enabled_modules.where("name = 'issue_tracking'").empty? %>
- <%= link_to l(:label_issue_tracking), project_issues_path(@project), :class => "f14 c_blue02" %>
- <% if (issue_count = @project.issues.count) > 0 %>
-
(<%= issue_count %>)
+ <%= link_to l(:label_issue_tracking), project_issues_path(@project, :remote => true), :class => "f14 c_blue02" %>
+ <% if @project.issues_count > 0 %>
+
(<%= @project.issues_count %>)
<% end %>
<% if User.current.member_of?(@project) %>
@@ -19,8 +19,8 @@
<% unless @project.enabled_modules.where("name = 'boards'").empty? %>
<%= link_to l(:project_module_boards), project_boards_path(@project), :class => "f14 c_blue02" %>
- <% unless @project.boards.first.topics.count == 0 %>
-
(<%= @project.boards.first.topics.count %>)
+ <% unless @project.boards_count == 0 %>
+
(<%= @project.boards_count %>)
<% end %>
<% if User.current.member_of?(@project) %>
<%= link_to "+"+l(:project_module_boards_post), project_boards_path(@project, :flag => true), :layout => 'base_projects', :class => "subnav_green ml105" %>
@@ -30,8 +30,8 @@
<% unless @project.enabled_modules.where("name = 'files'").empty? %>
<%= link_to l(:project_module_files), project_files_path(@project), :class => "f14 c_blue02" %>
- <% unless attaments_num == 0 %>
- <%= link_to "(#{attaments_num})", project_files_path(@project), :class => "subnav_num c_orange",:id=>'project_files_count_nav' %>
+ <% unless @project.attachments_count == 0 %>
+ <%= link_to "(#{@project.attachments_count})", project_files_path(@project), :class => "subnav_num c_orange",:id=>'project_files_count_nav' %>
<% end %>
<% if User.current.member_of?(@project) %>
<%#= link_to "+"+l(:label_upload_source), project_files_path(@project,:flag => true), :class => "subnav_green ml95" %>
diff --git a/app/views/projects/_friend_group.html.erb b/app/views/projects/_friend_group.html.erb
index bce920780..1e29c7552 100644
--- a/app/views/projects/_friend_group.html.erb
+++ b/app/views/projects/_friend_group.html.erb
@@ -1,14 +1,14 @@
<% unless @project.enabled_modules.where("name = 'boards'").empty? %>
<%= link_to l(:project_module_boards), project_boards_path(@project), :class => "f14 c_blue02" %>
- <% unless @project.boards.first.topics.count == 0 %>
-
(<%= @project.boards.first.topics.count %>)
+ <% unless @project.boards_count == 0 %>
+
(<%= @project.boards_count %>)
<% end %>
<% if User.current.member_of?(@project) %>
<%= link_to "+"+l(:project_module_boards_post), project_boards_path(@project, :flag => true), :layout => 'base_projects', :class => "subnav_green ml105" %>
@@ -18,8 +18,8 @@
<% unless @project.enabled_modules.where("name = 'files'").empty? %>
<%= link_to l(:project_module_files), project_files_path(@project), :class => "f14 c_blue02" %>
- <% unless attaments_num == 0 %>
- <%= link_to "(#{attaments_num})", project_files_path(@project), :class => "subnav_num c_orange",:id=>'project_files_count_nav' %>
+ <% unless @project.attachments_count == 0 %>
+ <%= link_to "(#{@project.attachments_count})", project_files_path(@project), :class => "subnav_num c_orange",:id=>'project_files_count_nav' %>
<% end %>
<% if User.current.member_of?(@project) %>
<%= link_to "+"+l(:label_upload_source), project_files_path(@project,:flag => true), :class => "subnav_green ml95" %>
diff --git a/app/views/projects/_project_news.html.erb b/app/views/projects/_project_news.html.erb
index 7336adc29..2d0c44151 100644
--- a/app/views/projects/_project_news.html.erb
+++ b/app/views/projects/_project_news.html.erb
@@ -19,9 +19,13 @@
置顶
<% end%>
-
+
发布时间:<%= format_time(activity.created_on) %>
+
+ 更新时间:<%= format_time(ForgeActivity.where("forge_act_type='#{activity.class}' and forge_act_id =#{activity.id}").first.updated_at) %>
+
+
<%= activity.description.html_safe %>
diff --git a/app/views/projects/_project_score_index.html.erb b/app/views/projects/_project_score_index.html.erb
index f10c6b3e7..beff3552e 100644
--- a/app/views/projects/_project_score_index.html.erb
+++ b/app/views/projects/_project_score_index.html.erb
@@ -1,10 +1,9 @@
-
-
<%= l(:label_projects_score) %>
-
= <%= l(:label_issue_score) %> + <%= l(:label_news_score) %> + <%= l(:label_file_score) %> +
- <%= l(:label_code_submit_score) %> + <%= l(:label_topic_score) %>
-
= <%= format("%.2f" , issue_score(project)).to_i %> + <%= format("%.2f" , news_score(project)).to_i %> +
- <%= format("%.2f" , documents_score(project)).to_i %> + <%= format("%.2f" , changesets_score(project)).to_i %> +
- <%= format("%.2f" , board_message_score(project)).to_i %>
-
= <%= format("%.2f" , project_scores(project)).to_i %>
-
\ No newline at end of file
+
= <%= l(:label_code_submit_score) %> + <%= l(:label_issue_score) %> + <%= l(:label_file_attachment_score) %> + <%= l(:label_topic_score) %> + <%= l(:label_news_score) %>
+
= <%= @project.commits_count * 4 %> +
+ <%= @project.issues_count * 4 + @project.journals_count %> +
+ <%= @project.attachments_count * 5 %> +
+ <%= @project.boards_count * 2 + @project.boards_reply_count %> +
+ <%= @project.news_count %>
+
+
= <%= static_project_score(@project) %>
diff --git a/app/views/projects/_research_team.html.erb b/app/views/projects/_research_team.html.erb
index 128d5e827..2c5fb67c7 100644
--- a/app/views/projects/_research_team.html.erb
+++ b/app/views/projects/_research_team.html.erb
@@ -1,14 +1,14 @@
<% unless @project.enabled_modules.where("name = 'issue_tracking'").empty? %>
<%= link_to l(:label_issue_tracking), project_issues_path(@project), :class => "f14 c_blue02" %>
- <% if (issue_count = @project.issues.count) > 0 %>
-
(<%= issue_count %>)
+ <% if @project.issues_count > 0 %>
+
(<%= @project.issues_count %>)
<% end %>
<% if User.current.member_of?(@project) %>
<%= link_to "+"+l(:label_release_issue), new_project_issue_path(@project) , :class => "subnav_green" %>
@@ -18,8 +18,8 @@
<% unless @project.enabled_modules.where("name = 'boards'").empty? %>
<%= link_to l(:project_module_boards), project_boards_path(@project), :class => "f14 c_blue02" %>
- <% unless @project.boards.first.topics.count == 0 %>
-
(<%= @project.boards.first.topics.count %>)
+ <% unless @project.boards_count == 0 %>
+
(<%= @project.boards_count %>)
<% end %>
<% if User.current.member_of?(@project) %>
<%= link_to "+"+l(:project_module_boards_post), project_boards_path(@project, :flag => true), :layout => 'base_projects', :class => "subnav_green ml105" %>
@@ -29,8 +29,8 @@
<% unless @project.enabled_modules.where("name = 'files'").empty? %>
<%= link_to l(:project_module_files), project_files_path(@project), :class => "f14 c_blue02" %>
- <% unless attaments_num == 0 %>
- <%= link_to "(#{attaments_num})", project_files_path(@project), :class => "subnav_num c_orange",:id=>'project_files_count_nav' %>
+ <% unless @project.attachments_count == 0 %>
+ <%= link_to "(#{@project.attachments_count})", project_files_path(@project), :class => "subnav_num c_orange",:id=>'project_files_count_nav' %>
<% end %>
<% if User.current.member_of?(@project) %>
<%= link_to "+"+l(:label_upload_source), project_files_path(@project,:flag => true), :class => "subnav_green ml95" %>
diff --git a/app/views/projects/_show_projects_score.html.erb b/app/views/projects/_show_projects_score.html.erb
index 68ba2f12a..c188bad98 100644
--- a/app/views/projects/_show_projects_score.html.erb
+++ b/app/views/projects/_show_projects_score.html.erb
@@ -1,5 +1,3 @@
-
-
<%= l(:label_projects_score) %>
@@ -14,72 +12,35 @@
<%= l(:label_projects_score) %>
- <%= format("%.2f" , project_scores(@project) ).to_i %>
+ <%= static_project_score(@project) %>
-
-
- <%= link_to l(:label_projects_score),"javascript:void(0)", :onclick => "show_div('project_score_index')"%> :
- <%= format("%.2f" , project_scores(@project) ).to_i %>
+ <%= link_to l(:label_projects_score),"javascript:void(0)", :onclick => "show_div('project_score_index')"%> : <%= static_project_score(@project) %>
+
+ <%= link_to l(:label_code_submit_score), "javascript:void(0)", :onclick => "show_div('code_submit_score_index')" %> : <%= @project.commits_count * 4 %>
+
- <%= link_to l(:label_issue_score), "javascript:void(0)", :onclick => "show_div('issue_score_index')"%> :
- <%= format("%.2f" , issue_score(@project)).to_i %>
+ <%= link_to l(:label_issue_score), "javascript:void(0)", :onclick => "show_div('issue_score_index')"%> : <%= @project.issues_count * 4 + @project.journals_count %>
-
- <%= link_to l(:label_news_score), "javascript:void(0)", :onclick => "show_div('news_score_index')"%> :
- <%= format("%.2f" , news_score(@project)).to_i %>
+
+ <%= link_to l(:label_file_attachment_score), "javascript:void(0)", :onclick => "show_div('issue_score_index')"%> : <%= @project.attachments_count * 5 %>
+
+ <%= link_to l(:label_topic_score), "javascript:void(0)", :onclick => "show_div('projects_topic_score_index')"%> : <%= @project.boards_count * 2 + @project.boards_reply_count %>
+
- <%= link_to l(:label_file_score), "javascript:void(0)", :onclick => "show_div('file_score_index')"%> :
- <%= format("%.2f" , documents_score(@project)).to_i %>
-
-
- <%= link_to l(:label_code_submit_score), "javascript:void(0)", :onclick => "show_div('code_submit_score_index')" %> :
- <%= format("%.2f" , changesets_score(@project)).to_i %>
-
-
- <%= link_to l(:label_topic_score), "javascript:void(0)", :onclick => "show_div('projects_topic_score_index')"%> :
- <%= format("%.2f" , board_message_score(@project)).to_i %>
+ <%= link_to l(:label_news_score), "javascript:void(0)", :onclick => "show_div('news_score_index')"%> : <%= @project.news_count %>
<%= render :partial => 'projects/project_score_index', :locals => {:project => @project } %>
-
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/app/views/users/_course_create.html.erb b/app/views/users/_course_create.html.erb
index dc1e0ee81..a5544ab07 100644
--- a/app/views/users/_course_create.html.erb
+++ b/app/views/users/_course_create.html.erb
@@ -17,9 +17,13 @@
<%= link_to activity.name, course_path(activity.id,:host=>Setting.host_course), :class => "postGrey" %>
-
+
创建时间:<%= format_time(activity.created_at) %>
+
+ 更新时间:<%= format_time(CourseActivity.where("course_act_type='#{activity.class}' and course_act_id =#{activity.id}").first.updated_at) %>
+
+
diff --git a/app/views/users/_course_journalsformessage.html.erb b/app/views/users/_course_journalsformessage.html.erb
index 84b727cbf..53620a81c 100644
--- a/app/views/users/_course_journalsformessage.html.erb
+++ b/app/views/users/_course_journalsformessage.html.erb
@@ -20,9 +20,13 @@
<%= link_to activity.notes.html_safe, course_feedback_path(course), :class => "postGrey" %>
<% end %>
-
+
留言时间:<%= format_time(activity.created_on) %>
+
+ 更新时间:<%= format_time(CourseActivity.where("course_act_type='#{activity.class}' and course_act_id =#{activity.id}").first.updated_at) %>
+
+
diff --git a/app/views/users/_course_message.html.erb b/app/views/users/_course_message.html.erb
index 2de7a4448..21a3ff076 100644
--- a/app/views/users/_course_message.html.erb
+++ b/app/views/users/_course_message.html.erb
@@ -28,9 +28,13 @@
<% end%>
-
+
发帖时间:<%= format_time(activity.created_on) %>
+
+ 更新时间:<%= format_time(CourseActivity.where("course_act_type='#{activity.class}' and course_act_id =#{activity.id}").first.updated_at) %>
+
+
<% if activity.parent_id.nil? %>
diff --git a/app/views/users/_course_news.html.erb b/app/views/users/_course_news.html.erb
index fb4b0276e..7926d2737 100644
--- a/app/views/users/_course_news.html.erb
+++ b/app/views/users/_course_news.html.erb
@@ -20,9 +20,13 @@
置顶
<% end%>
-
+
发布时间:<%= format_time(activity.created_on) %>
+
+ 更新时间:<%= format_time(CourseActivity.where("course_act_type='#{activity.class}' and course_act_id =#{activity.id}").first.updated_at) %>
+
+
<%= activity.description.html_safe %>
diff --git a/app/views/users/_course_poll.html.erb b/app/views/users/_course_poll.html.erb
index b33081b53..c3eda8303 100644
--- a/app/views/users/_course_poll.html.erb
+++ b/app/views/users/_course_poll.html.erb
@@ -27,9 +27,13 @@
<%= link_to poll_name, poll_path(activity.id), :class => "postGrey"%>
<% end %>
-
+
发布时间:<%= format_time(activity.published_at) %>
+
+ 更新时间:<%= format_time(CourseActivity.where("course_act_type='#{activity.class}' and course_act_id =#{activity.id}").first.updated_at) %>
+
+
<%= activity.polls_description.html_safe %>
@@ -57,4 +61,4 @@
<% end %>
+
diff --git a/app/views/users/_project_create.html.erb b/app/views/users/_project_create.html.erb
index 0e35bca25..6214833f1 100644
--- a/app/views/users/_project_create.html.erb
+++ b/app/views/users/_project_create.html.erb
@@ -19,9 +19,13 @@
<%= link_to project.name, project_path(project.id,:host=>Setting.host_course), :class => "postGrey" %>
-
+
创建时间:<%= format_time(project.created_on) %>
+
+ 更新时间:<%= format_time(ForgeActivity.where("forge_act_type='#{activity.class}' and forge_act_id =#{activity.id}").first.updated_at) %>
+
+
diff --git a/app/views/users/_project_issue.html.erb b/app/views/users/_project_issue.html.erb
index 66869cf4a..099ec533f 100644
--- a/app/views/users/_project_issue.html.erb
+++ b/app/views/users/_project_issue.html.erb
@@ -41,10 +41,14 @@
<% end %>
<% end %>
-
- 时间:
+
+ 发布时间:
<%=format_time(activity.created_on) %>
+
+ 更新时间:<%= format_time(ForgeActivity.where("forge_act_type='#{activity.class}' and forge_act_id =#{activity.id}").first.updated_at) %>
+
+
diff --git a/app/views/users/_project_message.html.erb b/app/views/users/_project_message.html.erb
index 368357797..0b861c8c0 100644
--- a/app/views/users/_project_message.html.erb
+++ b/app/views/users/_project_message.html.erb
@@ -29,9 +29,13 @@
<% end%>
-
+
发帖时间:<%= format_time(activity.created_on) %>
+
+ 更新时间:<%= format_time(ForgeActivity.where("forge_act_type='#{activity.class}' and forge_act_id =#{activity.id}").first.updated_at) %>
+
+
<% if activity.parent_id.nil? %>
@@ -153,4 +157,4 @@
+
diff --git a/app/views/users/_resource_share_for_project_popup.html.erb b/app/views/users/_resource_share_for_project_popup.html.erb
index 2dba25e56..f15c29e90 100644
--- a/app/views/users/_resource_share_for_project_popup.html.erb
+++ b/app/views/users/_resource_share_for_project_popup.html.erb
@@ -1,10 +1,8 @@
-
-
发送到
-
+
课程
项目
组织
@@ -20,13 +18,13 @@
<%= hidden_field_tag(:send_ids, send_ids) %>
<%= submit_tag '',:class=>'searchIcon2',:onfocus=>"this.blur();",:style=>'border-style:none' %>
<% end %>
- <%= form_tag add_exist_file_to_project_user_path(user),:remote=>true,:id=>'projects_list_form' %>
+ <%= form_tag add_exist_file_to_project_user_path(user), :remote => true, :id=>'projects_list_form' %>
<%= hidden_field_tag(:send_id, send_id) %>
diff --git a/app/views/users/_user_blog.html.erb b/app/views/users/_user_blog.html.erb
index 7e1aab48c..3ce0926a8 100644
--- a/app/views/users/_user_blog.html.erb
+++ b/app/views/users/_user_blog.html.erb
@@ -26,9 +26,13 @@
-
+
发布时间:<%= format_time(activity.created_on) %>
+
+ 更新时间:<%= format_time(UserActivity.where("act_type='#{activity.class}' and act_id =#{activity.id}").first.updated_at) %>
+
+
<%= activity.content.html_safe %>
diff --git a/app/views/users/_user_homework_list.html.erb b/app/views/users/_user_homework_list.html.erb
index efe9216df..36f823a9a 100644
--- a/app/views/users/_user_homework_list.html.erb
+++ b/app/views/users/_user_homework_list.html.erb
@@ -42,9 +42,9 @@
<% if homework_commons.count == 10%>
<% if is_in_course == 1%>
- <%= link_to "加载更多",homework_common_index_path(:course => course_id,:page => page,:is_in_course => is_in_course),:id => "user_show_more_homework",:remote => "true",:class => "loadMore f_grey"%>
+ <%= link_to "点击展开更多",homework_common_index_path(:course => course_id,:page => page,:is_in_course => is_in_course),:id => "user_show_more_homework",:remote => "true",:class => "loadMore f_grey"%>
<% else%>
- <%= link_to "加载更多",user_homeworks_user_path(User.current.id,:page => page,:is_in_course => is_in_course),:id => "user_show_more_homework",:remote => "true",:class => "loadMore f_grey"%>
+ <%= link_to "点击展开更多",user_homeworks_user_path(User.current.id,:page => page,:is_in_course => is_in_course),:id => "user_show_more_homework",:remote => "true",:class => "loadMore f_grey"%>
<% end%>
<% end%>
\ No newline at end of file
diff --git a/app/views/users/_user_journalsformessage.html.erb b/app/views/users/_user_journalsformessage.html.erb
index dcc40f688..bc7c401f2 100644
--- a/app/views/users/_user_journalsformessage.html.erb
+++ b/app/views/users/_user_journalsformessage.html.erb
@@ -23,9 +23,13 @@
<%= link_to activity.notes.html_safe, feedback_path(activity.jour, :host=> Setting.host_user), :class => "postGrey" %>
<% end %>
-
+
留言时间:<%= format_time(activity.created_on) %>
+
+ 更新时间:<%= format_time(PrincipalActivity.where("principal_act_type='#{activity.class}' and principal_act_id =#{activity.id}").first.updated_at) %>
+
+
diff --git a/app/views/users/search_user_project.js.erb b/app/views/users/search_user_project.js.erb
index 0632ebb98..5218c22ab 100644
--- a/app/views/users/search_user_project.js.erb
+++ b/app/views/users/search_user_project.js.erb
@@ -1,11 +1,4 @@
-
-//var popupHeight = $(".resourceSharePopup").outerHeight(true);
-//$(".resourceSharePopup").css("marginTop",-popupHeight/2);
-//
-//$("#upload_box").css('left','').css('top','');
-//$("#upload_box").html('<%#= escape_javascript( render :partial => "resource_share_for_project_popup" ,:locals => {:projects=>@projects,:user=>@user,:send_id=>@send_id,:send_ids=>@send_ids})%>');
-//$("#upload_box").css('display','block');
-$("#ajax-modal").html('<%= escape_javascript( render :partial => 'users/resource_share_for_project_popup' ,:locals => {:projects=>@projects,:user=>@user,:send_id=>@send_id,:send_ids=>@send_ids})%>');
+$("#ajax-modal").html('<%= escape_javascript( render :partial => 'users/resource_share_for_project_popup', :locals => {:projects => @projects, :user => @user, :send_id => @send_id, :send_ids => @send_ids}) %>');
showModal('ajax-modal', '452px');
$('#ajax-modal').siblings().remove();
$('#ajax-modal').before("
");
diff --git a/config/locales/projects/zh.yml b/config/locales/projects/zh.yml
index 3f86b4b60..fe89e64e3 100644
--- a/config/locales/projects/zh.yml
+++ b/config/locales/projects/zh.yml
@@ -432,6 +432,8 @@ zh:
label_file_score: 文档得分
label_file_number: 文档的数量
+
+ label_file_attachment_score: 资源得分
label_code_submit_score: 代码提交得分
label_code_submit_number: 代码提交频率
diff --git a/db/migrate/20160111064927_add_issues_count_to_project.rb b/db/migrate/20160111064927_add_issues_count_to_project.rb
new file mode 100644
index 000000000..dcb90b32c
--- /dev/null
+++ b/db/migrate/20160111064927_add_issues_count_to_project.rb
@@ -0,0 +1,5 @@
+class AddIssuesCountToProject < ActiveRecord::Migration
+ def change
+ add_column :projects, :issues_count, :integer, :default => false
+ end
+end
diff --git a/db/migrate/20160111065137_add_attachments_count_to_project.rb b/db/migrate/20160111065137_add_attachments_count_to_project.rb
new file mode 100644
index 000000000..aecacfcb6
--- /dev/null
+++ b/db/migrate/20160111065137_add_attachments_count_to_project.rb
@@ -0,0 +1,5 @@
+class AddAttachmentsCountToProject < ActiveRecord::Migration
+ def change
+ add_column :projects, :attachments_count, :integer, :default => false
+ end
+end
diff --git a/db/migrate/20160111065215_add_boards_count_to_project.rb b/db/migrate/20160111065215_add_boards_count_to_project.rb
new file mode 100644
index 000000000..efc4b3f3c
--- /dev/null
+++ b/db/migrate/20160111065215_add_boards_count_to_project.rb
@@ -0,0 +1,5 @@
+class AddBoardsCountToProject < ActiveRecord::Migration
+ def change
+ add_column :projects, :boards_count, :integer, :default => false
+ end
+end
diff --git a/db/migrate/20160111065530_add_news_count_to_project.rb b/db/migrate/20160111065530_add_news_count_to_project.rb
new file mode 100644
index 000000000..63278e2eb
--- /dev/null
+++ b/db/migrate/20160111065530_add_news_count_to_project.rb
@@ -0,0 +1,5 @@
+class AddNewsCountToProject < ActiveRecord::Migration
+ def change
+ add_column :projects, :news_count, :integer, :default => false
+ end
+end
diff --git a/db/migrate/20160111071348_static_project_boards.rb b/db/migrate/20160111071348_static_project_boards.rb
new file mode 100644
index 000000000..4b82be23c
--- /dev/null
+++ b/db/migrate/20160111071348_static_project_boards.rb
@@ -0,0 +1,14 @@
+class StaticProjectBoards < ActiveRecord::Migration
+ def up
+ Project.all.each do |project|
+ puts project.id
+ unless project.boards.first.nil?
+ boards_count = project.boards.first.topics.count
+ project.update_attribute(:boards_count, boards_count)
+ end
+ end
+ end
+
+ def down
+ end
+end
diff --git a/db/migrate/20160111071411_static_project_issues.rb b/db/migrate/20160111071411_static_project_issues.rb
new file mode 100644
index 000000000..96c6d7acb
--- /dev/null
+++ b/db/migrate/20160111071411_static_project_issues.rb
@@ -0,0 +1,13 @@
+class StaticProjectIssues < ActiveRecord::Migration
+ def up
+ Project.all.each do |project|
+ unless project.issues.nil?
+ issues_count = project.issues.count
+ project.update_attribute(:issues_count, issues_count)
+ end
+ end
+ end
+
+ def down
+ end
+end
diff --git a/db/migrate/20160111071529_static_project_news.rb b/db/migrate/20160111071529_static_project_news.rb
new file mode 100644
index 000000000..f013a929d
--- /dev/null
+++ b/db/migrate/20160111071529_static_project_news.rb
@@ -0,0 +1,13 @@
+class StaticProjectNews < ActiveRecord::Migration
+ def up
+ Project.all.each do |project|
+ unless project.news.nil?
+ news_count = project.news.count
+ project.update_attribute(:news_count, news_count)
+ end
+ end
+ end
+
+ def down
+ end
+end
diff --git a/db/migrate/20160111071558_static_project_attachments.rb b/db/migrate/20160111071558_static_project_attachments.rb
new file mode 100644
index 000000000..692ca68eb
--- /dev/null
+++ b/db/migrate/20160111071558_static_project_attachments.rb
@@ -0,0 +1,13 @@
+class StaticProjectAttachments < ActiveRecord::Migration
+ def up
+ Project.all.each do |project|
+ unless project.attachments.nil?
+ attachments_count = project.attachments.count
+ project.update_attribute(:attachments_count, attachments_count)
+ end
+ end
+ end
+
+ def down
+ end
+end
diff --git a/db/migrate/20160111080833_add_acts_count_to_project.rb b/db/migrate/20160111080833_add_acts_count_to_project.rb
new file mode 100644
index 000000000..a990302bc
--- /dev/null
+++ b/db/migrate/20160111080833_add_acts_count_to_project.rb
@@ -0,0 +1,5 @@
+class AddActsCountToProject < ActiveRecord::Migration
+ def change
+ add_column :projects, :acts_count, :integer, :default => false
+ end
+end
diff --git a/db/migrate/20160111080914_static_project_acts.rb b/db/migrate/20160111080914_static_project_acts.rb
new file mode 100644
index 000000000..3f07cbb03
--- /dev/null
+++ b/db/migrate/20160111080914_static_project_acts.rb
@@ -0,0 +1,16 @@
+class StaticProjectActs < ActiveRecord::Migration
+ def up
+ Project.all.each do |project|
+ acts = ForgeActivity.where("project_id = ?", project.id)
+ unless acts.blank?
+ count = acts.count
+ puts project.id
+ puts "acts_count is #{count}"
+ project.update_attribute(:acts_count, count)
+ end
+ end
+ end
+
+ def down
+ end
+end
diff --git a/db/migrate/20160113023045_add_journals_count_to_project.rb b/db/migrate/20160113023045_add_journals_count_to_project.rb
new file mode 100644
index 000000000..9548f49c4
--- /dev/null
+++ b/db/migrate/20160113023045_add_journals_count_to_project.rb
@@ -0,0 +1,5 @@
+class AddJournalsCountToProject < ActiveRecord::Migration
+ def change
+ add_column :projects, :journals_count, :integer, :default => false
+ end
+end
diff --git a/db/migrate/20160113023137_statics_issue_journal.rb b/db/migrate/20160113023137_statics_issue_journal.rb
new file mode 100644
index 000000000..ef54c04be
--- /dev/null
+++ b/db/migrate/20160113023137_statics_issue_journal.rb
@@ -0,0 +1,12 @@
+class StaticsIssueJournal < ActiveRecord::Migration
+ def up
+ Project.all.each do |project|
+ if !project.project_score.nil? && !project.project_score.issue_journal_num.nil?
+ project.update_attribute(:journals_count, project.project_score.issue_journal_num)
+ end
+ end
+ end
+
+ def down
+ end
+end
diff --git a/db/migrate/20160113024927_statics_repository_commits.rb b/db/migrate/20160113024927_statics_repository_commits.rb
new file mode 100644
index 000000000..66fa896af
--- /dev/null
+++ b/db/migrate/20160113024927_statics_repository_commits.rb
@@ -0,0 +1,19 @@
+class StaticsRepositoryCommits < ActiveRecord::Migration
+ def up
+ g = Gitlab.client
+ Project.all.each do |project|
+ unless project.gpid.nil?
+ begin
+ puts project.id
+ count = g.project(project.gpid).commit_count
+ rescue
+ logger.error("The project's rep is not exit!")
+ end
+ project.update_attribute(:commits_count, count)
+ end
+ end
+ end
+
+ def down
+ end
+end
diff --git a/db/migrate/20160113063514_add_messages_count_to_project.rb b/db/migrate/20160113063514_add_messages_count_to_project.rb
new file mode 100644
index 000000000..218ac3cc4
--- /dev/null
+++ b/db/migrate/20160113063514_add_messages_count_to_project.rb
@@ -0,0 +1,5 @@
+class AddMessagesCountToProject < ActiveRecord::Migration
+ def change
+ add_column :projects, :boards_reply_count, :integer, :default => false
+ end
+end
diff --git a/db/migrate/20160113064153_statics_boards_reply.rb b/db/migrate/20160113064153_statics_boards_reply.rb
new file mode 100644
index 000000000..baf427b10
--- /dev/null
+++ b/db/migrate/20160113064153_statics_boards_reply.rb
@@ -0,0 +1,14 @@
+class StaticsBoardsReply < ActiveRecord::Migration
+ def up
+ Project.all.each do |project|
+ puts project.id
+ unless project.boards.first.nil?
+ messages_count = Message.where("board_id =? and parent_id is not ?", project.boards.first.id, nil).count
+ project.update_attribute(:boards_reply_count, messages_count)
+ end
+ end
+ end
+
+ def down
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index 2f9378dea..5079e6655 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 => 20160108024752) do
+ActiveRecord::Schema.define(:version => 20160113064153) do
create_table "activities", :force => true do |t|
t.integer "act_id", :null => false
@@ -1411,6 +1411,13 @@ ActiveRecord::Schema.define(:version => 20160108024752) do
t.integer "forked_count"
t.integer "commits_count", :default => 0
t.integer "publish_resource", :default => 0
+ t.integer "issues_count", :default => 0
+ t.integer "attachments_count", :default => 0
+ t.integer "boards_count", :default => 0
+ t.integer "news_count", :default => 0
+ t.integer "acts_count", :default => 0
+ t.integer "journals_count", :default => 0
+ t.integer "boards_reply_count", :default => 0
end
add_index "projects", ["lft"], :name => "index_projects_on_lft"
diff --git a/lib/trustie/gitlab/manage_member.rb b/lib/trustie/gitlab/manage_member.rb
index 433b101f5..5c75d9d6e 100644
--- a/lib/trustie/gitlab/manage_member.rb
+++ b/lib/trustie/gitlab/manage_member.rb
@@ -5,6 +5,8 @@ module Trustie
module Gitlab
module ManageMember
+ attr :g
+ include Helper
def self.included(base)
base.class_eval {
before_create :add_gitlab_member
diff --git a/public/assets/kindeditor/at/config.js b/public/assets/kindeditor/at/config.js
index 651f33464..72aeacb39 100644
--- a/public/assets/kindeditor/at/config.js
+++ b/public/assets/kindeditor/at/config.js
@@ -23,7 +23,7 @@ var enableAt = function(_editor) {
}
if('undefined' != (typeof id)){
- names = '/at/' + id + '?type='+type;
+ names = '/at/' + id + '.json?type='+type;
}
//var names = ["Jacob","Isabella","Ethan","Emma","Michael","Olivia","Alexander","Sophia","William","Ava","Joshua","Emily","Daniel","Madison","Jayden","Abigail","Noah","Chloe","你好","你你你", "가"];
diff --git a/public/stylesheets/public.css b/public/stylesheets/public.css
index d39e2600d..b90758914 100644
--- a/public/stylesheets/public.css
+++ b/public/stylesheets/public.css
@@ -158,7 +158,7 @@ h4{ font-size:14px; color:#3b3b3b;}
.w583{ width:583px;}
.w350{ width:350px;}
.w610{ width:610px;}
-.w60{ width:600px !important;}
+.w600{ width:600px !important;}
.w606{ width:606px }
.h20{height: 20px;}
.h22{ height:22px;}
@@ -397,7 +397,7 @@ li.menuArrow:hover {background:url(../images/item.png) -20px -70px no-repeat;}
a.topnav_login_box:hover {color:#a1ebff;}
.navRow1 {margin:0; padding:0;}
.navRow2 {margin:0; padding:0;}
-.topnav_login_list{ border:1px solid #269ac9; background:#fff; padding-left:10px; padding-bottom:10px; padding-top:8px; width:60px; left:-7px; position:absolute; z-index:9999; line-height:2;}
+.topnav_login_list{ border:1px solid #eaeaea; background:#fff; padding-left:10px; padding-bottom:10px; padding-top:8px; width:60px; left:-7px; position:absolute; z-index:9999; line-height:2;}
.topnav_login_list a{color:#15bccf;}
.topnav_login_list li{ }
diff --git a/public/stylesheets/scm.css b/public/stylesheets/scm.css
index 054b0bf99..b8b624154 100644
--- a/public/stylesheets/scm.css
+++ b/public/stylesheets/scm.css
@@ -52,6 +52,7 @@ table.filecontent th.line-num {
-ms-user-select: none;
-webkit-user-select: none;
font-weight:normal;
+ white-space: nowrap;
}
table.filecontent th.line-num a {
text-decoration: none;