Bug 16274: Limit the patron self registration to some libraries
authorJonathan Druart <jonathan.druart@bugs.koha-community.org>
Sat, 23 Apr 2016 15:37:26 +0000 (16:37 +0100)
committerKyle M Hall <kyle@bywatersolutions.com>
Mon, 12 Sep 2016 15:36:04 +0000 (15:36 +0000)
Currently a patron can select a home library in the list of all
libraries defined in the system.
However some of these libraries might not accept self registration.
This patch adds a new pref to display only the allowed libraries.

Test plan:
0/ Apply the patch, do not fill the new pref
1/ Self register a new patron
=> All the libraries defined should be displayed in the "Home library"
dropwdown list
2/ Fill the pref PatronSelfRegistrationLibraryList with some of the
branchcode defined in the system
=> Self register a new patron and confirm that the dropdown list has
been filtered.

Sponsored-by: BULAC - http://www.bulac.fr/
Signed-off-by: Nicolas Legrand <nicolas.legrand@bulac.fr>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-memberentry.tt
opac/opac-memberentry.pl

index 66db306..71b45c8 100644 (file)
                                         Home library:</label>
 
                                         <select id="borrower_branchcode" name="borrower_branchcode">
-                                            [% PROCESS options_for_libraries libraries => Branches.all( selected => borrower.branchcode ) %]
+                                            [% FOREACH l IN libraries %]
+                                                [% IF l.branchcode == borrower.branchcode %]
+                                                    <option value="[% l.branchcode | html %]" selected="selected">[% l.branchname %]</option>
+                                                [% ELSE %]
+                                                    <option value="[% l.branchcode | html %]">[% l.branchname %]</option>
+                                                [% END %]
+                                            [% END %]
                                         </select>
                                     </li>
                                 [% END %]
index 6dcc832..34f9ac8 100755 (executable)
@@ -32,6 +32,7 @@ use Koha::Patron::Modifications;
 use C4::Scrubber;
 use Email::Valid;
 use Koha::DateUtils;
+use Koha::Libraries;
 use Koha::Patron::Images;
 use Koha::Token;
 
@@ -65,10 +66,16 @@ if ( $action eq q{} ) {
 
 my $mandatory = GetMandatoryFields($action);
 
+my @libraries = Koha::Libraries->search;
+if ( my @libraries_to_display = split '\|', C4::Context->preference('PatronSelfRegistrationLibraryList') ) {
+    @libraries = map { my $b = $_; my $branchcode = $_->branchcode; grep( /^$branchcode$/, @libraries_to_display ) ? $b : () } @libraries;
+}
+
 $template->param(
     action            => $action,
     hidden            => GetHiddenFields( $mandatory, 'registration' ),
     mandatory         => $mandatory,
+    libraries         => \@libraries,
     OPACPatronDetails => C4::Context->preference('OPACPatronDetails'),
 );