Bug 16274: Limit the patron self registration to some libraries

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>
This commit is contained in:
Jonathan Druart 2016-04-23 16:37:26 +01:00 committed by Kyle M Hall
parent 38422f1af6
commit 85288b8f15
2 changed files with 14 additions and 1 deletions

View file

@ -160,7 +160,13 @@
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 %]

View file

@ -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'),
);