diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2013-05-12 08:45:40 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2013-05-12 08:45:40 +0000 |
commit | 922acdbcc22420b43a3c3f291beb12efe2705fa6 (patch) | |
tree | d62ab5b1f96a3e912ad90b3d5b9ead75de1a0ace /app | |
parent | a7102db8c44b5825ca217f491fe13d36d581bcf4 (diff) | |
download | redmine-922acdbcc22420b43a3c3f291beb12efe2705fa6.tar.gz redmine-922acdbcc22420b43a3c3f291beb12efe2705fa6.zip |
Check inclusion only once (#14015).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@11832 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'app')
-rw-r--r-- | app/models/issue.rb | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/app/models/issue.rb b/app/models/issue.rb index 82c0f2e63..8dfa2b53a 100644 --- a/app/models/issue.rb +++ b/app/models/issue.rb @@ -904,13 +904,15 @@ class Issue < ActiveRecord::Base # the children of the current node need to be processed. if current_issue.children && (current_issue_status == ePROCESS_CHILDREN_ONLY || current_issue_status == ePROCESS_ALL) current_issue.children.each do |child| - if (issue_status[child] == eNOT_DISCOVERED) && !except.include?(child) + next if except.include?(child) + + if (issue_status[child] == eNOT_DISCOVERED) queue << child issue_status[child] = ePROCESS_ALL - elsif (issue_status[child] == eRELATIONS_PROCESSED) && !except.include?(child) + elsif (issue_status[child] == eRELATIONS_PROCESSED) queue << child issue_status[child] = ePROCESS_CHILDREN_ONLY - elsif (issue_status[child] == ePROCESS_RELATIONS_ONLY) && !except.include?(child) + elsif (issue_status[child] == ePROCESS_RELATIONS_ONLY) queue << child issue_status[child] = ePROCESS_ALL end @@ -919,13 +921,15 @@ class Issue < ActiveRecord::Base # Add related issues to the queue, if they are not already in it. current_issue.relations_from.map(&:issue_to).each do |related_issue| - if (issue_status[related_issue] == eNOT_DISCOVERED) && !except.include?(related_issue) + next if except.include?(related_issue) + + if (issue_status[related_issue] == eNOT_DISCOVERED) queue << related_issue issue_status[related_issue] = ePROCESS_ALL - elsif (issue_status[related_issue] == eRELATIONS_PROCESSED) && !except.include?(related_issue) + elsif (issue_status[related_issue] == eRELATIONS_PROCESSED) queue << related_issue issue_status[related_issue] = ePROCESS_CHILDREN_ONLY - elsif (issue_status[related_issue] == ePROCESS_RELATIONS_ONLY) && !except.include?(related_issue) + elsif (issue_status[related_issue] == ePROCESS_RELATIONS_ONLY) queue << related_issue issue_status[related_issue] = ePROCESS_ALL end |