Merged r11692 from trunk (#13586).

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.3-stable@11697 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang 2013-04-03 17:04:40 +00:00
parent e189641e8c
commit ca39b05420
2 changed files with 19 additions and 2 deletions

View File

@ -859,10 +859,14 @@ class Issue < ActiveRecord::Base
dependencies = []
dependencies += relations_from.map(&:issue_to)
dependencies += children unless leaf?
dependencies << parent
dependencies.compact!
dependencies -= except
dependencies + dependencies.map {|issue| issue.all_dependent_issues(except)}.flatten
dependencies += dependencies.map {|issue| issue.all_dependent_issues(except)}.flatten
if parent
dependencies << parent
dependencies += parent.all_dependent_issues(except + parent.descendants)
end
dependencies
end
# Returns an array of issues that duplicate this one

View File

@ -137,6 +137,19 @@ class IssueRelationTest < ActiveSupport::TestCase
assert_include 'This relation would create a circular dependency', r.errors.full_messages
end
def test_subtasks_should_allow_precedes_relation
parent = Issue.generate!
child1 = Issue.generate!(:parent_issue_id => parent.id)
child2 = Issue.generate!(:parent_issue_id => parent.id)
r = IssueRelation.new(
:issue_from => child1, :issue_to => child2,
:relation_type => IssueRelation::TYPE_PRECEDES
)
assert r.valid?
assert r.save
end
def test_validates_circular_dependency_on_reverse_relations
IssueRelation.delete_all
assert IssueRelation.create!(