Bug 22563: (follow-up) Corrections for tests
[koha-equinox.git] / about.pl
index 8b1a55b..dacd39d 100755 (executable)
--- a/about.pl
+++ b/about.pl
@@ -32,7 +32,7 @@ use XML::Simple;
 use Config;
 use Search::Elasticsearch;
 use Try::Tiny;
-use YAML::XS qw/LoadFile/;
+use YAML qw/LoadFile/;
 
 use C4::Output;
 use C4::Auth;
@@ -530,39 +530,68 @@ if ( defined C4::Context->config('docdir') ) {
     $docdir = C4::Context->config('intranetdir') . '/docs';
 }
 
+## Release teams
+my $teams =
+  -e "$docdir" . "/teams.yaml"
+  ? LoadFile( "$docdir" . "/teams.yaml" )
+  : {};
+my $dev_team = (sort {$b <=> $a} (keys %{$teams->{team}}))[0];
+my $short_version = substr($versions{'kohaVersion'},0,5);
+my $minor = substr($versions{'kohaVersion'},3,2);
+my $development_version = ( $minor eq '05' || $minor eq '11' ) ? 0 : 1;
+$template->param( short_version => $short_version );
+$template->param( development_version => $development_version );
+
 ## Contributors
-my $contributors = LoadFile("$docdir"."/contributors.yaml");
-my @people = map {
-    {
-        name => $_,
-        (
-            exists( $contributors->{$_}->{openhub} )
-            ? ( openhub => $contributors->{$_}->{openhub} )
-            : ()
-        ),
-        (
-            exists( $contributors->{$_}->{roles} )
-            ? ( roles => $contributors->{$_}->{roles} )
-            : ()
-        ),
-        (
-            exists( $contributors->{$_}->{commits} )
-            ? ( commits => $contributors->{$_}->{commits} )
-            : ()
-        ),
-        (
-            exists( $contributors->{$_}->{notes} )
-            ? ( notes => $contributors->{$_}->{notes} )
-            : ()
-        )
+my $contributors =
+  -e "$docdir" . "/contributors.yaml"
+  ? LoadFile( "$docdir" . "/contributors.yaml" )
+  : {};
+for my $version ( sort { $a <=> $b } keys %{$teams->{team}} ) {
+    for my $role ( keys %{ $teams->{team}->{$version} } ) {
+        my $normalized_role = "$role";
+        $normalized_role =~ s/s$//;
+        if ( ref( $teams->{team}->{$version}->{$role} ) eq 'ARRAY' ) {
+            for my $contributor ( @{ $teams->{team}->{$version}->{$role} } ) {
+                my $name = $contributor->{name};
+                # Add role to contributors
+                push @{ $contributors->{$name}->{roles}->{$normalized_role} },
+                  $version;
+                # Add openhub to teams
+                if ( exists( $contributors->{$name}->{openhub} ) ) {
+                    $contributor->{openhub} = $contributors->{$name}->{openhub};
+                }
+            }
+        }
+        elsif ( $role ne 'release_date' ) {
+            my $name = $teams->{team}->{$version}->{$role}->{name};
+            # Add role to contributors
+            push @{ $contributors->{$name}->{roles}->{$normalized_role} },
+              $version;
+            # Add openhub to teams
+            if ( exists( $contributors->{$name}->{openhub} ) ) {
+                $teams->{team}->{$version}->{$role}->{openhub} =
+                  $contributors->{$name}->{openhub};
+            }
+        }
+        else {
+            $teams->{team}->{$version}->{$role} = DateTime->from_epoch( epoch => $teams->{team}->{$version}->{$role});
+        }
     }
+}
+
+## Create last name ordered array of people from contributors
+my @people = map {
+    { name => $_, ( $contributors->{$_} ? %{ $contributors->{$_} } : () ) }
 } sort {
-    my ($alast) = $a =~ /(\S+)$/;
-    my ($blast) = $b =~ /(\S+)$/;
+    my ($alast) = ( split( /\s/, $a ) )[-1];
+    my ($blast) = ( split( /\s/, $b ) )[-1];
     lc($alast) cmp lc($blast)
 } keys %{$contributors};
 
 $template->param( contributors => \@people );
+$template->param( maintenance_team => $teams->{team}->{$dev_team} );
+$template->param( release_team => $teams->{team}->{$short_version} );
 
 ## Timeline
 if ( open( my $file, "<:encoding(UTF-8)", "$docdir" . "/history.txt" ) ) {