@@ -853,28 +853,16 class Issue < ActiveRecord::Base | |||||
853 | IssueRelation.find(relation_id, :conditions => ["issue_to_id = ? OR issue_from_id = ?", id, id]) |
|
853 | IssueRelation.find(relation_id, :conditions => ["issue_to_id = ? OR issue_from_id = ?", id, id]) | |
854 | end |
|
854 | end | |
855 |
|
855 | |||
|
856 | # Returns all the other issues that depend on the issue | |||
856 | def all_dependent_issues(except=[]) |
|
857 | def all_dependent_issues(except=[]) | |
857 | except << self |
|
858 | except << self | |
858 | dependencies = [] |
|
859 | dependencies = [] | |
859 | relations_from.each do |relation| |
|
860 | dependencies += relations_from.map(&:issue_to) | |
860 | if relation.issue_to && !except.include?(relation.issue_to) |
|
861 | dependencies += children unless leaf? | |
861 |
|
|
862 | dependencies << parent | |
862 | dependencies += relation.issue_to.all_dependent_issues(except) |
|
863 | dependencies.compact! | |
863 | end |
|
864 | dependencies -= except | |
864 | end |
|
865 | dependencies + dependencies.map {|issue| issue.all_dependent_issues(except)}.flatten | |
865 | unless leaf? |
|
|||
866 | children.each do |child| |
|
|||
867 | if !except.include?(child) |
|
|||
868 | dependencies << child |
|
|||
869 | dependencies += child.all_dependent_issues(except) |
|
|||
870 | end |
|
|||
871 | end |
|
|||
872 | end |
|
|||
873 | if parent && !except.include?(parent) |
|
|||
874 | dependencies << parent |
|
|||
875 | dependencies += parent.all_dependent_issues(except) |
|
|||
876 | end |
|
|||
877 | dependencies |
|
|||
878 | end |
|
866 | end | |
879 |
|
867 | |||
880 | # Returns an array of issues that duplicate this one |
|
868 | # Returns an array of issues that duplicate this one |
General Comments 0
You need to be logged in to leave comments.
Login now