Evergreen.git
8 months agoLP#1846354: add another missed function update
Galen Charlton [Wed, 6 Oct 2021 16:11:01 +0000 (12:11 -0400)]
LP#1846354: add another missed function update

Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
8 months agoLP#1846354: add missing function updates to schema update
Galen Charlton [Wed, 6 Oct 2021 15:48:59 +0000 (11:48 -0400)]
LP#1846354: add missing function updates to schema update

Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
8 months agoadd typo fix to release notes
Galen Charlton [Wed, 6 Oct 2021 15:11:23 +0000 (11:11 -0400)]
add typo fix to release notes

Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
8 months agoDocs: add acknowledgment to 3.8 release notes
Jane Sandberg [Tue, 5 Oct 2021 18:16:57 +0000 (11:16 -0700)]
Docs: add acknowledgment to 3.8 release notes

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
8 months ago3.8 release notes copy-editing and acknowledgment updates
Galen Charlton [Mon, 4 Oct 2021 21:04:19 +0000 (17:04 -0400)]
3.8 release notes copy-editing and acknowledgment updates

Including typo fixes by Lisa Carlucci.

Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
8 months agoLP#1826759: end DB update scripts with "COMMIT", not "END"
Galen Charlton [Mon, 4 Oct 2021 16:28:14 +0000 (12:28 -0400)]
LP#1826759: end DB update scripts with "COMMIT", not "END"

The former is what tools like make_release are looking
for.

Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
8 months agowipe the release note slate clean
Galen Charlton [Mon, 4 Oct 2021 16:06:10 +0000 (12:06 -0400)]
wipe the release note slate clean

Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
8 months agocheck in first draft of release notes
Galen Charlton [Mon, 4 Oct 2021 16:04:56 +0000 (12:04 -0400)]
check in first draft of release notes

Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
8 months agoLP#1922567: stamp schema update
Galen Charlton [Mon, 4 Oct 2021 14:52:35 +0000 (10:52 -0400)]
LP#1922567: stamp schema update

Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
8 months agoLp 1922567: Limit authority.full_rec.value indexes
Jason Stephenson [Tue, 6 Apr 2021 11:43:52 +0000 (07:43 -0400)]
Lp 1922567: Limit authority.full_rec.value indexes

Limit the authority_full_rec_value_index and
authority_full_rec_value_tpo_index indexes to the first 1024
characters of a field or subfield in order to avoid database errors
when inserting or updating authorities with long fields.

Include release note and regression test.

Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: Jennifer Weston <jennifer.weston@equinoxOLI.org>
Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
8 months agoLp 1826759: Stamping Upgrade Script
Jason Stephenson [Mon, 27 Sep 2021 17:39:41 +0000 (13:39 -0400)]
Lp 1826759: Stamping Upgrade Script

Signed-off-by: Jason Stephenson <jason@sigio.com>
8 months agoLp 1826759: Fix Database Upgrade Script
Jason Stephenson [Mon, 27 Sep 2021 17:32:41 +0000 (13:32 -0400)]
Lp 1826759: Fix Database Upgrade Script

Remove 2 extraneous updates, add a blank line between the remaining
updates, and add a placeholder the upgrade_deps_block_check().

Signed-off-by: Jason Stephenson <jason@sigio.com>
8 months agoLp 1826759: Spelling correction: oustanding to outstanding
Shula Link [Thu, 18 Mar 2021 14:27:02 +0000 (10:27 -0400)]
Lp 1826759: Spelling correction: oustanding to outstanding

Correct the spelling of "oustanding" to "outstanding" in the
descriptions of 3 config.org_unit_setting_type entries:

  * ui.circ.items_out.longoverdue
  * ui.circ.items_out.lost
  * ui.circ.items_out.claimsreturned

Signed-off-by: Shula Link <slink@gchrl.org>
Signed-off-by: Jason Stephenson <jason@sigio.com>
8 months agoLp 1942920: Show Legacy/Not Dated for Legacy Circs
Jason Stephenson [Tue, 7 Sep 2021 18:37:54 +0000 (14:37 -0400)]
Lp 1942920: Show Legacy/Not Dated for Legacy Circs

When legacy circ counts are displayed in the AngularJS client, the
year shows up as -1.  This patch attempts to replace -1 with a
translatable string: "Legacy/Not Dated" as was used in the XUL staff
client.

Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
8 months agoLP#1928258: update pgTAP regression test
Galen Charlton [Mon, 27 Sep 2021 13:43:18 +0000 (09:43 -0400)]
LP#1928258: update pgTAP regression test

Now that update_bib_editor is split out into a separate
merge profile field, need to account for that in the regression
test for 1447746.

Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
9 months agoLP#1864516: (follow-up) install current version of function
Galen Charlton [Fri, 24 Sep 2021 19:40:56 +0000 (15:40 -0400)]
LP#1864516: (follow-up) install current version of function

Fixes a regression that caused bib record saves to fail

Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
9 months agoLP#1919465: fix issue with DB rev stamping
Galen Charlton [Fri, 24 Sep 2021 19:38:19 +0000 (15:38 -0400)]
LP#1919465: fix issue with DB rev stamping

Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
9 months agoLP1919465: stamp upgrade script
Chris Sharp [Fri, 24 Sep 2021 19:24:23 +0000 (15:24 -0400)]
LP1919465: stamp upgrade script

Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
9 months agoLP1919465 Pull list only shows holds with current_copy
Bill Erickson [Wed, 22 Sep 2021 15:04:18 +0000 (11:04 -0400)]
LP1919465 Pull list only shows holds with current_copy

This avoids a scenario where copy-level holds would appear in the pull
list even if they are not pull-able, because they have "a copy" (i.e.
the requested copy), but no current copy (i.e. targeted copy).

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jennifer Weston <jennifer.weston@equinoxOLI.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
9 months agoLP1919465 Avoid dupe Current Item's in pull list
Bill Erickson [Wed, 22 Sep 2021 14:24:30 +0000 (10:24 -0400)]
LP1919465 Avoid dupe Current Item's in pull list

* Show a value for Current Item when a hold is targeted
* Show a value for a new column on Requested Item for copy-level holds.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jennifer Weston <jennifer.weston@equinoxOLI.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
9 months agoLP1919465 Pull List Mark Discard/Weed Action
Bill Erickson [Tue, 14 Sep 2021 15:04:10 +0000 (11:04 -0400)]
LP1919465 Pull List Mark Discard/Weed Action

