From 05d1d1fa48a60165d912987a89318bd7be4f1827 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. --- 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 669074aa506..f7f9c34a9a0 100644 --- a/installer/data/mysql/mandatory/sysprefs.sql +++ b/installer/data/mysql/mandatory/sysprefs.sql @@ -211,6 +211,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 bae185a1f5c..e31eee317cc 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 @@ -867,6 +867,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 86530949154..03484095b7f 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' %] @@ -786,9 +790,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 76e8f50e1f5..580ab2a8c8d 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' %] @@ -395,7 +399,7 @@ [% END %] - + [% ELSE %] [% SET unholdable_items = 1 %] [% IF ( itemLoo.checkout ) %] -- 2.30.2