From 5326eb233e3966bb933c7884823e8aac1f94a4c0 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lang Date: Wed, 5 Nov 2014 16:14:20 +0000 Subject: [PATCH] Overrides IssueRelation#to_s. git-svn-id: http://svn.redmine.org/redmine/trunk@13563 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- app/models/issue_relation.rb | 10 ++++++++++ app/views/issues/_relations.html.erb | 5 +---- test/unit/issue_relation_test.rb | 19 +++++++++++++++++++ 3 files changed, 30 insertions(+), 4 deletions(-) diff --git a/app/models/issue_relation.rb b/app/models/issue_relation.rb index 7248a8868..9eebe1bb0 100644 --- a/app/models/issue_relation.rb +++ b/app/models/issue_relation.rb @@ -134,6 +134,16 @@ class IssueRelation < ActiveRecord::Base :unknow end + def to_s(issue=nil) + issue ||= issue_from + issue_text = block_given? ? yield(other_issue(issue)) : "##{other_issue(issue).try(:id)}" + s = [] + s << l(label_for(issue)) + s << "(#{l('datetime.distance_in_words.x_days', :count => delay)})" if delay && delay != 0 + s << issue_text + s.join(' ') + end + def css_classes_for(issue) "rel-#{relation_type_for(issue)}" end diff --git a/app/views/issues/_relations.html.erb b/app/views/issues/_relations.html.erb index 049d6f350..58b5bde3e 100644 --- a/app/views/issues/_relations.html.erb +++ b/app/views/issues/_relations.html.erb @@ -14,10 +14,7 @@ <%= check_box_tag("ids[]", other_issue.id, false, :id => nil) %> - <%= l(relation.label_for(@issue)) %> - <%= "(#{l('datetime.distance_in_words.x_days', :count => relation.delay)})" if relation.delay && relation.delay != 0 %> - <%= h(other_issue.project) + ' - ' if Setting.cross_project_issue_relations? %> - <%= link_to_issue(other_issue, :truncate => 60) %> + <%= relation.to_s(@issue) {|other| link_to_issue(other, :truncate => 60, :project => Setting.cross_project_issue_relations?)}.html_safe %> <%=h other_issue.status.name %> <%= format_date(other_issue.start_date) %> diff --git a/test/unit/issue_relation_test.rb b/test/unit/issue_relation_test.rb index 086373bd2..4b6cbc4c9 100644 --- a/test/unit/issue_relation_test.rb +++ b/test/unit/issue_relation_test.rb @@ -214,4 +214,23 @@ class IssueRelationTest < ActiveSupport::TestCase assert_equal '10', to.journals.last.details.last.old_value assert_nil to.journals.last.details.last.value end + + def test_to_s_should_return_the_relation_string + set_language_if_valid 'en' + relation = IssueRelation.find(1) + assert_equal "Blocks #9", relation.to_s(relation.issue_from) + assert_equal "Blocked by #10", relation.to_s(relation.issue_to) + end + + def test_to_s_without_argument_should_return_the_relation_string_for_issue_from + set_language_if_valid 'en' + relation = IssueRelation.find(1) + assert_equal "Blocks #9", relation.to_s + end + + def test_to_s_should_accept_a_block_as_custom_issue_formatting + set_language_if_valid 'en' + relation = IssueRelation.find(1) + assert_equal "Blocks Bug #9", relation.to_s {|issue| "#{issue.tracker} ##{issue.id}"} + end end -- 2.39.5