Includes general purpose discard/weed dialog.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jennifer Weston <jennifer.weston@equinoxOLI.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
9 months agoLP1919465 Relabel Item Location -> Shelving Location
Bill Erickson [Tue, 14 Sep 2021 14:45:22 +0000 (10:45 -0400)]
LP1919465 Relabel Item Location -> Shelving Location

Rename various "Item Location ..." references to "Shelving Location ..."
in the Angular holds grids.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jennifer Weston <jennifer.weston@equinoxOLI.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
9 months agoLP1919465 Pull list detail show record summary
Bill Erickson [Tue, 14 Sep 2021 14:43:47 +0000 (10:43 -0400)]
LP1919465 Pull list detail show record summary

Display the bib record summary when displaying the hold detail view from
the holds pull list.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jennifer Weston <jennifer.weston@equinoxOLI.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
9 months agoLP1919465 Pull list prefix/suffix sorting; columns
Bill Erickson [Tue, 14 Sep 2021 14:27:30 +0000 (10:27 -0400)]
LP1919465 Pull list prefix/suffix sorting; columns

* Include call number prefix and suffix in hold pull list sorting.
* Apply sane default grid columns.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jennifer Weston <jennifer.weston@equinoxOLI.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
9 months agoLP1919465 Fix default holds pull list sorting
Bill Erickson [Fri, 13 Aug 2021 16:02:01 +0000 (12:02 -0400)]
LP1919465 Fix default holds pull list sorting

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jennifer Weston <jennifer.weston@equinoxOLI.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
9 months agoLP1919465 Holds pull list Angular / Wide Holds API Port
Bill Erickson [Fri, 12 Mar 2021 22:50:40 +0000 (17:50 -0500)]
LP1919465 Holds pull list Angular / Wide Holds API Port

Ports the holds pull list to Angular and takes advantage of the new Wide
Holds API.  Includes seed data for grid preferences and a new holds pull
list (server) print template.

The UI displays the total holds count and includes a org unit selector.
It pre-fetches all holds, partly to display the full count, but also
based on the assumption that a pull list will typically be used all or
none.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jennifer Weston <jennifer.weston@equinoxOLI.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
9 months agoLP#1944765: add headers to bullseye install script
Chris Sharp [Fri, 24 Sep 2021 19:14:02 +0000 (15:14 -0400)]
LP#1944765: add headers to bullseye install script

Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
9 months agoLP#1944765: enable the Apache module mod_headers
Galen Charlton [Thu, 23 Sep 2021 20:11:42 +0000 (16:11 -0400)]
LP#1944765: enable the Apache module mod_headers

This patch enables mod_headers for Debian Stretch and Buster
and Ubuntu Bionic and Focal during installation. Without
mod_headers, the Angular staff client application can have
its index page cached for 24 hours on a stock system, meaning
that browsers will not consistently fetch the updated app
after an upgrade.

This patch does not change the Fedora Makefile as mod_headers
is enabled by default on RHEL-like distributions.

UPGRADE NOTES
-------------
Existing Evergreen systems on Debian and Ubuntu should
do the following to ensure that mod_headers is active:

sudo a2enmod headers
sudo systemctl restart apache2

To test
-------
[1] Perform a fresh installation of Evergreen on Stretch, Buster,
    Bionic, or Focal.
[2] Verify that mod_headers is enabled.
[3] (Optional) Fetch the Angular staff client index page, e.g.,
    /eg2/staff, and verify that the response headers call for
    not caching it.

Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
Signed-off-by: Jason Boyer <JBoyer@equinoxOLI.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
9 months agoLP1834258 Replace Javascript with Placeholder Attribute
Shula Link [Tue, 13 Jul 2021 14:16:39 +0000 (10:16 -0400)]
LP1834258 Replace Javascript with Placeholder Attribute

onfocus/onblur javascript replaced with placeholder="[% seed %]" in
Open-ILS/src/templates/kpac/getit.tt2 and
Open-ILS/src/templates/kpac/parts/searchbox.tt2

Signed-off-by: Shula Link <slink@gchrl.org>
Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
9 months agoLP1881012 Typo in staff/circ/hold/app.js
Terran McCanna [Mon, 21 Jun 2021 16:36:27 +0000 (12:36 -0400)]
LP1881012 Typo in staff/circ/hold/app.js

Fixes 'legnth' typo.

Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org>
Signed-off-by: Josh Stompro <stompro@stompro.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
9 months agoLP1848575 Angular boolean filters should use Yes/No
Tiffany Little [Wed, 18 Aug 2021 12:42:25 +0000 (08:42 -0400)]
LP1848575 Angular boolean filters should use Yes/No

Changes the filter options for boolean values to Yes/No instead of True/False.

Signed-off-by: Tiffany Little <tlittle@georgialibraries.org>
Signed-off-by: Gina Monti <gmonti@biblio.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
9 months agoLP#1901597: Stamp upgrade scripts
Chris Sharp [Fri, 24 Sep 2021 18:50:52 +0000 (14:50 -0400)]
LP#1901597: Stamp upgrade scripts

Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
9 months agoLP#1901597: Allow multi-subfield match in vandelay.strip_field
Mike Rylander [Mon, 26 Oct 2020 19:26:09 +0000 (15:26 -0400)]
LP#1901597: Allow multi-subfield match in vandelay.strip_field

Now, when supplying a subfield match restriction for use with
vandelay.strip_field, you can separate multiple restrictions with '&&'
(no quotes).  For instance, to remove a Located URI 856 for for a
combination of a specific owner and a specific domain, you might say:

 856[u~oldservice.com && 9~MYLIB]

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
9 months agoLP1940146: Debian Bullseye Installation Support
Jason Stephenson [Fri, 20 Aug 2021 00:20:58 +0000 (20:20 -0400)]
LP1940146: Debian Bullseye Installation Support

Update documentation and prerequisite installation Makefiles to add
support for Debian Bullseye (11.0).

Use PKG_CHECK_MODULES instead of AC_CHECK_PROG to test for the
presence of yaz.  This is done because of the following Changelog
entry:

    yaz-config and its man page are no longer packaged.  Please switch
    to pkg-config (yaz, yaz-icu or yaz-server).  This also makes the
    package reproducible.  Closes: #955501

