Safer code in IssueRelation (#7018).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@4467 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
224921460a
commit
7fb0fe2e91
|
@ -84,15 +84,16 @@ class IssueRelation < ActiveRecord::Base
|
||||||
|
|
||||||
def set_issue_to_dates
|
def set_issue_to_dates
|
||||||
soonest_start = self.successor_soonest_start
|
soonest_start = self.successor_soonest_start
|
||||||
if soonest_start
|
if soonest_start && issue_to
|
||||||
issue_to.reschedule_after(soonest_start)
|
issue_to.reschedule_after(soonest_start)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def successor_soonest_start
|
def successor_soonest_start
|
||||||
return nil unless (TYPE_PRECEDES == self.relation_type) && (issue_from.start_date || issue_from.due_date)
|
if (TYPE_PRECEDES == self.relation_type) && delay && issue_from && (issue_from.start_date || issue_from.due_date)
|
||||||
(issue_from.due_date || issue_from.start_date) + 1 + delay
|
(issue_from.due_date || issue_from.start_date) + 1 + delay
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def <=>(relation)
|
def <=>(relation)
|
||||||
TYPES[self.relation_type][:order] <=> TYPES[relation.relation_type][:order]
|
TYPES[self.relation_type][:order] <=> TYPES[relation.relation_type][:order]
|
||||||
|
|
|
@ -63,4 +63,14 @@ class IssueRelationTest < ActiveSupport::TestCase
|
||||||
assert_equal IssueRelation::TYPE_PRECEDES, relation.relation_type_for(from)
|
assert_equal IssueRelation::TYPE_PRECEDES, relation.relation_type_for(from)
|
||||||
assert_equal IssueRelation::TYPE_FOLLOWS, relation.relation_type_for(to)
|
assert_equal IssueRelation::TYPE_FOLLOWS, relation.relation_type_for(to)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_set_issue_to_dates_without_issue_to
|
||||||
|
r = IssueRelation.new(:issue_from => Issue.new(:start_date => Date.today), :relation_type => IssueRelation::TYPE_PRECEDES, :delay => 1)
|
||||||
|
assert_nil r.set_issue_to_dates
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_set_issue_to_dates_without_issues
|
||||||
|
r = IssueRelation.new(:relation_type => IssueRelation::TYPE_PRECEDES, :delay => 1)
|
||||||
|
assert_nil r.set_issue_to_dates
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue