From 4fd947491a6dc12af717bb62271dbe01faa3a2bf 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 669074aa50..f7f9c34a9a 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 080e8fa494..837e6e47ca 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 883caf483d..b81aa91b6a 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' %] @@ -795,9 +799,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 8ccbc01f5d..3f83ae379c 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' %] @@ -394,7 +398,7 @@ [% END %] - + [% ELSE %] [% SET unholdable_items = 1 %] [% IF ( itemLoo.checkout ) %] -- 2.30.2