This change works on all currently supported Evergreen distros.  You
can test it by running autoreconf -f and then running the normal
configure command.

Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
9 months agoLp1940145: Remove Installation Support for Debian Jessie
Jason Stephenson [Thu, 19 Aug 2021 19:16:52 +0000 (15:16 -0400)]
Lp1940145: Remove Installation Support for Debian Jessie

Remove references to Debian Jessie (8.0) in the installation and
upgrade documentation as well as from the prerequisite installation
Makefiles.  Debian 8 has been out of long term support for over a year
at this point.

Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
9 months agoLP1850156: Remove Browsers From *-developer Targets
Jason Boyer [Mon, 16 Aug 2021 17:59:28 +0000 (13:59 -0400)]
LP1850156: Remove Browsers From *-developer Targets

Because the developer targets are currently necessary for a from-git
installation, both Firefox and Chrome are removed and the docs updated
to note that you should install one or both if you want to run the tests.

Signed-off-by: Jason Boyer <JBoyer@equinoxOLI.org>
Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
9 months agoLP1938729 Cache "cascade" setting values
Bill Erickson [Mon, 2 Aug 2021 20:30:21 +0000 (16:30 -0400)]
LP1938729 Cache "cascade" setting values

Cache values retrieved from 'open-ils.actor.settings.retrieve' lookups
in IndexedDB, similar to to org unit setting lookups, to reduce the need
for so many API calls for settings retrieval.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jason Boyer <JBoyer@equinoxOLI.org>
9 months agoLP1909144 BooPAC Login Form Tabbing
Terran McCanna [Mon, 20 Sep 2021 22:12:47 +0000 (18:12 -0400)]
LP1909144 BooPAC Login Form Tabbing

This change places the cursor in the user name field and adjusts the order
of the elements so that tabbing out of the user name field comes to the
password field next.

Note that this modifies both the login modal and the embedded login form.

Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org>
Signed-off-by: Elaine Hardy <ehardy@georgialibraries.org>
Signed-off-by: Jason Boyer <JBoyer@equinoxOLI.org>
9 months agoLP1928258: Correct Upgrade Script
Jason Boyer [Fri, 24 Sep 2021 11:25:09 +0000 (07:25 -0400)]
LP1928258: Correct Upgrade Script

Signed-off-by: Jason Boyer <JBoyer@equinoxOLI.org>
9 months agoLP#1924562 - pingest.pl help typo for --max-duration
Josh Stompro [Thu, 15 Apr 2021 13:37:05 +0000 (08:37 -0500)]
LP#1924562 - pingest.pl help typo for --max-duration

In the help command example the argument --duration is used but
--max-duration is the correct command.

Signed-off-by: Josh Stompro <stompro@stompro.org>
Signed-off-by: Jason Boyer <JBoyer@equinoxOLI.org>
9 months agoLP1911023 Batch hold cancel refreshes before completion
Bill Erickson [Mon, 11 Jan 2021 15:59:54 +0000 (10:59 -0500)]
LP1911023 Batch hold cancel refreshes before completion

Ensure all hold cancelation promises complete before reporting the
results back to the caller.  Issue was result of thinko in the code
that failed to relay one of the promises in the chain, so it reported
promise completion prematurely.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jason Boyer <JBoyer@equinoxOLI.org>
9 months agoLp 1899974: Export PERL5LIB in oils_ctl.sh
Jason Stephenson [Thu, 15 Oct 2020 13:24:28 +0000 (09:24 -0400)]
Lp 1899974: Export PERL5LIB in oils_ctl.sh

A change in Perl release 5.26.0 necessitates that the SIP_DIR variable
(default value "/opt/SIPServer") be exported to the environment in
oils_ctl.sh when attempting to start SIPServer.  This change affects
Ubuntu 18.04 (Bionic Beaver) and Debian 10 (Buster) and any future
releases.

To verify the bug:

1. Install OpenSRF, Evergreen, and SIPServer on an affected O/S.
2. Start OpenSRF service.
3. Start SIPServer via oils_ctl.sh:
   oils_ctl.sh -a start_sip
4. Notice the "Starting OILS SIP Server" message is printed with no
   indication of failure.
5. Verify that the PID file exists: /openils/var/run/oils_sip.pid
6. Verify that no SIPServer processes are actually running:
   pgrep -af SIPServer
   The above should produce no output.

To test this patch:

1. Apply this patch and install oils_ctl.sh to /openils/bin/.
2. Assuming you have run the previous steps, delete the PID file:
   rm /openils/var/run/oils_sip.pid
3. Start SIPServer via oils_ctl.sh:
   oils_ctl.sh -a start_sip
4. Notice the "Starting OILS SIP Server" message is printed.
5. Verify that the PID file exists: /openils/var/run/oils_sip.pid
6. `pgrep -af SIPServer` should produce output.

It is safe to apply this patch on an unaffected O/S.  Explicitly
adding SIP_DIR to PERL5LIB will have no detrimental effect on any O/S
currently supported by Evergreen.

Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: Jason Boyer <JBoyer@equinoxOLI.org>
9 months agoLP#1928275: fix the Angular "Copy Queue To Bucket"
Galen Charlton [Wed, 25 Aug 2021 22:21:03 +0000 (18:21 -0400)]
LP#1928275: fix the Angular "Copy Queue To Bucket"

Similar to bug 1934184, a blank routerLink on an anchor no longer
causes an ngbModal to open via a click handler.

To test
-------
[1] Create a MARC import bib queue that has at least one imported
    record it.
[2] Click the "Copy Queue To Bucket" link from the queue inspection page
    and observe that nothing happens.
[3] Apply the patch and repeat step 2. This time, the add-to-bucket dialog
    should appear.

Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
Signed-off-by: Mary Llewellyn <mllewell@biblio.org>
Signed-off-by: Jason Boyer <JBoyer@equinoxOLI.org>
9 months agoLP1924621 Place Hold For shows pref name
Bill Erickson [Mon, 20 Sep 2021 15:55:00 +0000 (11:55 -0400)]
LP1924621 Place Hold For shows pref name

In the staff catalog banner which displays when a hold is being placed
for a pre-selected patron.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jason Boyer <JBoyer@equinoxOLI.org>
9 months agoLP1924621 Staff catalog place hold screen preferred name
Garry Collum [Thu, 15 Apr 2021 23:39:56 +0000 (19:39 -0400)]
LP1924621 Staff catalog place hold screen preferred name

