diff --git a/app/models/issue.rb b/app/models/issue.rb index 147e26cef..f6faa3eb7 100644 --- a/app/models/issue.rb +++ b/app/models/issue.rb @@ -49,6 +49,8 @@ class Issue < ActiveRecord::Base has_many :forge_acts, :class_name => 'ForgeActivity',:as =>:forge_act ,:dependent => :destroy # end has_many :praise_tread, as: :praise_tread_object, dependent: :destroy + # ForgeMessage虚拟关联(多态) + has_many :forge_messages, :class_name => 'ForgeMessage',:as =>:forge_message ,:dependent => :destroy acts_as_nested_set :scope => 'root_id', :dependent => :destroy @@ -80,7 +82,7 @@ class Issue < ActiveRecord::Base attr_reader :current_journal # fq - after_create :act_as_activity,:be_user_score_new_issue,:act_as_forge_activity + after_create :act_as_activity,:be_user_score_new_issue,:act_as_forge_activity, :act_as_forge_message after_update :be_user_score after_destroy :down_user_score # after_create :be_user_score @@ -138,6 +140,13 @@ class Issue < ActiveRecord::Base :project_id => self.project_id) end # end + + # 发布缺陷foege_messages中添加记录 + def act_as_forge_message + self.forge_messages << ForgeMessage.new(:user_id => self.assigned_to_id, + :project_id => self.project_id, + :viewed => false) + end # Returns a SQL conditions string used to find all issues visible by the specified user diff --git a/app/models/project.rb b/app/models/project.rb index 8ab377ccc..77711edff 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -91,6 +91,8 @@ class Project < ActiveRecord::Base has_many :tags, :through => :project_tags, :class_name => 'Tag' has_many :project_tags, :class_name => 'ProjectTags' + # 关联虚拟表 + has_many :forge_messages belongs_to :organization diff --git a/app/models/user.rb b/app/models/user.rb index 12ce8719f..e62976658 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -128,6 +128,8 @@ class User < Principal has_many :messages, :foreign_key => 'author_id' has_one :user_score, :dependent => :destroy has_many :documents # 项目中关联的文档再次与人关联 +# 关联虚拟表 + has_many :forge_messages # end # 邮件邀请状态 @@ -235,6 +237,22 @@ class User < Principal # ====================================================================== + # 查询用户未读过的记录 + # 用户留言记录 + def count_new_jour + count = self.new_jours.count + # count = self.journals_for_messages(:conditions => ["status=? and is_readed = ? " ,1, 0]).count + end + + # 查询指派给我的缺陷记录 + def count_new_issue_assign_to + # count = self.forge_messages.where("viewed=? and forge_message_type=?", 0,Issue).count + + self.forge_messages(:conditions => ["viewed=? and forge_message_type=?", 0,Issue]) + #issue_assign_count = issue_assign_messages.count + end + # end + def extensions self.user_extensions ||= UserExtensions.new end @@ -292,11 +310,6 @@ class User < Principal end ## end - # 查询用户未读过的记录 - def count_new_jour - count = self.journals_for_messages.where("status=? and is_readed = ? " ,1, 0).count - end - #added by nie def count_new_journal_reply count = self.journal_reply.count diff --git a/app/views/layouts/_base_header.html.erb b/app/views/layouts/_base_header.html.erb index 49c8b5499..73ae40a28 100644 --- a/app/views/layouts/_base_header.html.erb +++ b/app/views/layouts/_base_header.html.erb @@ -37,6 +37,11 @@ {:controller=> 'users', :action => 'user_newfeedback', id: User.current.id, host: Setting.host_user}, {:class => 'my-message'} if User.current.logged?%> +