Bugzilla – Attachment 55332 Details for
Bug 14695
Add ability to place multiple item holds on a given record per patron
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 14695 [QA Followup]
Bug-14695-QA-Followup.patch (text/plain), 6.83 KB, created by
Kyle M Hall (khall)
on 2016-09-08 11:01:43 UTC
(
hide
)
Description:
Bug 14695 [QA Followup]
Filename:
MIME Type:
Creator:
Kyle M Hall (khall)
Created:
2016-09-08 11:01:43 UTC
Size:
6.83 KB
patch
obsolete
>From 2c70e645cd2a638425386f3f16fef144bbad5025 Mon Sep 17 00:00:00 2001 >From: Kyle M Hall <kyle@bywatersolutions.com> >Date: Thu, 8 Sep 2016 09:45:27 +0000 >Subject: [PATCH] Bug 14695 [QA Followup] > >* Add tests for CanItemBeReserved returns 'itemAlreadyOnHold' to t/db_dependent/Holds.t >* Don't let GetReserveId explode >* Use search instead of map >* Remove instances of resbarcode >* Fix badly formed li closing tag >--- > C4/Reserves.pm | 2 ++ > Koha/Holds.pm | 12 +++--------- > koha-tmpl/intranet-tmpl/prog/en/modules/circ/returns.tt | 2 -- > .../intranet-tmpl/prog/en/modules/reserve/request.tt | 6 +++--- > t/db_dependent/Holds.t | 15 ++++++++++++++- > 5 files changed, 22 insertions(+), 15 deletions(-) > >diff --git a/C4/Reserves.pm b/C4/Reserves.pm >index 876580e..ae1c7b7 100644 >--- a/C4/Reserves.pm >+++ b/C4/Reserves.pm >@@ -2332,6 +2332,8 @@ sub GetReserveId { > > my $hold = Koha::Holds->search( $params )->next(); > >+ return unless $hold; >+ > return $hold->id(); > } > >diff --git a/Koha/Holds.pm b/Koha/Holds.pm >index 235f1d4..bde63c9 100644 >--- a/Koha/Holds.pm >+++ b/Koha/Holds.pm >@@ -71,15 +71,9 @@ that would prevent one or the other. > sub forced_hold_level { > my ($self) = @_; > >- my $force_hold_level; >- >- if ( $self->count() ) { >- my $has_item_level_holds; >- map { $has_item_level_holds ||= $_->itemnumber } $self->as_list(); >- $force_hold_level = $has_item_level_holds ? 'item' : 'record'; >- } >- >- return $force_hold_level; >+ return $self->search( { itemnumber => { '!=' => undef } } )->count() >+ ? 'item' >+ : 'record'; > } > > =head3 type >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/returns.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/returns.tt >index bca3da0..a695f38 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/returns.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/returns.tt >@@ -309,7 +309,6 @@ $(document).ready(function () { > <input type="hidden" name="itemnumber" value="[% itemnumber %]" /> > <input type="hidden" name="borrowernumber" value="[% borrowernumber %]" /> > <input type="hidden" name="biblionumber" value="[% itembiblionumber %]" /> >- <input type="hidden" name="resbarcode" value="[% barcode | html %]" /> > <input type="hidden" name="reserve_id" value="[% reserve_id %]" /> > <input type="hidden" name="diffBranch" value="[% destbranch %]" /> > <input type="hidden" name="exemptfine" value="[% exemptfine %]" /> >@@ -526,7 +525,6 @@ $(document).ready(function () { > <input type="hidden" name="itemnumber" value="[% itemnumber %]" /> > <input type="hidden" name="borrowernumber" value="[% borrowernumber %]" /> > <input type="hidden" name="biblionumber" value="[% itembiblionumber %]" /> >- <input type="hidden" name="resbarcode" value="[% barcode %]" /> > <input type="hidden" name="reserve_id" value="[% reserve_id %]" /> > <input type="hidden" name="diffBranch" value="[% destbranch %]" /> > <input type="hidden" name="exemptfine" value="[% exemptfine %]" /> >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt >index 38f9db7..5f32567 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt >@@ -276,13 +276,13 @@ function checkMultiHold() { > [% ELSIF ( exceeded_holds_per_record ) %] > <li><strong>Too many holds for this record: </strong> <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% borrowernumber %]">[% borrowerfirstname %] [% borrowersurname %] </a> can only place a maximum of [% max_holds_for_record %] hold(s) on this record.</li> > [% ELSIF ( alreadypossession ) %] >- <li> <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% borrowernumber %]">[% borrowerfirstname %] [% borrowersurname %]</a> <strong>is already in possession</strong> of one item</lie >+ <li> <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% borrowernumber %]">[% borrowerfirstname %] [% borrowersurname %]</a> <strong>is already in possession</strong> of one item.</li> > [% ELSIF ( alreadyreserved ) %] >- <li><a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% borrowernumber %]">[% borrowerfirstname %] [% borrowersurname %]</a> <strong>already has a hold</strong> on this item </li> >+ <li><a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% borrowernumber %]">[% borrowerfirstname %] [% borrowersurname %]</a> <strong>already has a hold</strong> on this item.</li> > [% ELSIF ( ageRestricted ) %] > <li><strong>Age restricted</strong></li> > [% ELSIF ( none_available ) %] >- <li> <strong>No items are available</strong> to be placed on hold</li> >+ <li> <strong>No items are available</strong> to be placed on hold.</li> > [% ELSIF ( maxreserves ) %] > <li><strong>Too many holds: </strong> <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% borrowernumber %]">[% borrowerfirstname %] [% borrowersurname %] </a> has too many holds.</li> > [% END %] >diff --git a/t/db_dependent/Holds.t b/t/db_dependent/Holds.t >index da67f51..ff87922 100755 >--- a/t/db_dependent/Holds.t >+++ b/t/db_dependent/Holds.t >@@ -8,7 +8,7 @@ use t::lib::TestBuilder; > use C4::Context; > use C4::Branch; > >-use Test::More tests => 60; >+use Test::More tests => 61; > use MARC::Record; > use C4::Biblio; > use C4::Items; >@@ -339,6 +339,19 @@ ModItem({ damaged => 1 }, $item_bibnum, $itemnumber); > t::lib::Mocks::mock_preference( 'AllowHoldsOnDamagedItems', 1 ); > is( CanItemBeReserved( $borrowernumbers[0], $itemnumber), 'OK', "Patron can reserve damaged item with AllowHoldsOnDamagedItems enabled" ); > ok( defined( ( CheckReserves($itemnumber) )[1] ), "Hold can be trapped for damaged item with AllowHoldsOnDamagedItems enabled" ); >+ >+$hold = Koha::Hold->new( >+ { >+ borrowernumber => $borrowernumbers[0], >+ itemnumber => $itemnumber, >+ biblionumber => $item_bibnum, >+ } >+)->store(); >+is( CanItemBeReserved( $borrowernumbers[0], $itemnumber ), >+ 'itemAlreadyOnHold', >+ "Patron cannot place a second item level hold for a given item" ); >+$hold->delete(); >+ > t::lib::Mocks::mock_preference( 'AllowHoldsOnDamagedItems', 0 ); > ok( CanItemBeReserved( $borrowernumbers[0], $itemnumber) eq 'damaged', "Patron cannot reserve damaged item with AllowHoldsOnDamagedItems disabled" ); > ok( !defined( ( CheckReserves($itemnumber) )[1] ), "Hold cannot be trapped for damaged item with AllowHoldsOnDamagedItems disabled" ); >-- >2.1.4
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 14695
:
44143
|
44144
|
44145
|
45058
|
45059
|
45060
|
45061
|
45063
|
45064
|
46548
|
46549
|
46550
|
46551
|
46552
|
46553
|
46554
|
46555
|
46556
|
46557
|
46914
|
46915
|
46916
|
46917
|
46918
|
46919
|
46920
|
47183
|
47184
|
47185
|
47186
|
47187
|
47188
|
47189
|
47190
|
47191
|
47196
|
47227
|
47228
|
47229
|
47230
|
47231
|
47232
|
47233
|
47234
|
47355
|
47372
|
47606
|
47607
|
47608
|
47609
|
47610
|
47611
|
47612
|
47613
|
47614
|
47615
|
48792
|
48795
|
48796
|
48797
|
48798
|
48799
|
48800
|
48801
|
48802
|
48803
|
50056
|
50057
|
50058
|
50059
|
50060
|
50061
|
50062
|
50063
|
50064
|
50065
|
50327
|
50391
|
51006
|
51007
|
51008
|
51009
|
51010
|
51011
|
51012
|
51013
|
51014
|
51015
|
51016
|
51017
|
51027
|
51030
|
51031
|
51032
|
51033
|
51034
|
51035
|
51036
|
51037
|
51038
|
51039
|
51040
|
51041
|
51042
|
51277
|
51278
|
51279
|
51280
|
51281
|
51282
|
51283
|
51284
|
51285
|
51286
|
51287
|
51288
|
51289
|
52457
|
54546
|
54547
|
54548
|
54549
|
54550
|
54551
|
54552
|
54553
|
54554
|
54555
|
54556
|
54557
|
54558
|
54559
|
55114
|
55115
|
55116
|
55117
|
55118
|
55119
|
55120
|
55121
|
55122
|
55123
|
55124
|
55125
|
55126
|
55127
|
55128
|
55148
|
55149
|
55150
|
55151
|
55152
|
55153
|
55154
|
55155
|
55156
|
55157
|
55158
|
55159
|
55160
|
55161
|
55162
|
55163
|
55299
| 55332 |
55730
|
55731