Displays the preferred first or last name on the place holds screen,
if a patron barcode is entered.

To test.
1. Set up a borrower with a preferred first name, and one with a
preferred last name, and one with both.
2. Use the catalog place hold screen to search for these borrowers
and notice that the preferred names, if available, are displayed.

* note newline added by Bill to break up wide column.

Signed-off-by: Garry Collum <gcollum@gmail.com>
Signed-off-by: Mary Llewellyn <mllewell@biblio.org>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Gina Monti <gmonti@biblio.org>
Signed-off-by: Jason Boyer <JBoyer@equinoxOLI.org>
9 months agoRevert "Docs: added receipt contents references."
Chris Sharp [Thu, 23 Sep 2021 17:00:33 +0000 (13:00 -0400)]
Revert "Docs: added receipt contents references."

This reverts commit 649d81b06ecee12324d3a4c604ea20451c3fea85.

9 months agoLP#1672346: add release notes
Chris Sharp [Thu, 23 Sep 2021 16:56:08 +0000 (12:56 -0400)]
LP#1672346: add release notes

Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
9 months agoLP#1672346 - Copy Statistics View
Chris Sharp [Sun, 8 Oct 2017 02:44:49 +0000 (22:44 -0400)]
LP#1672346 - Copy Statistics View

Certain third-party products such as collection development
management providers require copy statistics that are not
readily available in a single report.  This view adds those,
which will also benefit library staff reports generally.

Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Signed-off-by: Ruth Frasur <rfrasur@library.in.gov>
9 months agoDocs: added receipt contents references.
lfloyd [Fri, 20 Dec 2019 20:35:33 +0000 (15:35 -0500)]
Docs: added receipt contents references.

Signed-off-by: Lynn Floyd <lfloyd1@library.in.gov>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
9 months agoLP#1864516: stamp DB upgrade script
Chris Sharp [Thu, 23 Sep 2021 16:02:56 +0000 (12:02 -0400)]
LP#1864516: stamp DB upgrade script

Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
9 months agoLP#1864516: add release notes
Chris Sharp [Thu, 23 Sep 2021 15:54:22 +0000 (11:54 -0400)]
LP#1864516: add release notes

Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
9 months agoLP#1864516: case-insensitive browse entry display value comparison
Mike Rylander [Mon, 24 Feb 2020 17:01:49 +0000 (12:01 -0500)]
LP#1864516: case-insensitive browse entry display value comparison

Following up on bug 1350831, there remains one complaint relating to
"bad data makes browse suboptimal" that can't actually be handled today
by the existing Evergreen code or a pullrequested branch: case differences,
particularly in titles.

We should allow an Evergreen admin to decide on a field-by-field basis
whether case should be considered when determining the uniqueness of a
browse entry coming from a bibliographic record, effectively allowing case
folding. Note that authority fields, being by definition the authorized
value that should be used, do not support this case folding. However, if
authority records are processed first, then bibliographic fields can fold
/into/ those authority fields, achieving the desired result and, in fact,
using the best possible case-preserving display value.

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Elaine Hardy <ehardy@georgialibraries.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
9 months agoLP#1759382: add release notes entry
Galen Charlton [Thu, 23 Sep 2021 15:05:32 +0000 (11:05 -0400)]
LP#1759382: add release notes entry

Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
9 months agoLP#1759382: stamp schema update
Galen Charlton [Thu, 23 Sep 2021 15:00:35 +0000 (11:00 -0400)]
LP#1759382: stamp schema update

Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
9 months agoLP#1759382 Setting: staff placed holds default to workstation
Dan Briem [Wed, 25 Aug 2021 14:24:12 +0000 (10:24 -0400)]
LP#1759382 Setting: staff placed holds default to workstation

New org unit setting to always default the pickup location to
the workstation when placing holds as staff, regardless of the
patron's preferred pickup location.

The setting applies to staff placed holds in the Angular and
traditional catalogs.

Priority for determining the default pickup location when
placing holds as staff:

1. workstation if circ.staff_placed_holds_default_to_ws_ou
2. user preferred location if opac.default_pickup_location
3. workstation if circ.staff_placed_holds_fallback_to_ws_ou
4. user home org unit

Signed-off-by: Dan Briem <dbriem@wlsmail.org>
Signed-off-by: Gina Monti <gmonti@biblio.org>
Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
9 months agoLP1925028: Make Hold/Copy Ratio Reports Consistent, Add a By Home Library Version
Jason Boyer [Mon, 19 Apr 2021 13:37:27 +0000 (09:37 -0400)]
LP1925028: Make Hold/Copy Ratio Reports Consistent, Add a By Home Library Version

Use ahcm for all hold/copy ratio reporting sources so the counts are more
consistent, ignore metarecord hold copies (by default) and the copies from
frozen or captured holds.

Also a Hold/Copy Ratio per Bib and Home Library source is added.

Sponsored-by: Westchester Library System
Signed-off-by: Jason Boyer <JBoyer@equinoxinitiative.org>
Signed-off-by: Rogan Hamby <rogan.hamby@gmail.com>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
9 months agoLP#1921057: fix release notes typo
Chris Sharp [Thu, 23 Sep 2021 14:59:59 +0000 (10:59 -0400)]
LP#1921057: fix release notes typo

Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
9 months agoLP#1921057: stamp schema update
Galen Charlton [Thu, 23 Sep 2021 14:30:57 +0000 (10:30 -0400)]
LP#1921057: stamp schema update

Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
9 months agoLP#1921057 - add release notes
Chris Sharp [Wed, 24 Mar 2021 13:34:49 +0000 (09:34 -0400)]
LP#1921057 - add release notes

Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Signed-off-by: Ruth Frasur <rfrasur@library.in.gov>
Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
9 months agoLP#1921057 - Expand reporter.demographic to include detailed age breakdown
Chris Sharp [Tue, 23 Mar 2021 23:03:32 +0000 (19:03 -0400)]
LP#1921057 - Expand reporter.demographic to include detailed age breakdown

Add "age_division" column to reporter.demographic.  Expose the new
column to the reporter as "Detailed Age Division" resulting in the following
options:

