Bugzilla – Attachment 148665 Details for
Bug 33021
Show an alert when adding an item on hold to an item bundle
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 33021: Show an alert when adding a reserved item to an item bundle
Bug-33021-Show-an-alert-when-adding-a-reserved-ite.patch (text/plain), 5.67 KB, created by
Kyle M Hall (khall)
on 2023-03-24 14:44:13 UTC
(
hide
)
Description:
Bug 33021: Show an alert when adding a reserved item to an item bundle
Filename:
MIME Type:
Creator:
Kyle M Hall (khall)
Created:
2023-03-24 14:44:13 UTC
Size:
5.67 KB
patch
obsolete
>From caa002c55d934d2962c69ef5e49d8023633c321c Mon Sep 17 00:00:00 2001 >From: Julian Maurice <julian.maurice@biblibre.com> >Date: Tue, 21 Feb 2023 11:14:06 +0100 >Subject: [PATCH] Bug 33021: Show an alert when adding a reserved item to an > item bundle > >Test plan: >1. Create an item bundle (see bug 28854 comment 458) >2. Create a biblio with one item and place a hold for this item. >3. Try to add the reserved item to the bundle > You should see a message saying that the item is reserved. Next to > this message should be a button "Ignore holds and add to bundle". >4. Click on the button. There should be a message saying that the item > was added to the bundle. >5. Close the modal window and verify that the item was correctly > added to the bundle > >Signed-off-by: Lucas Gass <lucas@bywatersolutiosn.com> > >Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> >--- > Koha/Exceptions/Item/Bundle.pm | 4 ++++ > Koha/Item.pm | 7 +++++++ > Koha/REST/V1/Items.pm | 18 ++++++++++++++++-- > api/v1/swagger/definitions/bundle_link.yaml | 4 ++++ > .../prog/en/modules/catalogue/detail.tt | 12 ++++++++++++ > 5 files changed, 43 insertions(+), 2 deletions(-) > >diff --git a/Koha/Exceptions/Item/Bundle.pm b/Koha/Exceptions/Item/Bundle.pm >index 8c42fd2cb2a..fb8c46d22f2 100644 >--- a/Koha/Exceptions/Item/Bundle.pm >+++ b/Koha/Exceptions/Item/Bundle.pm >@@ -31,6 +31,10 @@ use Exception::Class ( > isa => 'Koha::Exceptions::Item::Bundle', > description => 'Someone tried to add a checked out item to a bundle', > }, >+ 'Koha::Exceptions::Item::Bundle::ItemHasHolds' => { >+ isa => 'Koha::Exceptions::Item::Bundle', >+ description => 'Someone tried to add a reserved item to a bundle', >+ }, > ); > > =head1 NAME >diff --git a/Koha/Item.pm b/Koha/Item.pm >index 13d26748646..0fd15912f08 100644 >--- a/Koha/Item.pm >+++ b/Koha/Item.pm >@@ -1734,6 +1734,13 @@ sub add_to_bundle { > } > } > >+ my $holds = $bundle_item->current_holds; >+ if ($holds->count) { >+ unless ($options->{ignore_holds}) { >+ Koha::Exceptions::Item::Bundle::ItemHasHolds->throw(); >+ } >+ } >+ > $self->_result->add_to_item_bundles_hosts( > { item => $bundle_item->itemnumber } ); > >diff --git a/Koha/REST/V1/Items.pm b/Koha/REST/V1/Items.pm >index 087deb3fab2..3f20e3a577f 100644 >--- a/Koha/REST/V1/Items.pm >+++ b/Koha/REST/V1/Items.pm >@@ -278,8 +278,13 @@ sub add_to_bundle { > } > > return try { >- my $force_checkin = $c->validation->param('body')->{'force_checkin'}; >- my $link = $item->add_to_bundle($bundle_item, { force_checkin => $force_checkin }); >+ my $body = $c->validation->param('body'); >+ my $options = { >+ force_checkin => $body->{force_checkin}, >+ ignore_holds => $body->{ignore_holds}, >+ }; >+ >+ my $link = $item->add_to_bundle($bundle_item, $options); > return $c->render( > status => 201, > openapi => $bundle_item >@@ -315,6 +320,15 @@ sub add_to_bundle { > } > ); > } >+ elsif ( ref($_) eq 'Koha::Exceptions::Item::Bundle::ItemHasHolds' ) { >+ return $c->render( >+ status => 409, >+ openapi => { >+ error => 'Item is reserved', >+ error_code => 'reserved' >+ } >+ ); >+ } > elsif ( ref($_) eq 'Koha::Exceptions::Item::Bundle::IsBundle' ) { > return $c->render( > status => 400, >diff --git a/api/v1/swagger/definitions/bundle_link.yaml b/api/v1/swagger/definitions/bundle_link.yaml >index 382ad675169..b564d039ee6 100644 >--- a/api/v1/swagger/definitions/bundle_link.yaml >+++ b/api/v1/swagger/definitions/bundle_link.yaml >@@ -15,4 +15,8 @@ properties: > type: > - boolean > - "null" >+ ignore_holds: >+ type: >+ - boolean >+ - "null" > additionalProperties: false >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt >index aeda09d0e76..4be5eefad8b 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt >@@ -1976,6 +1976,18 @@ Note that permanent location is a code, and location may be an authval. > .empty() > .attr('class', 'alert alert-danger') > .append(__x('Failure: Item {barcode} cannot be checked in', { barcode })) >+ } else if (response.error_code === 'reserved') { >+ const button = $('<button type="button">') >+ .addClass('btn btn-xs') >+ .text(__('Ignore holds and add to bundle')) >+ .on('click', function () { >+ addToBundle(url, { external_id: barcode, ignore_holds: true }); >+ }); >+ $('#addResult') >+ .empty() >+ .attr('class', 'alert alert-warning') >+ .append(__x('Warning: Item {barcode} is reserved', { barcode })) >+ .append(' ', button); > } else { > $('#addResult').replaceWith('<div id="addResult" class="alert alert-danger">'+_("Failure: Item '%s' belongs to another bundle").format(barcode)+'</div>'); > } >-- >2.30.2
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 33021
:
147019
|
147160
| 148665 |
148666