Bug 25079: Show club enrollment question answers in staff client

When a patron is enrolled in a patron club, koha collects answers to library-defined enrollment questions.
Those answers go into the database but are not viewable outside of reports.

This patch make those answers viewable on club-enrollments.pl.

Test plan
1. Apply the patch

2. Create a club template
    2.1. Go to Tools > Patron clubs
    2.2. Click on 'New Club Template'
    2.3. Fill the form
    2.4. on the 'Club fields' section, Click on Add new field
    2.5. Fill in the form
    2.6. on the 'Enrollment fields' section, Click on Add new field
    2.7. Fill in the form
    2.8. Click on Save button

3. Creation of the club
    3.1. Go to Tools > Patron clubs > 'Clubs' section (bottom)
    3.2. Click on the 'New Club' button and select the club template create on step 1
    3.3. Fill in the form
    3.4. Click on Save button

4. Club enrollement
    On the intranet (or the OPAC if permitted)
    4.1. Search for a pratron and open the patron folder
    4.2. Click on the 'Clubs' tab
    4.3. Find the name of the club and click on 'Enroll'
    4.4. Fill the questionnaire
    4.5. Confirm registration

5. Check registrations on the intranet
    5.1. Go to Tools > Patron clubs
    5.2. In the bottom 'Clubs' section, find the name of the club
    5.3. check the 'Enrolled patrons' column
       ---> should not be equal to zero.
    5.4 Click on 'Action' and choose the option “Enrollments”
       ---> The Enrollment fields created on step 2.6. are viewable in the table with their values

Signed-off-by: Sam Lau <samalau@gmail.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This commit is contained in:
Hammat Wele 2023-04-12 12:48:31 +00:00 committed by Tomas Cohen Arazi
parent ee24e53a66
commit b6cd0ef0d2
Signed by: tomascohen
GPG key ID: 0A272EA1B2F3C15F
2 changed files with 27 additions and 0 deletions

View file

@ -24,6 +24,7 @@ use CGI;
use C4::Auth qw( get_template_and_user );
use C4::Output qw( output_html_with_http_headers );
use Koha::Clubs;
use Koha::Club::Enrollment::Fields;
my $cgi = CGI->new;
@ -38,9 +39,12 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
my $id = $cgi->param('id');
my $club = Koha::Clubs->find( $id );
my @club_template_enrollment_fields = $club->club_template()->club_template_enrollment_fields()->as_list;
my @club_enrollment_fields = Koha::Club::Enrollment::Fields->search({'club_template_enrollment_field_id'=> { -in => [map { $_->id } @club_template_enrollment_fields] }})->as_list;
$template->param(
club => $club,
club_enrollment_fields => \@club_enrollment_fields,
);
output_html_with_http_headers( $cgi, $cookie, $template->output );

View file

@ -3,6 +3,8 @@
[% USE KohaDates %]
[% USE Branches %]
[% USE Koha %]
[% USE AuthorisedValues %]
[% SET AuthorisedValuesCategories = AuthorisedValues.GetCategories %]
[% SET footerjs = 1 %]
[% INCLUDE 'doc-head-open.inc' %]
<title>Club enrollments &rsaquo; Patron clubs &rsaquo; Tools &rsaquo; Koha</title>
@ -43,6 +45,9 @@
<tr>
<th>Name</th>
<th>Card number</th>
[% FOREACH club_template_enrollment_field IN club.club_template.club_template_enrollment_fields %]
<th>[% club_template_enrollment_field.name %] </th>
[% END %]
</tr>
</thead>
@ -56,6 +61,24 @@
<td>
[% p.cardnumber | html %]
</td>
[% IF club_enrollment_fields %]
[% FOREACH club_enrollment_field IN club_enrollment_fields %]
[% IF e.id == club_enrollment_field.club_enrollment_id %]
[% FOREACH club_template_enrollment_field IN club.club_template.club_template_enrollment_fields %]
[% IF club_enrollment_field.club_template_enrollment_field_id == club_template_enrollment_field.id %]
[% IF club_template_enrollment_field.authorised_value_category %]
[% FOREACH a IN AuthorisedValues.Get( club_template_enrollment_field.authorised_value_category ) %]
[% IF a.authorised_value == club_enrollment_field.value %]
[% SET club_enrollment_field.value = a.lib %]
[% END %]
[% END %]
[% END %]
<td>[% club_enrollment_field.value | html %]</td>
[% END %]
[% END %]
[% END %]
[% END %]
[% END %]
</tr>
[% END %]
</tbody>