Child 0-5 Years Old
Child 6-12 Years Old
Teen 13-17 Years Old
Adult 18-25 Years Old
Adult 50-59 Years Old
Adult 50-59 Years Old
Adult 60-69 Years Old
Adult 70+

If no DOB is present, say so.

Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Signed-off-by: Ruth Frasur <rfrasur@library.in.gov>
Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
9 months agoLP#1940962: add release notes entry
Galen Charlton [Thu, 23 Sep 2021 14:27:39 +0000 (10:27 -0400)]
LP#1940962: add release notes entry

Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
9 months agoLP1940962: Improve stock carousel display
Jason Boyer [Tue, 24 Aug 2021 14:59:11 +0000 (10:59 -0400)]
LP1940962: Improve stock carousel display

Allow carousels to take up 80% of the home page width and raise
the default size to 5 titles so it doesn't look silly.

Signed-off-by: Jason Boyer <JBoyer@equinoxOLI.org>
Signed-off-by: Josh Stompro <stompro@stompro.org>
Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
9 months agoLP#1207533: (follow-up) fix ng lint warnings
Galen Charlton [Thu, 23 Sep 2021 14:08:44 +0000 (10:08 -0400)]
LP#1207533: (follow-up) fix ng lint warnings

Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
9 months agoLP1928258: stamp schema update
Galen Charlton [Thu, 23 Sep 2021 13:56:24 +0000 (09:56 -0400)]
LP1928258: stamp schema update

Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
9 months agoLP1928258 Vandelay separate bib edit update option
Bill Erickson [Wed, 12 May 2021 20:31:20 +0000 (16:31 -0400)]
LP1928258 Vandelay separate bib edit update option

Adds a new field "Update Bib Edit Date" to Vandelay merge profiles which
allows users to update the edit date and editor information on a
merged/overlaid bib record without also having to modify the bib source.

For backwards compatibility, any existing merge profiles that have
"Update Bib Source" applied will also get "Update Bib Edit Date" applied.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Christine Morgan <cmorgan@noblenet.org>
Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
9 months agoLP1941764 Import from queue propagate form inputs
Bill Erickson [Wed, 12 May 2021 15:46:01 +0000 (11:46 -0400)]
LP1941764 Import from queue propagate form inputs

When importing records from an existing Vandelay queue, ensure the
selected queue, its match set, its match bucket, and its holdings import
profile are propagated into the import form.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Christine Morgan <cmorgan@noblenet.org>
Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
9 months agoLP1920253: Stamp Upgrade Script
Jason Boyer [Wed, 22 Sep 2021 17:21:13 +0000 (13:21 -0400)]
LP1920253: Stamp Upgrade Script

Signed-off-by: Jason Boyer <JBoyer@equinoxOLI.org>
9 months agoLP1920253 Add missing carousel workstation setting types
Michele [Fri, 19 Mar 2021 22:21:26 +0000 (18:21 -0400)]
LP1920253 Add missing carousel workstation setting types

Adds ws setting types for the following pages:

Carousels Visible at Library Configuration (eg.grid.admin.local.container.carousel_org_unit)
Carousels Configuration (eg.grid.admin.container.carousel)
Carousel Types Configuration (eg.grid.admin.server.config.carousel_type)

Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Tiffany Little <tlittle@georgialibraries.org>
Signed-off-by: Jason Boyer <JBoyer@equinoxOLI.org>
9 months agoLP1905028: Make live tests chill out
Jason Boyer [Wed, 22 Sep 2021 14:16:50 +0000 (10:16 -0400)]
LP1905028: Make live tests chill out

Signed-off-by: Jason Boyer <JBoyer@equinoxOLI.org>
9 months agoLP#1207533: (follow-up) fix typo from merge conflict resolution
Galen Charlton [Wed, 22 Sep 2021 14:03:01 +0000 (10:03 -0400)]
LP#1207533: (follow-up) fix typo from merge conflict resolution

Fixes database schema creation.

Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
9 months agoLP#1207533: Stamp upgrade scripts, minor typo correction
Chris Sharp [Tue, 21 Sep 2021 20:22:43 +0000 (16:22 -0400)]
LP#1207533: Stamp upgrade scripts, minor typo correction

Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
9 months agoLP#1207533: item-oriented Triggered Event Log
Mike Rylander [Mon, 22 Mar 2021 20:00:55 +0000 (16:00 -0400)]
LP#1207533: item-oriented Triggered Event Log

Building on the previous commit from Jason Etheridge, this adds an
Angular reimplementation of the item-oriented TEL variant.  In addition,
it separates the grid settings persist key and creates the YAOUSen
needed to save those grid settings.

Because these interfaces make use of the flattener service to drive grid
construction and data retrieval, staff will have to have the appropriate
VIEW_USER permission to be able to see patron related data in the
item-oriented grid.

Funding for these interfaces comes from PaILS, for the patron-oriented
interface, and from ECDI, for the item-oriented one.

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Dawn Dale <ddale@georgialibraries.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
9 months agoLP1207533 patron triggered events log
Jason Etheridge [Wed, 29 Jul 2020 12:11:33 +0000 (08:11 -0400)]
LP1207533 patron triggered events log

* first cut at schema
* setting context_user, context_library, and context_bib on action_trigger.event
  when building the environment
* toward UI
  The original interface still exists and is used when spawned from Item Status,
  but for the patron interface, the Other -> Triggered Events / Notifications
  action will now spawn a new tab with the new interface.
* data retention
  Break the link between actor.usr and action_trigger.event when purging user data
  or aging circulations (as best as we can; some textual links may exist in
  action_trigger.event_output--i.e. overdue notices)
* release notes
* live tests

Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Dawn Dale <ddale@georgialibraries.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
9 months agoLP#1642000 - Add Prefix,Suffix and Part to bootsrap opac circ history
Josh Stompro [Tue, 27 Jul 2021 14:34:11 +0000 (09:34 -0500)]
LP#1642000 - Add Prefix,Suffix and Part to bootsrap opac circ history

Signed-off-by: Josh Stompro <stompro@stompro.org>
Signed-off-by: Elaine Hardy <ehardy@georgialibraries.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
9 months agoLP#1642000 - Add Call number prefix, suffix and part to opac circ history
Josh Stompro [Tue, 27 Jul 2021 14:26:02 +0000 (09:26 -0500)]
LP#1642000 - Add Call number prefix, suffix and part to opac circ history

