LP1965446 Option to Disable Title-Level Holds on Bib Records with Parts collab/phasefx/lp1965446-eparts-take2
authorJason Etheridge <jason@EquinoxOLI.org>
Thu, 12 Jan 2023 06:16:29 +0000 (01:16 -0500)
committerJason Etheridge <jason@EquinoxOLI.org>
Tue, 24 Jan 2023 01:13:47 +0000 (20:13 -0500)
commitd6f5e24da63185fda18490043aee59ef4fb1b555
tree024b842a65d1a16c4e682a44989dc0244d90a769
parent5b7d750cd7f1cb725819499bebd2b7c919de993f
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>
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