use Config;
use Search::Elasticsearch;
use Try::Tiny;
-use YAML;
+use YAML qw/LoadFile/;
use C4::Output;
use C4::Auth;
"RisExportAdditionalFields",
"UpdateItemWhenLostFromHoldList",
"MarcFieldsToOrder",
- "MarcItemFieldsToOrder"
+ "MarcItemFieldsToOrder",
+ "UpdateitemLocationOnCheckin",
+ "ItemsDeniedRenewal"
);
my @bad_yaml_prefs;
foreach my $syspref (@yaml_prefs) {
## ------------------------------------------
-## Koha time line code
-
-#get file location
+## Koha contributions
my $docdir;
if ( defined C4::Context->config('docdir') ) {
$docdir = 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 =
+ -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) = ( 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" ) ) {
my $i = 0;