Signed-off-by: Josh Stompro <stompro@stompro.org>
Signed-off-by: Elaine Hardy <ehardy@georgialibraries.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
9 months agoLP#1642000 - Bootstrap Opac - Add CN Prefix, Suffix and Parts to opac checked out...
Josh Stompro [Fri, 16 Jul 2021 23:53:23 +0000 (18:53 -0500)]
LP#1642000 - Bootstrap Opac - Add CN Prefix, Suffix and Parts to opac checked out item display

Add Call Number Prefix, Call Number Suffix and Part to the call number column of
checked out items display.  Also sort based on the label_sortkey value of those fields.

Signed-off-by: Josh Stompro <stompro@stompro.org>
Signed-off-by: Elaine Hardy <ehardy@georgialibraries.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
9 months agoLP#1642000 - Add CN Prefix, Suffix and Parts to opac checked out item display
Josh Stompro [Fri, 16 Jul 2021 20:01:53 +0000 (15:01 -0500)]
LP#1642000 - Add CN Prefix, Suffix and Parts to opac checked out item display

Add Call Number Prefix, Call Number Suffix and Part to the call number column of
checked out items display.  Also sort based on the label_sortkey value of those fields.

Testing Notes:

Check out an asortment of copies to your patron account.  Pick a mix of items with
Call number prefix and suffix, and some with parts.

View the list of checked out items in the myopac interface.

Notices that no call number suffix or prefix are showing, and no parts info is showing.

Apply the patch and see that the extra info is showing.  Also try sorting on call number column.

Signed-off-by: Josh Stompro <stompro@stompro.org>
Signed-off-by: Elaine Hardy <ehardy@georgialibraries.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
9 months agoLP#1844121: prevent staff login by expired barcode
Galen Charlton [Thu, 5 Aug 2021 21:55:18 +0000 (17:55 -0400)]
LP#1844121: prevent staff login by expired barcode

open-ils.auth.authenticate.init accepts an identifier as its
sole parameter, then determines whether it looks like a
username or barcode and retrieves the patron's password
salt as the seed accordingly.

open-ils.auth.authenticate.complete can accept the identifier
via the 'identifier', 'username', or 'barcode' keys, but the
key used does not need to match how .init found the patron.

As a consequence, the .init/.complete dance can retrieve the
patron by barcode but handle the barcode value as if it were
a username, thereby bypassing the check of whether the barcode
was inactive. In particular, the AngularJS staff client login
process does this, meaning that staff members can log in to the
staff client via the AngularJS form using an expired barcode.

This is not good. The OPAC explicitly blocks logging in using an
inactive barcode because it checks the identifier type and sets
the key passed to .complete accordingly. The Angular staff login
page also prevents logging in using an inactive barcode because
(a) it uses open-ils.auth.login, which doesn't have the same
problem and (b) it forces the identifier to be marked as a user
name regardless.

NOTE: this means that the Angular staff login form prevents staff
from logging in via barcode, which potentially is a regression as
compared to the AngularJS side (or, alternatively, is providing
additional necessary strictness).

This patch avoids the problem by having .complete inspect the
cached seed created by .init to determine how the user was ultimately
found.

Some alternative approaches that were rejected include:

[1] Having AngularJS just mirror Angular. Problem: if some staff
    users are used to using their barcode to log in, doing
    this would cause an immediate problem. I note that because
    the staff interface URL is commonly expressed as
    https://library.example/eg/staff, is currently far more common
    for the staff interface to be logged into via the AngularJS
    form rather than the Angular one.
[2] Having AngularJS use open-ils.auth.login, but make it and
    Angular use 'identifier' as the key rather than 'username'.
    Problem: while this would have the desired effect if you
    only use native authentication, if you're using open-ils.auth_proxy,
    it won't work - open-ils.auth_proxy.login doesn't recognize an
    'identifier' parameter. While that could be changed, it
    is more invasive.

To test
-------
[1] Set up a staff user that has a username, an active barcode,
    and an inactive barcode.
[2] Log in to the AngularJS staff interface (/eg/staff) using
    the username, the active barcode, and the inactive one.
[3] Note that you are permitted to log in with all three identifiers.
[4] Apply the patch and repeat step 2.
[5] This time, logging in using the inactive barcode should
    fail.
[6] Verify that other login types continue to work as expected:
    - Angular staff login form
    - OPAC
    - SIP2 terminal login
    - SIP2 user authentication
    - operator change (Angular and AngularJS)
    - Web-based self-check
[7] Extra credit: test logging in via open-ils.auth_proxy with
    it falling back to native authentication.

Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
Signed-off-by: Shula Link <slink@gchrl.org>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
9 months agoLP1904754 Former precat still displays precat info
Terran McCanna [Fri, 18 Jun 2021 22:12:08 +0000 (18:12 -0400)]
LP1904754 Former precat still displays precat info

This fixes a display issue where the precat title and author
were still displaying once the record was no longer a precat,
which effectively duplicated the title and author.

Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org>
Signed-off-by: Jason Boyer <JBoyer@equinoxOLI.org>
Signed-off-by: Bill Erickson <berickxx@gmail.com>
9 months agoLP1904593 Remove errant color[sic].log() call
Bill Erickson [Tue, 21 Sep 2021 15:07:41 +0000 (11:07 -0400)]
LP1904593 Remove errant color[sic].log() call

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
9 months agoLP1903357 Angstcat Hold Activate Date Validation
Bill Erickson [Tue, 27 Jul 2021 18:04:03 +0000 (14:04 -0400)]
LP1903357 Angstcat Hold Activate Date Validation

Prevent setting activation dates in the past when placing holds in the
Angular Staff Catalog.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Josh Stompro <stompro@stompro.org>
9 months agoLP#1737019: stamp schema update
Galen Charlton [Tue, 21 Sep 2021 14:29:30 +0000 (10:29 -0400)]
LP#1737019: stamp schema update

Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
9 months agoLP#1737019: add release notes entry
Galen Charlton [Tue, 21 Sep 2021 14:27:33 +0000 (10:27 -0400)]
LP#1737019: add release notes entry

Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
9 months agoLP#1737019: (follow-up) more tweaks
Galen Charlton [Tue, 21 Sep 2021 14:25:03 +0000 (10:25 -0400)]
LP#1737019: (follow-up) more tweaks

