From 1776a52ee6ca4e38af703afd85caec5fd52f30d8 Mon Sep 17 00:00:00 2001 From: David Cook Date: Tue, 13 Feb 2024 00:44:51 +0000 Subject: [PATCH] Bug 15565: Add 'DisplayMultiItemHolds' system preference to toggle display of multi item holds These patches allow the display of checkboxes instead of radio buttons for placing specific item holds in the OPAC and staff interface. This display is controlled by the system preference 'DisplayMultiItemHolds'. When disabled, the hold display is the same as in the past. When enabled, the user can select multiple items to place holds on at the same time. If there is an error placing one or more holds, an error will display on the following screen. Test plan: 0. Apply the patches and koha-plack --reload kohadev 1. Enable 'DisplayMultiItemHolds' syspref 2. In staff interface, go to a record with multiple holdable items 3. Check the boxes next to 2+ items and click the button to place the holds 4. Note that the holds are all placed (unless there is a failure) 5. Cancel the holds, and try again (but this time make Holds per record (count) only 1 in the circ rules) 6. Note that one of the holds is placed, but the others are not and an error message is displayed saying that one or more holds could not be placed because the holds per record was exceeded 7. Perform the same above procedure on the OPAC 8. If DisplayMultiPlaceHold is enabled, you can test placing multiple specific item holds across multiple bibs in the OPAC via the search results 9. If EnableItemGroups and EnableItemGroupHolds is enabled, you can test that you can either place item group holds or specific item holds. Toggling the checkboxes in the staff interface will uncheck the item group hold radio button. Signed-off-by: Lisette Scheer Signed-off-by: Nick Clemens Signed-off-by: Katrin Fischer --- installer/data/mysql/mandatory/sysprefs.sql | 1 + .../prog/en/modules/admin/preferences/circulation.pref | 6 ++++++ .../intranet-tmpl/prog/en/modules/reserve/request.tt | 8 ++++++-- koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-reserve.tt | 6 +++++- 4 files changed, 18 insertions(+), 3 deletions(-) diff --git a/installer/data/mysql/mandatory/sysprefs.sql b/installer/data/mysql/mandatory/sysprefs.sql index 4c372bad78..b55473fafa 100644 --- a/installer/data/mysql/mandatory/sysprefs.sql +++ b/installer/data/mysql/mandatory/sysprefs.sql @@ -213,6 +213,7 @@ INSERT INTO systempreferences ( `variable`, `value`, `options`, `explanation`, ` ('displayFacetCount','0',NULL,NULL,'YesNo'), ('DisplayIconsXSLT','1','','If ON, displays the format, audience, and material type icons in XSLT MARC21 results and detail pages.','YesNo'), ('DisplayLibraryFacets', 'holding', 'home|holding|both', 'Defines which library facets to display.', 'Choice'), +('DisplayMultiItemHolds','0','','Display the ability to place holds on different items at the same time in staff interface and OPAC','YesNo'), ('DisplayMultiPlaceHold','1','','Display the ability to place multiple holds or not','YesNo'), ('DisplayOPACiconsXSLT','1','','If ON, displays the format, audience, and material type icons in XSLT MARC21 results and detail pages in the OPAC.','YesNo'), ('DumpSearchQueryTemplate',0,'','Add the search query being passed to the search engine into the template for debugging','YesNo'), diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref index 61c300be8a..9370a9b568 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref @@ -885,6 +885,12 @@ Circulation: 1: Enable 0: "Don't enable" - "the ability to place holds on multiple bibliographic records from the search results" + - + - pref: DisplayMultiItemHolds + choices: + 1: Enable + 0: "Don't enable" + - "the ability to place holds on different items at the same time in staff interface and OPAC." - - pref: TransferWhenCancelAllWaitingHolds choices: 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 f4fded309f..0b04f509ea 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt @@ -11,6 +11,10 @@ [% USE AuthorisedValues %] [% USE Price %] [% USE TablesSettings %] +[% SET reserve_input_type = 'radio' %] +[% IF ( Koha.Preference('DisplayMultiItemHolds') ) %] + [% SET reserve_input_type = 'checkbox' %] +[% END %] [% PROCESS 'i18n.inc' %] [% SET footerjs = 1 %] [% INCLUDE 'doc-head-open.inc' %] @@ -804,9 +808,9 @@ Hold must be item group level [% ELSIF ( itemloo.available ) %] - + [% ELSIF ( itemloo.override ) %] - + [% ELSE %] diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-reserve.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-reserve.tt index ea8639dfef..cd2afcfd99 100644 --- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-reserve.tt +++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-reserve.tt @@ -5,6 +5,10 @@ [% USE Price %] [% USE ItemTypes %] [% USE AuthorisedValues %] +[% SET reserve_input_type = 'radio' %] +[% IF ( Koha.Preference('DisplayMultiItemHolds') ) %] + [% SET reserve_input_type = 'checkbox' %] +[% END %] [% INCLUDE 'doc-head-open.inc' %] Placing a hold › [% IF ( LibraryNameTitle ) %][% LibraryNameTitle | html %][% ELSE %]Koha online[% END %] catalog [% INCLUDE 'doc-head-close.inc' %] @@ -397,7 +401,7 @@ [% END %] - + [% ELSE %] [% SET unholdable_items = 1 %] [% IF ( itemLoo.checkout ) %] -- 2.39.5