From 89134371188781298679c98fe0cc4da86a0c8b36 Mon Sep 17 00:00:00 2001 From: Nicolas Vigier Date: Thu, 13 Jun 2013 21:25:36 +0000 Subject: Sort advisories by publish time and ID --- lib/MGA/Advisories.pm | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'lib/MGA') diff --git a/lib/MGA/Advisories.pm b/lib/MGA/Advisories.pm index 9146242..398f9af 100644 --- a/lib/MGA/Advisories.pm +++ b/lib/MGA/Advisories.pm @@ -118,6 +118,15 @@ sub publish_advisories { } } +sub adv_sort { + my $advdb = shift; + sort { + my $pa = $advdb->{advisories}{$a}{status}{published}; + my $pb = $advdb->{advisories}{$b}{status}{published}; + return $pa == $pb ? $b cmp $a : $pb cmp $pa; + } @_; +} + sub sort_advisories { my ($advdb) = @_; foreach my $adv (keys %{$advdb->{advisories}}) { @@ -138,6 +147,12 @@ sub sort_advisories { } } } + foreach my $by ('by_type', 'by_cve', 'by_rel', 'by_media', 'by_src') { + foreach my $k (keys %{$advdb->{$by}}) { + $advdb->{$by}{$k} = [ adv_sort($advdb, @{$advdb->{$by}{$k}}) ]; + } + } + $advdb->{sorted} = [ adv_sort($advdb, keys $advdb->{advisories}) ]; } sub process_template { -- cgit v1.2.1