LP1965446 Option to Disable Title-Level Holds on Bib Records with Parts collab/phasefx/lp1965446-eparts
authorJason Etheridge <jason@EquinoxOLI.org>
Thu, 12 Jan 2023 06:16:29 +0000 (01:16 -0500)
committerJason Etheridge <jason@EquinoxOLI.org>
Thu, 12 Jan 2023 16:48:10 +0000 (11:48 -0500)
commitada4bf78e0e6898ab7d39b27eb403cd0870fa1db
treeb9f9f192adf37306554d3ba539a1c200d435fa5b
parentc3de377e16503d6e41b323bc9a0b9b9a6aa1ccab
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.allow_require_monographic_part_when_present
      Holds: Enable the Require Monographic Part When Present library setting.
    * circ.holds.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 and 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.

We also test for this at the API level, which will catch situations where the UI may have stale information
on the state of the flag and setting, or when the API is being invoked by third parties under this condition.
We will throw a TITLE_HOLD_WHEN_MONOGRAPHIC_PART_REQUIRED event if a title hold is effectively disallowed
based on the presence of monographic parts and lack of part selection.

Signed-off-by: Jason Etheridge <jason@EquinoxOLI.org>
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/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