summaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
authorToshi MARUYAMA <marutosijp2@yahoo.co.jp>2013-05-19 02:09:39 +0000
committerToshi MARUYAMA <marutosijp2@yahoo.co.jp>2013-05-19 02:09:39 +0000
commit1f9e1ca3181b77388e88456354c72b2d85c080a3 (patch)
tree4bb47d64b792759dfa553e8e5210c32c7f6943b4 /app
parente5e73a56a76d1da8cd5455f29e48ded7c0581e5f (diff)
downloadredmine-1f9e1ca3181b77388e88456354c72b2d85c080a3.tar.gz
redmine-1f9e1ca3181b77388e88456354c72b2d85c080a3.zip
add journal after creating/deleting issue relation (#1005)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@11885 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'app')
-rw-r--r--app/helpers/issues_helper.rb13
-rw-r--r--app/models/issue_relation.rb28
2 files changed, 40 insertions, 1 deletions
diff --git a/app/helpers/issues_helper.rb b/app/helpers/issues_helper.rb
index 39b24fe04..04c40d98d 100644
--- a/app/helpers/issues_helper.rb
+++ b/app/helpers/issues_helper.rb
@@ -306,6 +306,17 @@ module IssuesHelper
end
when 'attachment'
label = l(:label_attachment)
+ when 'relation'
+ if detail.value && !detail.old_value
+ rel_issue = Issue.find_by_id(detail.value)
+ value = rel_issue.nil? ? "#{l(:label_issue)} #{detail.value}" :
+ (no_html ? rel_issue : link_to_issue(rel_issue))
+ elsif detail.old_value && !detail.value
+ rel_issue = Issue.find_by_id(detail.old_value)
+ old_value = rel_issue.nil? ? "#{l(:label_issue)} #{detail.old_value}" :
+ (no_html ? rel_issue : link_to_issue(rel_issue))
+ end
+ label = l(detail.prop_key.to_sym)
end
call_hook(:helper_issues_show_detail_after_setting,
{:detail => detail, :label => label, :value => value, :old_value => old_value })
@@ -353,7 +364,7 @@ module IssuesHelper
else
l(:text_journal_set_to, :label => label, :value => value).html_safe
end
- when 'attachment'
+ when 'attachment', 'relation'
l(:text_journal_added, :label => label, :value => value).html_safe
end
else
diff --git a/app/models/issue_relation.rb b/app/models/issue_relation.rb
index 9e5015644..1de565011 100644
--- a/app/models/issue_relation.rb
+++ b/app/models/issue_relation.rb
@@ -72,6 +72,8 @@ class IssueRelation < ActiveRecord::Base
attr_protected :issue_from_id, :issue_to_id
before_save :handle_issue_order
+ after_create :create_journal_after_create
+ after_destroy :create_journal_after_delete
def visible?(user=User.current)
(issue_from.nil? || issue_from.visible?(user)) && (issue_to.nil? || issue_to.visible?(user))
@@ -179,4 +181,30 @@ class IssueRelation < ActiveRecord::Base
self.relation_type = TYPES[relation_type][:reverse]
end
end
+
+ def create_journal_after_create
+ journal = issue_from.init_journal(User.current)
+ journal.details << JournalDetail.new(:property => 'relation',
+ :prop_key => label_for(issue_from).to_s,
+ :value => issue_to.id)
+ journal.save
+ journal = issue_to.init_journal(User.current)
+ journal.details << JournalDetail.new(:property => 'relation',
+ :prop_key => label_for(issue_to).to_s,
+ :value => issue_from.id)
+ journal.save
+ end
+
+ def create_journal_after_delete
+ journal = issue_from.init_journal(User.current)
+ journal.details << JournalDetail.new(:property => 'relation',
+ :prop_key => label_for(issue_from).to_s,
+ :old_value => issue_to.id)
+ journal.save
+ journal = issue_to.init_journal(User.current)
+ journal.details << JournalDetail.new(:property => 'relation',
+ :prop_key => label_for(issue_to).to_s,
+ :old_value => issue_from.id)
+ journal.save
+ end
end