2015-08-29 16:08:09 +08:00
|
|
|
# encoding: UTF-8
|
2015-08-29 11:50:08 +08:00
|
|
|
class ForgeMessages < ActiveRecord::Migration
|
|
|
|
def up
|
|
|
|
Project.all.each do |project|
|
|
|
|
transaction do
|
2015-08-29 16:08:09 +08:00
|
|
|
project.forge_messages << ForgeMessage.new(:user_id => project.user_id, :project_id => project.id)
|
2015-08-29 11:50:08 +08:00
|
|
|
|
|
|
|
# 新闻
|
|
|
|
project.news.each do |new|
|
|
|
|
new.project.members.each do |m|
|
|
|
|
if m.user_id != new.author_id
|
|
|
|
if m.created_on < new.created_on # 在成员加入项目之后
|
2015-08-29 16:08:09 +08:00
|
|
|
new.forge_messages << ForgeMessage.new(:user_id => m.user_id, :project_id => new.project_id, :viewed => true)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
# 新闻回复
|
|
|
|
project.news.each do |new|
|
|
|
|
if new.comments
|
|
|
|
new.comments.each do |comment|
|
|
|
|
if comment.author_id != comment.commented.author_id
|
|
|
|
comment.forge_messages << ForgeMessage.new(:user_id => comment.commented.author_id, :project_id => comment.commented.project.id, :viewed => true)
|
2015-08-29 11:50:08 +08:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
# 讨论区
|
|
|
|
if project.boards.first
|
|
|
|
project.boards.first.messages.each do |message|
|
|
|
|
if message.parent_id.nil? # 主贴
|
|
|
|
message.project.members.each do |m|
|
|
|
|
if m.user_id != message.author_id
|
|
|
|
if m.created_on < message.created_on
|
|
|
|
message.forge_messages << ForgeMessage.new(:user_id => m.user_id, :project_id => message.board.project_id, :viewed => true)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
else # 回帖
|
|
|
|
message.project.members.each do |m|
|
|
|
|
if m.user_id == Message.find(message.parent_id).author_id && m.user_id != message.author_id # 只针对主贴回复,回复自己的帖子不发消息
|
|
|
|
if m.created_on < message.created_on
|
|
|
|
message.forge_messages << ForgeMessage.new(:user_id => m.user_id, :project_id => message.board.project_id, :viewed => true)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
# 缺陷
|
|
|
|
project.issues.each do |issue|
|
|
|
|
unless issue.author_id == issue.assigned_to_id
|
|
|
|
issue.forge_messages << ForgeMessage.new(:user_id => issue.assigned_to_id, :project_id => issue.project_id, :viewed => true)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
# 缺陷更新
|
|
|
|
project.issues.each do |issue|
|
2015-08-29 16:08:09 +08:00
|
|
|
if issue.journals
|
|
|
|
issue.journals.each do |journal|
|
|
|
|
if journal.user_id != journal.issue.author_id
|
|
|
|
journal.forge_messages << ForgeMessage.new(:user_id => journal.issue.author_id, :project_id => journal.issue.project_id, :viewed => true)
|
|
|
|
end
|
|
|
|
if journal.user_id != journal.issue.assigned_to_id && journal.issue.assigned_to_id != journal.issue.author_id # 指派人不是自己的话,则给指派人发送
|
|
|
|
journal.forge_messages << ForgeMessage.new(:user_id => journal.issue.assigned_to_id, :project_id => journal.issue.project_id, :viewed => true)
|
|
|
|
end
|
2015-08-29 11:50:08 +08:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
2015-08-29 16:08:09 +08:00
|
|
|
|
2015-08-29 11:50:08 +08:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
def down
|
|
|
|
end
|
|
|
|
end
|