diff --git a/app/controllers/issues_controller.rb b/app/controllers/issues_controller.rb index 9e8240b15..0995d1304 100644 --- a/app/controllers/issues_controller.rb +++ b/app/controllers/issues_controller.rb @@ -117,6 +117,13 @@ class IssuesController < ApplicationController if User.current.id == @issue.assigned_to_id query.update_all(:viewed => true) end + # 缺陷状态更新 + query_journals = @issue.journals + if User.current.id == @issue.author_id + query_journals.each do |query_journal| + query_journal.forge_messages.update_all(:viewed => true) + end + end # @journals = @issue.journals.includes(:user, :details).reorder("#{Journal.table_name}.id ASC").all @journals.each_with_index {|j,i| j.indice = i+1} diff --git a/app/models/journal.rb b/app/models/journal.rb index 14eecc9cd..c705b1a09 100644 --- a/app/models/journal.rb +++ b/app/models/journal.rb @@ -29,6 +29,8 @@ class Journal < ActiveRecord::Base has_many :acts, :class_name => 'Activity', :as => :act, :dependent => :destroy # 被ForgeActivity虚拟关联 has_many :forge_acts, :class_name => 'ForgeActivity',:as =>:forge_act ,:dependent => :destroy + # 被ForgeMessage虚拟关联 + has_many :forge_messages, :class_name => 'ForgeMessage',:as =>:forge_message ,:dependent => :destroy # end attr_accessor :indice @@ -48,7 +50,7 @@ class Journal < ActiveRecord::Base before_create :split_private_notes # fq - after_save :act_as_activity,:be_user_score,:act_as_forge_activity + after_save :act_as_activity,:be_user_score,:act_as_forge_activity, :act_as_forge_message # end #after_destroy :down_user_score #before_save :be_user_score @@ -167,6 +169,13 @@ class Journal < ActiveRecord::Base end + # 缺陷状态更改,消息提醒 + def act_as_forge_message + self.forge_messages << ForgeMessage.new(:user_id => self.issue.author_id, + :project_id => self.issue.project_id, + :viewed => false) + end + # 更新用户分数 -by zjc def be_user_score #新建了缺陷留言且留言不为空,不为空白 diff --git a/app/models/user.rb b/app/models/user.rb index d5b497563..3cd248c8a 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -130,10 +130,11 @@ class User < Principal # 关联虚拟表 has_many :forge_messages # end + # 虚拟转换 has_many :new_jours, :as => :jour, :class_name => 'JournalsForMessage', :conditions => "status=1" has_many :issue_assigns, :class_name => 'ForgeMessage', :conditions => 'viewed=0 and forge_message_type="Issue"' - + has_many :status_updates, :class_name => 'ForgeMessage', :conditions => 'viewed=0 and forge_message_type="Journal"' # 邮件邀请状态 # has_many :invite_lists # end @@ -250,6 +251,11 @@ class User < Principal def count_new_issue_assign_to self.issue_assigns end + + # 查询指派给我的缺陷记录 + def issue_status_update + self.status_updates + end # end def extensions diff --git a/app/views/layouts/_new_header.html.erb b/app/views/layouts/_new_header.html.erb index e650d43ca..ad1db88d0 100644 --- a/app/views/layouts/_new_header.html.erb +++ b/app/views/layouts/_new_header.html.erb @@ -79,10 +79,15 @@ <%= "#{l(:label_project_message)}"+"("+User.current.count_new_issue_assign_to.count.to_s+")" %> <% end %>