From d5d205034a73362e3ad3d331cba604db3f023462 Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Tue, 18 May 2021 09:41:40 +0200 Subject: [PATCH] Bug 28353: Display a list of items that cannot be deleted We used to display a list of items that cannot be deleted (checked out or on hold) on the Batch item deletion tool. With bug 8132 we improve the error handling, but the info is spread in the table. This patch adds, at the top of the page, the list of items (barcode) that cannot be removed. Signed-off-by: David Nind --- .../prog/en/modules/tools/batchMod-del.tt | 35 +++++++++++++--------- tools/batchMod.pl | 10 ++++++- 2 files changed, 30 insertions(+), 15 deletions(-) diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/batchMod-del.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/batchMod-del.tt index d13d849b38..5269cf003e 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/batchMod-del.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/batchMod-del.tt @@ -51,11 +51,6 @@ [% END %] - [% UNLESS ( too_many_items_display ) %] - [% IF ( item_loop ) %] -

The following barcodes were found:

- [% END %] - [% END %] [% END %] [% IF ( notfounditemnumbers.size ) %]
@@ -71,14 +66,27 @@ [% END %] - [% UNLESS ( too_many_items_display ) %] - [% IF ( item_loop ) %] -

The following itemnumbers were found:

- [% END %] - [% END %] [% END %] + [% IF cannot_be_deleted.size %] +
+

Warning, the following items cannot be deleted:

+
+ + + + + + [% FOREACH barcode IN cannot_be_deleted %] + + [% END %] + +
Cannot be deleted
[% barcode | html %]
+ [% END %] + [% IF ( notfoundbarcodes.size || notfounditemnumbers.size || cannot_be_deleted.size ) && !too_many_items_display && item_loop %] +

The following barcodes were found:

+ [% END %]
@@ -120,17 +128,16 @@ [% IF item_loo.nomod %] Cannot delete [% ELSE %] - [% SET can_be_deleted = item_loo.item.safe_to_delete %] - [% IF can_be_deleted == 1 %] + [% IF item_loo.safe_to_delete == 1 %] [% ELSE %] - [% SWITCH can_be_deleted %] + [% SWITCH item_loo.safe_to_delete%] [% CASE "book_on_loan" %][% SET cannot_delete_reason = t("Item is checked out") %] [% CASE "not_same_branch" %][% SET cannot_delete_reason = t("Item does not belong to your library") %] [% CASE "book_reserved" %][% SET cannot_delete_reason = t("Item has a waiting hold") %] [% CASE "linked_analytics" %][% SET cannot_delete_reason = t("Item has linked analytics") %] [% CASE "last_item_for_hold" %][% SET cannot_delete_reason = t("Last item for bibliographic record with biblio-level hold on it") %] - [% CASE %][% SET cannot_delete_reason = t("Unknown reason") _ '(' _ can_be_deleted _ ')' %] + [% CASE %][% SET cannot_delete_reason = t("Unknown reason") _ '(' _ item_loo.safe_to_delete _ ')' %] [% END %] diff --git a/tools/batchMod.pl b/tools/batchMod.pl index fa4a86ec96..4c8edebe87 100755 --- a/tools/batchMod.pl +++ b/tools/batchMod.pl @@ -711,13 +711,21 @@ sub BuildItemsData{ $row_data{holds} = $row->{holds}; $row_data{item_holds} = $row->{item_holds}; $row_data{item} = $row->{item}; + $row_data{safe_to_delete} = $row->{item}->safe_to_delete; my $is_on_loan = C4::Circulation::IsItemIssued( $row->{itemnumber} ); $row_data{onloan} = $is_on_loan ? 1 : 0; push(@item_value_loop,\%row_data); } my @header_loop=map { { header_value=> $witness{$_}} } @witnesscodessorted; - return { item_loop => \@item_value_loop, item_header_loop => \@header_loop }; + my @cannot_be_deleted = map { + $_->{safe_to_delete} == 1 ? () : $_->{item}->barcode + } @item_value_loop; + return { + item_loop => \@item_value_loop, + cannot_be_deleted => \@cannot_be_deleted, + item_header_loop => \@header_loop + }; } #BE WARN : it is not the general case -- 2.11.0