- When creating a new funding source, default the active flag
  in the modal to checked
- Disable actions to allocate from a funding source or
  apply credits to it if it is not active

Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
9 months agoLP#1737019: (follow-up) fix issue in schema update
Galen Charlton [Tue, 21 Sep 2021 14:10:38 +0000 (10:10 -0400)]
LP#1737019: (follow-up) fix issue in schema update

Looks like 'SET DEFAULT ...' and 'SET NOT NULL' cannot be
combined in a single ALTER TABLE statement.

Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
9 months agoLP#1737019 Add an active flag to funding sources
Tiffany Little [Wed, 18 Aug 2021 12:18:31 +0000 (08:18 -0400)]
LP#1737019 Add an active flag to funding sources

This adds an active flag to funding sources. It also adds limits the
available funding sources in the Create Allocation dropdown to only
active funding sources.

Signed-off-by: Tiffany Little <tlittle@georgialibraries.org>
Signed-off-by: Lindsay Stratton <lstratton@wlsmail.org>
Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
9 months agoLP#1929242: stamp DB update
Galen Charlton [Mon, 20 Sep 2021 21:24:29 +0000 (17:24 -0400)]
LP#1929242: stamp DB update

Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
9 months agoLP#1929242: edit release notes
Galen Charlton [Mon, 20 Sep 2021 21:20:20 +0000 (17:20 -0400)]
LP#1929242: edit release notes

Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
9 months agoLP#1929242: (follow-up) additional tweaks
Galen Charlton [Mon, 20 Sep 2021 21:17:00 +0000 (17:17 -0400)]
LP#1929242: (follow-up) additional tweaks

- remove console message upon deleting note
- flesh the creator and editor columns
- make notes grid filterable

Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
9 months agoLP#1929242: (follow-up) add grid config WS setting
Galen Charlton [Mon, 20 Sep 2021 20:06:54 +0000 (16:06 -0400)]
LP#1929242: (follow-up) add grid config WS setting

Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
9 months agoLP#1929242: add missing comma
Rogan Hamby [Wed, 11 Aug 2021 13:27:21 +0000 (13:27 +0000)]
LP#1929242: add missing comma

Signed-off-by: Rogan Hamby <rogan.hamby@gmail.com>
Signed-off-by: Ruth Frasur <rfrasur@library.in.gov>
Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
9 months agoLP#1929242: add release notes
Rogan Hamby [Mon, 9 Aug 2021 17:27:40 +0000 (17:27 +0000)]
LP#1929242: add release notes

Signed-off-by: Rogan Hamby <rogan.hamby@gmail.com>
Signed-off-by: Ruth Frasur <rfrasur@library.in.gov>
Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
9 months agoLP#1929242: add interface for editing bib record notes
Rogan Hamby [Thu, 5 Aug 2021 18:01:48 +0000 (18:01 +0000)]
LP#1929242: add interface for editing bib record notes

This adds an Angular interface for editing bibliographic
record notes, i.e., notes stored in the biblio.record_note
table.

Signed-off-by: Rogan Hamby <rogan.hamby@gmail.com>
Signed-off-by: Ruth Frasur <rfrasur@library.in.gov>
Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
9 months agoLP#1846354 - stamp upgrade script
Chris Sharp [Mon, 20 Sep 2021 19:47:33 +0000 (15:47 -0400)]
LP#1846354 - stamp upgrade script

Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
9 months agolp1846354 additional tweaks and fixes
Jason Etheridge [Tue, 9 Mar 2021 23:02:30 +0000 (18:02 -0500)]
lp1846354 additional tweaks and fixes

* fixes for SIP
* patron merge & purge
* also tweak some storage code, which probably isn't being used for this anywhere
* remove some legacy note code
* don't filter out penalties with deleted messages for Notes count in patron staff display

Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
9 months agoLP#1846354: update Angular new penalty dialog
Galen Charlton [Tue, 9 Mar 2021 15:42:29 +0000 (10:42 -0500)]
LP#1846354: update Angular new penalty dialog

This patch ensures that the new Angular missing pieces interface
can continue to create penalties. Additional work will be required
on the Angular dialog to match the other changes.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
9 months agolp1846354 misc fixes
Jason Etheridge [Tue, 26 Jan 2021 20:31:35 +0000 (15:31 -0500)]
lp1846354 misc fixes

* better notes handling and schema catchup

  - better linking for actor.usr_note
  - schema changes for pristine install

* don't hide referenced deleted messages from staff
* don't exclude archived messages from unread Messages count in OPAC
* migrate unmatched public notes as deleted user messages
* don't use 'Penalty Note' as a message title

Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org>
Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
9 months agolp1846354 revisions to upgrade script
Galen Charlton [Thu, 24 Sep 2020 15:19:30 +0000 (11:19 -0400)]
lp1846354 revisions to upgrade script

- handle case where actor.usr_message starts off empty
- reorder the updates and alterations of ausp so that
  the upgrade can be done in a single transaction

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org>
Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
9 months agoLP#1846354 various speed improvements
Mike Rylander [Tue, 8 Sep 2020 19:12:06 +0000 (15:12 -0400)]
LP#1846354 various speed improvements

* Adjust upgrade script for speed

This commit makes minor adjustments to the upgrade script to speed it up
in the face of larger data sets.

NOTE: The DO blocks that provided assertion tests during the the upgrade
have been commented out, as they primarily test that the preceding
insert did not break in some way that would have inserted data from the
wrong table into the intermediate staging tables.  They take a very long
time to run in some cases, but are left here for testers to enable in
order to confirm that they would pass in production.

* Move the deleted filter out of the query for speed

* Rework aum and ausp to use the same sequence, and aump view to use UNION ALL

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org>
Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
9 months agolp1846354 toward consolidated patron notes
Jason Etheridge [Wed, 8 Jan 2020 14:02:52 +0000 (09:02 -0500)]
lp1846354 toward consolidated patron notes

* changes to IDL, DB, and upgrade script

A new view actor.usr_message_penalty and associated IDL entry will be created
for use with populating the staff Messages interface.  It will perform a full
outer join between penalties and user messages.

The default IDL permissions for user messages will remain VIEW_USER and
UPDATE_USER.

The view that populates the Message Center will be changed slightly to ensure
that staff-only messages are never retrieved for patrons.  The Date column in
the grid/list view will show the edit_date value if populated in lieu of the
create_date value.  The message view will explicitly show an Edit Date label and
value below the Date row if set.

