diff options
-rwxr-xr-x | buglist.cgi | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/buglist.cgi b/buglist.cgi index 5171e7fee..023d06755 100755 --- a/buglist.cgi +++ b/buglist.cgi @@ -910,7 +910,16 @@ if (defined $::FORM{'order'} && $::FORM{'order'} ne "") { } die "Invalid order: $::FORM{'order'}" unless $::FORM{'order'} =~ /^([a-zA-Z0-9_., ]+)$/; - $query .= $::FORM{'order'}; + + # Extra special disgusting hack: if we are ordering by target_milestone, + # change it to order by the sortkey of the target_milestone first. + my $order = $::FORM{'order'}; + if ($order =~ /bugs.target_milestone/) { + $query =~ s/ WHERE / LEFT JOIN milestones ms_order ON ms_order.value = bugs.target_milestone AND ms_order.product = bugs.product WHERE /; + $order =~ s/bugs.target_milestone/ms_order.sortkey,ms_order.value/; + } + + $query .= $order; } |