Browse Source

Bug 18474: Restore multiple holds when patron is searched for

We lost the ability to place multiple holds when we are searching for
patrons. The multi_holds parameter is lost and not handled correctly in
the template.

Test plan:
- Make sure you can place multiple holds for a patron you will search for
- Same for simple hold

TODO the multiple holds view should not be displayed if only 1 record
has been selected from the search result.

Signed-off-by: claude brayer <claude.brayer@cea.fr>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
18.05.x
Jonathan Druart 6 years ago
parent
commit
6ef1e5d4ed
  1. 13
      koha-tmpl/intranet-tmpl/prog/en/includes/circ-patron-search-results.inc
  2. 5
      koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt
  3. 11
      reserve/request.pl

13
koha-tmpl/intranet-tmpl/prog/en/includes/circ-patron-search-results.inc

@ -13,12 +13,19 @@
</thead>
<tbody>
[% FOREACH borrower IN borrowers %]
[% IF ( destination == "circ" ) %]
[% IF destination == "circ" %]
<tr class="clickable" data-url="/cgi-bin/koha/circ/circulation.pl?borrowernumber=[% borrower.borrowernumber %]">
<td><a href="/cgi-bin/koha/circ/circulation.pl?borrowernumber=[% borrower.borrowernumber %]">[% borrower.surname %], [% borrower.firstname %]</a></td>
[% ELSIF destination == "holds" %]
[% IF multi_hold %]
[% SET data_url = "/cgi-bin/koha/reserve/request.pl?borrowernumber=" _ borrower.borrowernumber _ "&amp;multi_hold=1&amp;biblionumbers=" _ biblionumbers %]
[% ELSE %]
[% SET data_url = "/cgi-bin/koha/reserve/request.pl?borrowernumber=" _ borrower.borrowernumber _ "&amp;biblionumber=" _ biblionumber %]
[% END %]
<tr class="clickable" data-url="[% data_url %]">
<td><a href="[% data_url %]">[% borrower.surname %], [% borrower.firstname %]</a></td>
[% ELSE %]
<tr class="clickable" data-url="/cgi-bin/koha/reserve/request.pl?borrowernumber=[% borrower.borrowernumber %]&amp;biblionumber=[% biblionumber %]">
<td><a href="/cgi-bin/koha/reserve/request.pl?borrowernumber=[% borrower.borrowernumber %]&amp;biblionumber=[% biblionumber %]">[% borrower.surname %], [% borrower.firstname %]</a></td>
[%# This does not exist %]
[% END %]
<td>[% borrower.cardnumber %]</td>
<td>[% borrower.dateofbirth | $KohaDates %]</td>

5
koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt

@ -277,7 +277,12 @@ function checkMultiHold() {
<div class="hint">Enter patron card number or partial name:</div>
<input type="text" size="40" id="patron" class="focus" name="findborrower" />
<input type="submit" value="Search" />
[% IF multi_hold %]
<input type="hidden" name="multi_hold" value="[% multi_hold %]"/>
<input type="hidden" name="biblionumbers" value="[% biblionumbers %]"/>
[% ELSE %]
<input type="hidden" name="biblionumber" value="[% biblionumber %]" />
[% END %]
</fieldset>
[% ELSE %]
[% INCLUDE 'circ-patron-search-results.inc' destination = "holds" %]

11
reserve/request.pl

@ -65,8 +65,6 @@ my ( $template, $borrowernumber, $cookie, $flags ) = get_template_and_user(
}
);
my $multihold = $input->param('multi_hold');
$template->param(multi_hold => $multihold);
my $showallitems = $input->param('showallitems');
my $itemtypes = { map { $_->{itemtype} => $_ } @{ Koha::ItemTypes->search_with_localization->unblessed } };
@ -127,13 +125,16 @@ if ($findborrower) {
}
my @biblionumbers = ();
my $biblionumber = $input->param('biblionumber');
my $biblionumbers = $input->param('biblionumbers');
if ($multihold) {
if ( $biblionumbers ) {
@biblionumbers = split '/', $biblionumbers;
} else {
push @biblionumbers, $input->multi_param('biblionumber');
}
# FIXME multi_hold should not be a variable but depends on the number of elements in @biblionumbers
$template->param(multi_hold => scalar $input->param('multi_hold'));
# If we have the borrowernumber because we've performed an action, then we
# don't want to try to place another reserve.
@ -627,10 +628,6 @@ $template->param( biblionumbers => $biblionumbers );
$template->param( exceeded_maxreserves => $exceeded_maxreserves );
$template->param( exceeded_holds_per_record => $exceeded_holds_per_record );
if ($multihold) {
$template->param( multi_hold => 1 );
}
if ( C4::Context->preference( 'AllowHoldDateInFuture' ) ) {
$template->param( reserve_in_future => 1 );
}

Loading…
Cancel
Save