LP1965446 Option to Disable Title-Level Holds on Bib Records with Parts
authorJason Etheridge <jason@EquinoxOLI.org>
Thu, 12 Jan 2023 06:16:29 +0000 (01:16 -0500)
committerMichele Morgan <mmorgan@noblenet.org>
Wed, 3 May 2023 18:38:57 +0000 (14:38 -0400)
commit251ad10db75f72336a282fef2dc955aa03b48ef9
treeb1cfe8068f794b70829b585709899a877b1e6bfe
parent016236c6ceeeedbe2c03295f802725ea93370327
LP1965446 Option to Disable Title-Level Holds on Bib Records with Parts

This feature adds one global flag and one library setting, respectively:

    * circ.holds.api_require_monographic_part_when_present
      Holds: Require Monographic Part When Present for hold check.
    * circ.holds.ui_require_monographic_part_when_present
      Require Monographic Part when Present

Normally the selection of a monographic part during hold placement is optional if there is at least one copy
on the bib without a monographic part.  A true value for this setting for any involved owning library for the
bib or for the global flag will require part selection even under this condition.  This essentially removes
the All/Any Parts option from the part selection drop-down, for both versions of the public catalog (TPAC and
BOOPAC), and for the Angular staff catalog interface.

At the API level, we consider just the global flag and will throw a TITLE_HOLD_WHEN_MONOGRAPHIC_PART_REQUIRED
event for a title hold request when there are items with monographic parts on the bib.  It is possible for
the library settings and the global flag to differ, but the global flag will catch every instance of hold
placement including those by third party callers, SIP, etc.

Signed-off-by: Jason Etheridge <jason@EquinoxOLI.org>
Signed-off-by: Ruth Frasur <rfrasur@library.in.gov>
Signed-off-by: Jennifer Weston <jennifer.weston@equinoxoli.org>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
12 files changed:
Open-ILS/src/eg2/src/app/staff/catalog/hold/hold.component.html
Open-ILS/src/eg2/src/app/staff/catalog/hold/hold.component.ts
Open-ILS/src/eg2/src/app/staff/share/holds/holds.service.ts
Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Holds.pm
Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader.pm
Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Account.pm
Open-ILS/src/sql/Pg/950.data.seed-values.sql
Open-ILS/src/sql/Pg/upgrade/XXXX.schema.eparts.sql [new file with mode: 0644]
Open-ILS/src/templates-bootstrap/opac/parts/hold_error_messages.tt2
Open-ILS/src/templates/opac/parts/hold_error_messages.tt2
Open-ILS/web/js/dojo/openils/circ/nls/selfcheck.js
docs/RELEASE_NOTES_NEXT/miscellaneous.adoc