Defect #7335 » sort_issues.rb
1 |
INFINITY = 1.0/0 |
---|---|
2 |
|
3 |
#selection sort
|
4 |
def sort_issues(issues) |
5 |
for i in 0...issues.length do |
6 |
list = issues[i...issues.length] |
7 |
issue = list.min_by{|issue| issue.start_date ? issue.start_date.to_time.to_i : INFINITY } |
8 |
if issue.start_date != nil and issue != issues[i] |
9 |
destiny = issue.left_sibling |
10 |
issue.move_to_left_of issues[i] |
11 |
|
12 |
if destiny != issues[i] |
13 |
issues[i].move_to_right_of destiny |
14 |
end
|
15 |
|
16 |
min_index = issues.index(issue) |
17 |
issues[i], issues[min_index] = issues[min_index], issues[i] |
18 |
end
|
19 |
sort_issues issue.children |
20 |
end
|
21 |
end
|
22 |
|
23 |
|
24 |
def sort_all_issues |
25 |
Project.all.each do |project| |
26 |
project.issues.each do |issue| |
27 |
if issue.root? |
28 |
sort_issues(issue.children) |
29 |
end
|
30 |
end
|
31 |
end
|
32 |
nil
|
33 |
end
|
34 |
|
35 |
sort_all_issues
|