Defect #7335 » sort_issues_from_start_date.diff
| lib/redmine/helpers/gantt.rb (working copy) | ||
|---|---|---|
| 678 | 678 |
if x.root_id == y.root_id |
| 679 | 679 |
x.lft <=> y.lft |
| 680 | 680 |
else |
| 681 |
x.root_id <=> y.root_id |
|
| 681 |
if x.start_date != nil and y.start_date != nil |
|
| 682 |
x.start_date <=> y.start_date |
|
| 683 |
elsif x.start_date != nil |
|
| 684 |
-1 |
|
| 685 |
elsif y.start_date != nil |
|
| 686 |
1 |
|
| 687 |
else |
|
| 688 |
x.root_id <=> y.root_id |
|
| 689 |
end |
|
| 682 | 690 |
end |
| 683 | 691 |
end |
| 684 | 692 | |
| app/models/issue.rb (working copy) | ||
|---|---|---|
| 766 | 766 |
# update former parent |
| 767 | 767 |
recalculate_attributes_for(former_parent_id) if former_parent_id |
| 768 | 768 |
end |
| 769 | ||
| 770 |
if self.parent != nil and self.start_date |
|
| 771 |
lesser_sibling_found = false |
|
| 772 |
last_visited = nil |
|
| 773 |
self.parent.children.reverse.each do |sibling| |
|
| 774 |
if (sibling != self and sibling.start_date and sibling.start_date < self.start_date) |
|
| 775 |
if last_visited != self |
|
| 776 |
move_to_right_of sibling |
|
| 777 |
end |
|
| 778 |
lesser_sibling_found = true |
|
| 779 |
break |
|
| 780 |
end |
|
| 781 |
last_visited = sibling |
|
| 782 |
end |
|
| 783 | ||
| 784 |
if self.parent.children[0] != self and not lesser_sibling_found |
|
| 785 |
move_to_left_of(self.parent.children[0]) |
|
| 786 |
end |
|
| 787 |
end |
|
| 788 | ||
| 769 | 789 |
remove_instance_variable(:@parent_issue) if instance_variable_defined?(:@parent_issue) |
| 770 | 790 |
end |
| 771 | 791 | |