Defect #8539 ยป 8539.patch
| app/models/issue.rb | ||
|---|---|---|
| 1018 | 1018 | |
| 1019 | 1019 |
# Returns true if this issue is blocked by another issue that is still open |
| 1020 | 1020 |
def blocked? |
| 1021 |
!relations_to.detect {|ir| ir.relation_type == 'blocks' && !ir.issue_from.closed?}.nil?
|
|
| 1021 |
relations_to.any? {|ir| ir.relation_type == 'blocks' && ir.issue_from&.closed? == false}
|
|
| 1022 | 1022 |
end |
| 1023 | 1023 | |
| 1024 | 1024 |
# Returns true if this issue can be closed and if not, returns false and populates the reason |
| test/unit/issue_test.rb | ||
|---|---|---|
| 2222 | 2222 |
assert !blocking_issue.blocked? |
| 2223 | 2223 |
end |
| 2224 | 2224 | |
| 2225 |
def test_blocked_should_not_raise_an_exception_when_blocing_issue_is_invalid |
|
| 2226 |
ir = IssueRelation.find_by(issue_from_id: 10, issue_to_id: 9, relation_type: 'blocks') |
|
| 2227 |
issue = Issue.find(9) |
|
| 2228 |
assert issue.blocked? |
|
| 2229 | ||
| 2230 |
ir.update_column :issue_from_id, 0 # invalid issue id |
|
| 2231 |
issue.reload |
|
| 2232 |
assert !issue.blocked? |
|
| 2233 |
end |
|
| 2234 | ||
| 2225 | 2235 |
def test_blocked_issues_dont_allow_closed_statuses |
| 2226 | 2236 |
blocked_issue = Issue.find(9) |
| 2227 | 2237 | |