Bug 21626: Use teams.yaml for teams section
authorMartin Renvoize <martin.renvoize@ptfs-europe.com>
Thu, 11 Apr 2019 13:33:30 +0000 (14:33 +0100)
committerNick Clemens <nick@bywatersolutions.com>
Fri, 17 May 2019 14:46:09 +0000 (14:46 +0000)
Signed-off-by: Owen Leonard <oleonard@myacpl.org>

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>

about.pl
koha-tmpl/intranet-tmpl/prog/en/includes/about-team.inc [new file with mode: 0644]
koha-tmpl/intranet-tmpl/prog/en/modules/about.tt

index 0a7300c..1020490 100755 (executable)
--- a/about.pl
+++ b/about.pl
@@ -530,35 +530,53 @@ if ( defined C4::Context->config('docdir') ) {
     $docdir = C4::Context->config('intranetdir') . '/docs';
 }
 
+## Release teams
+my $teams = 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" )
   : {};
-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} )
-            : ()
-        )
+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};
+                }
+            }
+        }
+        else {
+            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};
+            }
+        }
     }
+}
+
+## Create last name ordered array of people from contributors
+my @people = map {
+    { name => $_, ( $contributors->{$_} ? %{ $contributors->{$_} } : () ) }
 } sort {
     my ($alast) = $a =~ /(\S+)$/;
     my ($blast) = $b =~ /(\S+)$/;
@@ -566,6 +584,8 @@ my @people = map {
 } 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" ) ) {
diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/about-team.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/about-team.inc
new file mode 100644 (file)
index 0000000..e61d334
--- /dev/null
@@ -0,0 +1,131 @@
+[%- BLOCK role -%]
+  [%- SWITCH role.key -%]
+    [%- CASE 'manager'               -%]Release manager
+    [%- CASE 'manager_assistant'     -%]Release manager assistant
+    [%- CASE 'qa_manager'            -%]Quality assurance manager
+    [%- CASE 'qa'                    -%]Quality assurance team
+    [%- CASE 'documentation'         -%]Documentation manager
+    [%- CASE 'documentation_team'    -%]Documentation team
+    [%- CASE 'translation'           -%]Translation manager
+    [%- CASE 'translation_assistant' -%]Translation manager assistant
+    [%- CASE 'te'                    -%]Topic expert
+    [%- CASE 'bugwrangler'           -%]Bug wrangler
+    [%- CASE 'maintainer'            -%]Release maintainer
+    [%- CASE 'maintainer_assistant'  -%]Release maintainer assistant
+    [%- CASE 'wiki'                  -%]Wiki curator
+    [%- CASE 'ci'                    -%]Continuous integration manager
+    [%- CASE 'packaging'             -%]Packaging manager
+    [%- CASE 'packaging_assistant'   -%]Packaging manager assistant
+    [%- CASE 'chairperson'           -%]Meetings chairperson
+    [%- CASE 'newsletter'            -%]Newsletter editor
+    [%- CASE 'mm'                    -%]Module maintainer
+    [%- CASE 'vm'                    -%]Virtual machine maintainer
+    [%- CASE 'database'              -%]Documentation specialist
+    [%- CASE 'live_cd'               -%]Live CD maintainer
+  [%- END -%]
+[%- END -%]
+
+[%- BLOCK person -%]
+[% IF p.openhub %]<a href="[% p.openhub | url %]">[% p.name | html %]</a>[% ELSE %][% p.name | html %][% END %]
+[%- END -%]
+
+[%- BLOCK contributions -%]
+[%- IF p.roles || p.notes -%]
+<ul>
+    [% FOREACH r IN p.roles %]<li>[% INCLUDE role role=r %] ([% r.value.join(', ') | html %])</li>[% END %]
+    [% IF p.notes %]<li>[% p.notes | html %]</li>[% END %]
+</ul>
+[%- END -%]
+[%- END -%]
+
+[%- BLOCK team -%]
+    <ul>
+
+        <li><strong>Release manager:</strong>
+            [% INCLUDE person p=t.manager %]
+        </li>
+
+        [% IF t.manager_assistants %]
+        <li><strong>Release manager assistants:</strong>
+            <ul>
+                [% FOREACH a IN t.assistants %]
+                <li>[% INCLUDE person p=a %]</li>
+                [% END %]
+            </ul>
+        </li>
+        [% ELSIF t.manager_assistant %]
+        <li><strong>Release manager assistant:</strong>
+            [% INCLUDE person p=t.manager_assistant %]
+        </li>
+        [% END %]
+
+        [% IF t.qa_manager %]
+        <li><strong>Quality assurance manager:</strong>
+            [% INCLUDE person p=t.qa_manager %]
+        </li>
+        [% END %]
+
+        [% IF t.qa %]
+        <li><strong>Quality assurance team:</strong>
+            <ul>
+                [% FOREACH qa IN t.qa %]
+                <li>[% INCLUDE person p=qa %]</li>
+                [% END %]
+            </ul>
+        </li>
+        [% END %]
+
+        [% IF t.documentation %]
+        <li><strong>Documentation Manager:</strong>
+            [% INCLUDE person p=t.documentation %]
+        </li>
+        [% END %]
+
+        [% IF t.documentation_team %]
+        <li><strong>Documentation Team:</strong>
+            <ul>
+                [% FOREACH doc_member IN t.documentation_team %]
+                <li>[% INCLUDE person p=doc_member %]</li>
+                [% END %]
+            </ul>
+        </li>
+        [% END %]
+
+        [% IF t.translation %]
+        <li><strong>Translation manager:</strong>
+            [% INCLUDE person p=t.translation %]
+        </li>
+        [% END %]
+
+        [% IF t.packaging %]
+        <li><strong>Packaging manager:</strong>
+            [% INCLUDE person p=t.packaging %]
+        </li>
+        [% END %]
+
+        [% IF t.ci %]
+        <li><strong>Jenkins maintainer:</strong>
+            [% INCLUDE person p=t.ci %]
+        </li>
+        [% END %]
+
+        [% IF t.bugwrangler %]
+        <li><strong>Bug wranglers:</strong>
+            <ul>
+                [% FOREACH bugwrangler IN t.bugwrangler %]
+                <li>[% INCLUDE person p=bugwrangler %]</li>
+                [% END %]
+            </ul>
+        </li>
+        [% END %]
+
+        <li><strong>Release maintainers:</strong>
+            <ul>
+                [% FOREACH m IN t.maintainer %]
+                <li>[% m.version | html %] - [% INCLUDE person p=m %]</li>
+                [% END %]
+            </ul>
+        </li>
+
+    </ul>
+[%- END -%]
index 3921698..abc01b3 100644 (file)
@@ -8,6 +8,7 @@
 </head>
 <body id="about_about" class="about">
 [% INCLUDE 'header.inc' %]
+[% PROCESS 'about-team.inc' %]
 
 <div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> &rsaquo; About Koha</div>
 
                 <li><a href="http://www.ashs.school.nz/">Albany Senior High School</a>, Auckland, New Zealand (OPAC 'star-ratings' sponsorship)</li>
             </ul>
 
-            <h2>Koha 18.11 release team</h2>
-            <ul>
-                <li><strong>Release manager:</strong>
-                    <a href="https://www.openhub.net/p/koha/contributors/6620692886191">Nick Clemens</a>
-                </li>
-                <li><strong>Release manager assistants:</strong>
-                    <ul>
-                        <li><a href="https://www.openhub.net/p/koha/contributors/6618544730094">Tomás Cohen Arazi</a></li>
-                        <li><a href="https://www.openhub.net/p/koha/contributors/6618545125093">Jonathan Druart</a></li>
-                        <li><a href="https://www.openhub.net/p/koha/contributors/6618544661344">Brendan Gallagher</a></li>
-                        <li><a href="https://www.openhub.net/p/koha/contributors/6620692261494">Kyle Hall</a></li>
-                    </ul>
-                </li>
-                <li><strong>Documentation team:</strong>
-                    <ul>
-                        <li>Caroline Cyr La Rose</li>
-                        <li>Lee Jamison</li>
-                        <li>David Nind</li>
-                    </ul>
-                </li>
-                <li><strong>Translation manager:</strong>
-                    <a href="https://www.openhub.net/p/koha/contributors/6618544839606">Bernardo González Kriegel</a>
-                </li>
-                <li><strong>Quality assurance manager:</strong>
-                    <a href="https://www.openhub.net/p/koha/contributors/6618544670742">Katrin Fischer</a>
-                </li>
-                <li><strong>Quality assurance team:</strong>
-                    <ul>
-                        <li>Alex Arnaud</li>
-                        <li><a href="https://www.openhub.net/p/koha/contributors/6618544730094">Tomás Cohen Arazi</a></li>
-                        <li><a href="https://www.openhub.net/p/koha/contributors/6618544609030">Chris Cormack</a></li>
-                        <li><a href="https://www.openhub.net/p/koha/contributors/6618545125093">Jonathan Druart</a></li>
-                        <li><a href="https://www.openhub.net/p/koha/contributors/6620692261494">Kyle Hall</a></li>
-                        <li><a href="https://www.openhub.net/p/koha/contributors/6620692419690">Julian Maurice</a></li>
-                        <li>Josef Moravec</li>
-                        <li><a href="https://www.openhub.net/p/koha/contributors/6618544785220">Martin Renvoize</a></li>
-                        <li><a href="https://www.openhub.net/p/koha/contributors/6618544727712">Marcel de Rooy</a></li>
-                    </ul>
-                </li>
-                <li><strong>Release maintainers:</strong>
-                    <ul>
-                        <li><a href="https://www.openhub.net/p/koha/contributors/6618544785220">Martin Renvoize</a> (18.05)</li>
-                        <li><a href="https://www.openhub.net/p/koha/contributors/6618545418525">Fridolin Somers</a> (17.11)</li>
-                        <li><a href="https://www.openhub.net/p/koha/contributors/6618545418525">Fridolin Somers</a> (17.05)</li>
-                    </ul>
-                </li>
-                <li><strong>Packaging manager:</strong>
-                    <ul>
-                        <li><a href="https://www.openhub.net/p/koha/contributors/6620692605913">Mirko Tietgen</a></li>
-                        <li><a href="https://www.openhub.net/accounts/kohaaloha">Mason James</a> (Assistant)</li>
-                    </ul>
-                </li>
-                <li><strong>Jenkins maintainer:</strong>
-                    <a href="https://www.openhub.net/p/koha/contributors/6618544730094">Tomás Cohen Arazi</a>
-                </li>
-                <li><strong>Bug wranglers:</strong>
-                    <ul>
-                        <li>Indranil Das Gupta</li>
-                        <li>Claire Gravely</li>
-                        <li>Amit Gupta</li>
-                        <li>Jon Knight</li>
-                    </ul>
-                </li>
-            </ul>
+            <h2>Koha release teams</h2>
+            <div class="row">
+                <div class="col-md-6">
+                    <h3>Koha [% short_version | html %] release team</h3>
+                    [% IF development_version %]
+                        <p>You are running a development version of Koha</p>
+                    [% ELSE %]
+                        [% INCLUDE team t=release_team %]
+                    [% END %]
+                </div>
+
+                <div class="col-md-6">
+                    <h3>Current maintainence team</h3>
+
+                    [% INCLUDE team t=maintenance_team %]
+                </div>
+            </div>
 
             <h2>Koha development team</h2>
             [% IF contributors.size %]
 [% END %]
 <!-- the main div is closed in intranet-bottom.inc -->
 [% INCLUDE 'intranet-bottom.inc' %]
-<!-- roles for translation -->
-[%- BLOCK role -%]
-  [%- SWITCH role.key -%]
-    [%- CASE 'manager'               -%]Release manager
-    [%- CASE 'manager_assistant'     -%]Release manager assistant
-    [%- CASE 'qa_manager'            -%]Quality assurance manager
-    [%- CASE 'qa'                    -%]Quality assurance team
-    [%- CASE 'documentation'         -%]Documentation manager
-    [%- CASE 'documentation_team'    -%]Documentation team
-    [%- CASE 'translation'           -%]Translation manager
-    [%- CASE 'translation_assistant' -%]Translation manager assistant
-    [%- CASE 'te'                    -%]Topic expert
-    [%- CASE 'bugwrangler'           -%]Bug wrangler
-    [%- CASE 'maintainer'            -%]Release maintainer
-    [%- CASE 'maintainer_assistant'  -%]Release maintainer assistant
-    [%- CASE 'wiki'                  -%]Wiki curator
-    [%- CASE 'ci'                    -%]Continuous integration manager
-    [%- CASE 'packaging'             -%]Packaging manager
-    [%- CASE 'packaging_assistant'   -%]Packaging manager assistant
-    [%- CASE 'chairperson'           -%]Meetings chairperson
-    [%- CASE 'newsletter'            -%]Newsletter editor
-    [%- CASE 'mm'                    -%]Module maintainer
-    [%- CASE 'vm'                    -%]Virtual machine maintainer
-    [%- CASE 'database'              -%]Documentation specialist
-    [%- CASE 'live_cd'               -%]Live CD maintainer
-  [%- END -%]
-[%- END -%]
-[%- BLOCK person -%]
-[% IF p.openhub %]<a href="[% p.openhub | url %]">[% p.name | html %]</a>[% ELSE %][% p.name | html %][% END %]
-[%- END -%]
-[%- BLOCK contributions -%]
-[%- IF p.roles || p.notes -%]
-<ul>
-    [% FOREACH r IN p.roles %]<li>[% INCLUDE role role=r %] ([% r.value.join(', ') | html %])</li>[% END %]
-    [% IF p.notes %]<li>[% p.notes | html %]</li>[% END %]
-</ul>
-[%- END -%]
-[%- END -%]