@@ -887,10 +887,8 class Issue < ActiveRecord::Base | |||||
887 | issue_status[self] = ePROCESS_ALL |
|
887 | issue_status[self] = ePROCESS_ALL | |
888 |
|
888 | |||
889 | while (!queue.empty?) do |
|
889 | while (!queue.empty?) do | |
890 |
|
||||
891 | current_issue = queue.shift |
|
890 | current_issue = queue.shift | |
892 | current_issue_status = issue_status[current_issue] |
|
891 | current_issue_status = issue_status[current_issue] | |
893 |
|
||||
894 | dependencies << current_issue |
|
892 | dependencies << current_issue | |
895 |
|
893 | |||
896 | # Add parent to queue, if not already in it. |
|
894 | # Add parent to queue, if not already in it. | |
@@ -898,26 +896,20 class Issue < ActiveRecord::Base | |||||
898 | parentStatus = issue_status[parent] |
|
896 | parentStatus = issue_status[parent] | |
899 |
|
897 | |||
900 | if parent && (parentStatus == eNOT_DISCOVERED) && !except.include?(parent) |
|
898 | if parent && (parentStatus == eNOT_DISCOVERED) && !except.include?(parent) | |
901 |
|
||||
902 | queue << parent |
|
899 | queue << parent | |
903 | issue_status[parent] = ePROCESS_RELATIONS_ONLY |
|
900 | issue_status[parent] = ePROCESS_RELATIONS_ONLY | |
904 |
|
||||
905 | end |
|
901 | end | |
906 |
|
902 | |||
907 | # Add children to queue, but only if they are not already in it and |
|
903 | # Add children to queue, but only if they are not already in it and | |
908 | # the children of the current node need to be processed. |
|
904 | # the children of the current node need to be processed. | |
909 | if current_issue.children && (current_issue_status == ePROCESS_CHILDREN_ONLY || current_issue_status == ePROCESS_ALL) |
|
905 | if current_issue.children && (current_issue_status == ePROCESS_CHILDREN_ONLY || current_issue_status == ePROCESS_ALL) | |
910 |
|
||||
911 | current_issue.children.each do |child| |
|
906 | current_issue.children.each do |child| | |
912 |
|
||||
913 | if (issue_status[child] == eNOT_DISCOVERED) && !except.include?(child) |
|
907 | if (issue_status[child] == eNOT_DISCOVERED) && !except.include?(child) | |
914 | queue << child |
|
908 | queue << child | |
915 | issue_status[child] = ePROCESS_ALL |
|
909 | issue_status[child] = ePROCESS_ALL | |
916 |
|
||||
917 | elsif (issue_status[child] == eRELATIONS_PROCESSED) && !except.include?(child) |
|
910 | elsif (issue_status[child] == eRELATIONS_PROCESSED) && !except.include?(child) | |
918 | queue << child |
|
911 | queue << child | |
919 | issue_status[child] = ePROCESS_CHILDREN_ONLY |
|
912 | issue_status[child] = ePROCESS_CHILDREN_ONLY | |
920 |
|
||||
921 | elsif (issue_status[child] == ePROCESS_RELATIONS_ONLY) && !except.include?(child) |
|
913 | elsif (issue_status[child] == ePROCESS_RELATIONS_ONLY) && !except.include?(child) | |
922 | queue << child |
|
914 | queue << child | |
923 | issue_status[child] = ePROCESS_ALL |
|
915 | issue_status[child] = ePROCESS_ALL | |
@@ -927,15 +919,12 class Issue < ActiveRecord::Base | |||||
927 |
|
919 | |||
928 | # Add related issues to the queue, if they are not already in it. |
|
920 | # Add related issues to the queue, if they are not already in it. | |
929 | current_issue.relations_from.map(&:issue_to).each do |relatedIssue| |
|
921 | current_issue.relations_from.map(&:issue_to).each do |relatedIssue| | |
930 |
|
||||
931 | if (issue_status[relatedIssue] == eNOT_DISCOVERED) && !except.include?(relatedIssue) |
|
922 | if (issue_status[relatedIssue] == eNOT_DISCOVERED) && !except.include?(relatedIssue) | |
932 | queue << relatedIssue |
|
923 | queue << relatedIssue | |
933 | issue_status[relatedIssue] = ePROCESS_ALL |
|
924 | issue_status[relatedIssue] = ePROCESS_ALL | |
934 |
|
||||
935 | elsif (issue_status[relatedIssue] == eRELATIONS_PROCESSED) && !except.include?(relatedIssue) |
|
925 | elsif (issue_status[relatedIssue] == eRELATIONS_PROCESSED) && !except.include?(relatedIssue) | |
936 | queue << relatedIssue |
|
926 | queue << relatedIssue | |
937 | issue_status[relatedIssue] = ePROCESS_CHILDREN_ONLY |
|
927 | issue_status[relatedIssue] = ePROCESS_CHILDREN_ONLY | |
938 |
|
||||
939 | elsif (issue_status[relatedIssue] == ePROCESS_RELATIONS_ONLY) && !except.include?(relatedIssue) |
|
928 | elsif (issue_status[relatedIssue] == ePROCESS_RELATIONS_ONLY) && !except.include?(relatedIssue) | |
940 | queue << relatedIssue |
|
929 | queue << relatedIssue | |
941 | issue_status[relatedIssue] = ePROCESS_ALL |
|
930 | issue_status[relatedIssue] = ePROCESS_ALL | |
@@ -945,11 +934,9 class Issue < ActiveRecord::Base | |||||
945 | # Set new status for current issue |
|
934 | # Set new status for current issue | |
946 | if (current_issue_status == ePROCESS_ALL) || (current_issue_status == ePROCESS_CHILDREN_ONLY) |
|
935 | if (current_issue_status == ePROCESS_ALL) || (current_issue_status == ePROCESS_CHILDREN_ONLY) | |
947 | issue_status[current_issue] = eALL_PROCESSED |
|
936 | issue_status[current_issue] = eALL_PROCESSED | |
948 |
|
||||
949 | elsif (current_issue_status == ePROCESS_RELATIONS_ONLY) |
|
937 | elsif (current_issue_status == ePROCESS_RELATIONS_ONLY) | |
950 | issue_status[current_issue] = eRELATIONS_PROCESSED |
|
938 | issue_status[current_issue] = eRELATIONS_PROCESSED | |
951 | end |
|
939 | end | |
952 |
|
||||
953 | end # while |
|
940 | end # while | |
954 |
|
941 | |||
955 | # Remove the issues from the "except" parameter from the result array |
|
942 | # Remove the issues from the "except" parameter from the result array |
General Comments 0
You need to be logged in to leave comments.
Login now