The actor.usr_message table will gain a new boolean column called pub, which
will default to false.

The actor.usr_message table will also gain a stop_date column for handling
archival as with standing penalties.

The actor.usr_message table will also gain editor and edit_date columns.

The actor.usr_message_limited view will be changed to only include rows where
pub is true.

As part of the upgrade script, Patron alert messages will be migrated as
ALERT_NOTE penalties and linked User Messages.  A database assertion will ensure
that this has happened prior to the removal of the alert_message field from the
actor.usr table.  The field will also be removed from the corresponding IDL
entry.  The sending_lib column for these user messages and the org unit field
for these penalties will be set to the top org from the org hierarchy.

Also, non-public entries in the actor.usr_note table will be migrated as
non-public User Messages. Subject to a database assertion that this has
happened, the table actor.usr_note and the actor.convert_usr_note_to_message
trigger will be removed.  The corresponding IDL entry will also be removed.  The
sending_lib column for these user messages will be set to the top org from the
org hierarchy.

Also, rows from actor.org_unit_setting for
ui.staff.require_initials.patron_info_notes will be migrated to
ui.staff.require_initials.patron_standing_penalty.  Collisions will be recorded
in a text file but otherwise dropped.  The row in config.org_unit_setting_type
for ui.staff.require_initials.patron_info_notes will then be removed.  The label
and description for ui.staff.require_initials.patron_standing_penalty in
config.org_unit_setting_type will be edited to reflect the Notes/Penalties
labeling from the UI.

The actor.usr_standing_penalty table and associated IDL entry will gain a
foreign key column linking to actor.usr_message called usr_message, and the note
column itself will be migrated to User Messages.  The usr_message field on the
penalties will be updated accordingly.  Subject to a database assertion that
this has happened, the note field on the actor.usr_standing_penalty table will
be removed.  The corresponding IDL entry will also be removed.  The sending_lib
column for these user messages will be set to match the org_unit column from
their associated penalties.

* middle layer changes

The ApplyPatronPenalty A/T Reactor will be modified to create a user message if
needed instead of setting the note field on the created penalty, and will set
the new usr_message field accordingly.

The API method open-ils.actor.user.penalty.note.update will be similarly
adjusted, though it may edit or create a user message as needed.

The API method open-ils.actor.user.penalty.apply will also be modified to
create user messages in lieu of setting a note field.  The sending_lib field
for such messages will be set to match the session's workstation library,
regardless of the org unit that actually gets applied to the penalty's org_unit
field.  The org_unit field will use the value as passed by the caller, and no
longer do the org_unit_ancestor_at_depth adjustment that happens today.

Both penalty.note.update and penalty.apply will set the editor and edit date
columns on any linked user messages to the current time and staff member for
any already existing message that has its title or message value modified.  The
read_date column will also be NULL'ed in such circumstances so that the message
will appear unread to the patron if public.

The react sub in Event.pm will be tweaked to explicitly set the pub field on
created user messages to true for Action/Trigger.

* OPAC changes

Surface the edit date for patron visible notes in the Message Center.

* staff client changes

References to Message or Messages in the UI, including the button bar that
spawns the interface, will be changed to Note and Notes.

The Alert Message field in the patron editor will be removed.

The Notes interface under Other -> Notes will be removed.

The Notes (and count) indicator in the patron summary sidebar will be removed.
The note count will instead be presented as part of the Notes nav button.

The patron summary sidebar and the "stop sign page" will be modified to
retrieve and display user messages linked to standing penalties that are
flagged as staff alerting.  It will retain the same styling (i.e. red text) by
default.

The Messages interface, including the archived view, will be populated with a
combination of user messages and user penalties, which may or may not be linked
in pairs via a new foreign key on the penalties.  For messages without
associated standing penalties, the sending_lib column will be used for the
implicit filtering on org units that standing penalties get now, based on the
workstation library.  This combined view will result in new columns for the
interface.  At minimum the following columns (subject to label changes) will be
displayed by default: Title, Message, Create Date, Creator, Library, and Patron
Visible.  Columns such as Staff Alert, Org Depth, Block List, Ignore Proximity,
and Penalty Label will still be available.

The Apply Penalty / Message dialog will gain a new widget for toggling whether
or not a message is intended to be visible to the patron.  The Edit message
version of the dialog will also show when/if a patron has read and/or deleted
the message.  An entry field for the message title will be added.  The dialog
will also gain an org selector to the right of the penalty type selector, which
will default to the workstation library, and will change based on the org depth
of any standing penalty type selected in the UI (either via the
Note/Alert/Block buttons or the penalty menu).  This will be passed as the
org_unit field for a penalty instead of the workstation library and org depth
that is implicitly used today  The sending_lib field for the user message will
always be set to the workstation library.

The Archive Penalty / Message action will be modified to work with both
penalties and user messages depending on what it is selected.  If an archived
penalty has a linked user message, then both will have their archive fields
set.  An archived user message may still be otherwise visible to the patron if
it is not marked as deleted or staff only.

The Remove Penalty / Message action will behave as normal for a selected
penalty.  For a user message, linked or unlinked, the message will be flagged
as deleted and, even if public, will no longer show up in the patron's Message
Center.

* release notes

Patron notes, messages, alert messages, and standing penalties have been folded
into one Notes interface.  Notes designated as public will show in the My Account
-> Message Center in the OPAC for patrons.  The underlying data structure has
also changed with all notes living in the actor.usr_message table, so certain
reports may need to be adjusted.

* qa tests

* alert message wording

* set existing user messages to public

before adding new ones; also, remove a lingering reference to alert_message in
Storage/CDBI/actor.pm

* upgrade script tweaks

the main change is that we're creating SILENT_NOTE penalties for migrated
actor.usr_note's in order to preserve the creator.  I'm also removing explicit
TEMP tables in case admins do want to preserve these staging tables (by
commenting out the DROP's at the bottom of the script).

* update auditors

fixes updating patrons and allowing them to login

one consequence of this is that old alert_messages in the auditor will be deleted

* add a WARNING to the release notes

about the auditor table

Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Ruth Frasur <rfrasur@gmail.com>
Signed-off-by: Dawn Dale <ddale@georgialibraries.org>
Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>