Evergreen.git
20 months agoLP1855737 Don't send error object across shared worker port
Bill Erickson [Mon, 9 Dec 2019 16:47:30 +0000 (11:47 -0500)]
LP1855737 Don't send error object across shared worker port

Data must be string-ifiable to pass across a shared web worker message
port.  In Firefox, at least, errors encountered during IndexedDB /
Lovefield operations are not candidates for automatic stringification.
Avoid trying to send the error object back to the caller.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
20 months agoLP#1893463: Protect against null emails
Mike Rylander [Mon, 12 Oct 2020 19:51:29 +0000 (15:51 -0400)]
LP#1893463: Protect against null emails

Unique indexes on nullable columns will allow multiple conceptually
unique rows if the nullable columns are, in fact, NULL because NULL does
not equal itself.  This commit uses COALESCE to make sure that the
nullable email column in the reporter.schedule table gets a value of the
empty string for the purposes of the unique index.  The upgrade script
now also takes this into account and ignores the email column.

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
20 months agoLP#1713138 EDI buyer codes from RFF+API
Bill Erickson [Fri, 25 Aug 2017 19:46:31 +0000 (15:46 -0400)]
LP#1713138 EDI buyer codes from RFF+API

Support extracting buyer code (AKE edi_account.vendcode) values directly
from the EDI RFF+API field.  This provides better matching to
edi_accounts based on vendcode values for inbound EDI messages.

The code will still fall back to extracting vendcodes appended to the SAN,
when no RFF+API is present.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
20 months agoLP1882828: (follow-up) Add static parameter to ViewChild decorator
Jason Boyer [Wed, 14 Oct 2020 16:11:27 +0000 (12:11 -0400)]
LP1882828: (follow-up) Add static parameter to ViewChild decorator

While not strictly required in rel_3_6 and above, rel_3_5 uses
a version of Angular that requires specifying a value for the
static parameter when using the ViewChild decorator on an object.

Signed-off-by: Jason Boyer <JBoyer@equinoxinitiative.org>
20 months agostamp version-upgrade script for 3.6.0
Galen Charlton [Tue, 13 Oct 2020 21:28:03 +0000 (17:28 -0400)]
stamp version-upgrade script for 3.6.0

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
20 months agostamp release notes for 3.6.0
Galen Charlton [Tue, 13 Oct 2020 21:27:13 +0000 (17:27 -0400)]
stamp release notes for 3.6.0

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
20 months agoLP1893463: Follow-up to address de-duplication and adding release notes.
Chris Sharp [Wed, 7 Oct 2020 19:38:34 +0000 (15:38 -0400)]
LP1893463: Follow-up to address de-duplication and adding release notes.

Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Signed-off-by: Jason Stephenson <jason@sigio.com>
20 months agoLP1893463: stamp upgrade script
Chris Sharp [Wed, 7 Oct 2020 18:54:41 +0000 (14:54 -0400)]
LP1893463: stamp upgrade script

Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
20 months agoLP1893463: Prevent duplicated report outputs
Jason Boyer [Fri, 28 Aug 2020 21:13:14 +0000 (17:13 -0400)]
LP1893463: Prevent duplicated report outputs

When re-running recurring reports that are interrupted,
it's possible to end up with a duplicate copy of the next
recurrance of that report. This branch adds a unique index
to reporter.schedule and tells clark-kent.pl not to worry
about it.

For the purposes of this change a duplicate report is
one where report.schedule has identical values for report,
(output) folder, runner, run_time, and email.

Signed-off-by: Jason Boyer <JBoyer@equinoxinitiative.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
20 months agoupdate Czech translation for Angular staff client
Galen Charlton [Wed, 7 Oct 2020 15:42:47 +0000 (11:42 -0400)]
update Czech translation for Angular staff client

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
20 months agoTranslation updates - newpot
Galen Charlton [Wed, 7 Oct 2020 15:38:57 +0000 (11:38 -0400)]
Translation updates - newpot

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
20 months agomove 3.6-beta2 update to 3.6-rc
Galen Charlton [Wed, 7 Oct 2020 15:37:22 +0000 (11:37 -0400)]
move 3.6-beta2 update to 3.6-rc

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
20 months agostamp release notes for 3.6-beta2
Galen Charlton [Wed, 7 Oct 2020 15:36:32 +0000 (11:36 -0400)]
stamp release notes for 3.6-beta2

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
20 months agoLP#1895398: (follow-up) show outline when the login link has focus
Galen Charlton [Wed, 7 Oct 2020 15:24:24 +0000 (15:24 +0000)]
LP#1895398: (follow-up) show outline when the login link has focus

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
20 months agoLP1895398 Bootstrap OPAC Follow Up #2
Chris Burton [Fri, 25 Sep 2020 12:10:42 +0000 (08:10 -0400)]
LP1895398 Bootstrap OPAC Follow Up #2

1) Fix some whitespace issues
2) Move CSS for language pickuper to style.css.tt2

Signed-off-by: Chris Burton <cburton@nflibrary.ca>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
20 months agoLP1895398 Bootstrap OPAC Follow Up #1
Chris Burton [Fri, 25 Sep 2020 11:59:47 +0000 (07:59 -0400)]
LP1895398 Bootstrap OPAC Follow Up #1

Includes following changes:

1) Login modal Aria-labelledby removed. The modal doesn’t have a label.
2) Due to a slight change in versioning, an issue occurred where another
attribute had to be added.
3) Added Buttons back to the middle.
4) Fixed button clicking issues on results and summary.
5) Print and email separated (Still needs
https://bugs.launchpad.net/evergreen/+bug/1895676 resolved)
6) Tabindex removed and now the cart navigation can be controlled by
keyboard
7) Data Toggle added to disabled elements on staff OPAC
8) Not sure what details are missing in the "More Details" section. I
did some old/new comparisons with the OPAC and some of the default books
found in the search and their information was matching up)
9)Tooltips changed to allow keyboard navigation and popups
10) Name was missing from the buttons, so it wasn’t passing actions
properly.
11) Move Language to footer as links. This will make it widely
accessible and noticable. Having a dropdown was not appealing and
removing the submit button would cause it to not be acceptable. I think
they call it a "jump box" because as soon as you make the selection it
redirects you, giving no chance to change it. It's not expected
behaviour from a dropdown.

Signed-off-by: Chris Burton <cburton@nflibrary.ca>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
20 months agodocs: release notes: adding EOLI to the list of commissioning entities
Galen Charlton [Mon, 5 Oct 2020 21:55:01 +0000 (17:55 -0400)]
docs: release notes: adding EOLI to the list of commissioning entities

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
20 months agodocs: corrections to the 3.6 release notes
Lisa Carlucci [Mon, 5 Oct 2020 21:51:46 +0000 (17:51 -0400)]
docs: corrections to the 3.6 release notes

Signed-off-by: Lisa Carlucci <lisa@equinoxinitiative.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
20 months agoupdate target branches for Antora
Galen Charlton [Fri, 2 Oct 2020 21:21:25 +0000 (17:21 -0400)]
update target branches for Antora

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
20 months agoLP1774008 Remove Hatch storage options
Bill Erickson [Wed, 5 Aug 2020 18:19:52 +0000 (14:19 -0400)]
LP1774008 Remove Hatch storage options

Remove option to store settings in Hatch from the AngJS Hatch admin
page.  Update some Hatch labels to remove the term 'Storage'.  Remove
deprecated JS code related to tracking this setting and the
long-deprecated offline file storage setting.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org>
Signed-off-by: Jason Boyer <JBoyer@equinoxinitiative.org>
20 months agoTranslation updates - newpot
Galen Charlton [Wed, 30 Sep 2020 19:10:03 +0000 (15:10 -0400)]
Translation updates - newpot

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
20 months agomove 3.6-beta1 schema update to 3.6-beta2
Galen Charlton [Wed, 30 Sep 2020 19:08:04 +0000 (15:08 -0400)]
move 3.6-beta1 schema update to 3.6-beta2

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
20 months agostamp 3.6-beta2 release notes
Galen Charlton [Wed, 30 Sep 2020 19:07:09 +0000 (15:07 -0400)]
stamp 3.6-beta2 release notes

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
20 months agoclean up RELEASE_NOTES_NEXT upon branching of rel_3_6
Galen Charlton [Wed, 30 Sep 2020 19:05:25 +0000 (15:05 -0400)]
clean up RELEASE_NOTES_NEXT upon branching of rel_3_6

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
20 months agoLP#1896070: ensure that deatching course material doesn't delete non-temporary bibs
Galen Charlton [Thu, 17 Sep 2020 14:44:01 +0000 (10:44 -0400)]
LP#1896070: ensure that deatching course material doesn't delete non-temporary bibs

This patch fixes how the temporary_record field is checked; in Perl code,
non-NULL Boolean fields in Fieldmapper objects do /not/ evaluate as
Perl Boolean values; you have to use $U->is_true() or explictly
compare against 't' and 'f'.

This patch also tweaks live_t/31-courses.t so that it can be run
repeatedly.

To test
-------
[1] Run live_t/31-courses.t repeatedly; note that it will start failing
    the second time.
[2] Reset the database and apply the patch, then repeat step 1.
[3] This time, the test should work when run repeatedly.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Angela Kilsdonk <akilsdonk@equinoxinitiative.org>
20 months agodocs: Curbside Pickup documentation
Angela Kilsdonk [Tue, 29 Sep 2020 21:01:45 +0000 (17:01 -0400)]
docs: Curbside Pickup documentation

Signed-off-by: Angela Kilsdonk <akilsdonk@equinoxinitiative.org>
Signed-off-by: Andrea Buntz Neiman <abneiman@equinoxinitiative.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
20 months agodocs: OPAC Email Print documentation
Angela Kilsdonk [Tue, 29 Sep 2020 20:57:23 +0000 (16:57 -0400)]
docs: OPAC Email Print documentation

Signed-off-by: Angela Kilsdonk <akilsdonk@equinoxinitiative.org>
Signed-off-by: Andrea Buntz Neiman <abneiman@equinoxinitiative.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
20 months agodocs: Acquisitions Providers documentation
Angela Kilsdonk [Tue, 29 Sep 2020 20:47:32 +0000 (16:47 -0400)]
docs: Acquisitions Providers documentation

Signed-off-by: Angela Kilsdonk <akilsdonk@equinoxinitiative.org>
Signed-off-by: Andrea Buntz Neiman <abneiman@equinoxinitiative.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
20 months agodocs: adding new image files for Hopeless Holds
Andrea Buntz Neiman [Tue, 29 Sep 2020 20:38:58 +0000 (16:38 -0400)]
docs: adding new image files for Hopeless Holds

Signed-off-by: Andrea Buntz Neiman <abneiman@equinoxinitiative.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
20 months agodocs: updates to holds documentation
Felicia Beaudry [Tue, 29 Sep 2020 20:02:26 +0000 (16:02 -0400)]
docs: updates to holds documentation

Signed-off-by: Felicia Beaudry <felicia.beaudry@equinoxinitiative.org>
Signed-off-by: Andrea Buntz Neiman <abneiman@equinoxinitiative.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
20 months agodocs: Angular Acq Sprint 0 Tools and Infrastructure
Andrea Buntz Neiman [Tue, 29 Sep 2020 19:53:39 +0000 (15:53 -0400)]
docs: Angular Acq Sprint 0 Tools and Infrastructure

Signed-off-by: Andrea Buntz Neiman <abneiman@equinoxinitiative.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
20 months agodocs: Acquisitions Search documentation
Angela Kilsdonk [Tue, 29 Sep 2020 19:27:01 +0000 (15:27 -0400)]
docs: Acquisitions Search documentation

Signed-off-by: Angela Kilsdonk <akilsdonk@equinoxinitiative.org>
Signed-off-by: Andrea Buntz Neiman <abneiman@equinoxinitiative.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
20 months agodocs: updates to Best Hold Sort Selection Order
Andrea Buntz Neiman [Tue, 29 Sep 2020 19:22:24 +0000 (15:22 -0400)]
docs: updates to Best Hold Sort Selection Order

Signed-off-by: Andrea Buntz Neiman <abneiman@equinoxinitiative.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
20 months agodocs: adding credit card payment info
Andrea Buntz Neiman [Tue, 29 Sep 2020 19:17:49 +0000 (15:17 -0400)]
docs: adding credit card payment info

Signed-off-by: Andrea Buntz Neiman <abneiman@equinoxinitiative.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
21 months agoLP1849212: (follow-up) Don't use group ids in upgrade scripts
Jason Boyer [Tue, 29 Sep 2020 14:32:48 +0000 (10:32 -0400)]
LP1849212: (follow-up) Don't use group ids in upgrade scripts

Previously if there was not a permission group with an id of 9
this upgrade script would fail. Changing the consatruction to
match the seed data allows the insert to benignly do nothing if
the group is missing. Also, the permission is made grantable.

Signed-off-by: Jason Boyer <JBoyer@equinoxinitiative.org>
21 months agoDocs: more 3.6 release notes updates
Andrea Buntz Neiman [Fri, 25 Sep 2020 19:27:01 +0000 (15:27 -0400)]
Docs: more 3.6 release notes updates

Signed-off-by: Andrea Buntz Neiman <abneiman@equinoxinitiative.org>
21 months agoDocs: 3.6 release notes update
Andrea Buntz Neiman [Fri, 25 Sep 2020 18:44:09 +0000 (14:44 -0400)]
Docs: 3.6 release notes update

Signed-off-by: Andrea Buntz Neiman <abneiman@equinoxinitiative.org>
21 months agoLP1851882 Relase Notes (Angular catalog hold types)
Bill Erickson [Fri, 8 Nov 2019 22:09:03 +0000 (17:09 -0500)]
LP1851882 Relase Notes (Angular catalog hold types)

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jennifer Weston <jennifer.weston@equinoxinitiative.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
21 months agoLP1851882 Angular catalog recall/force/part holds
Bill Erickson [Fri, 8 Nov 2019 22:02:48 +0000 (17:02 -0500)]
LP1851882 Angular catalog recall/force/part holds

Adds entry points for placing Recall, Force, and Part-level holds.

For any item-level hold type, the user now has the option to cycle
between Item, Recall, and Force hold types.  The selected type affects
the full batch of holds.

For title-level holds, the user now has the option to select a part as
the hold target for each hold in the list.  Part selection is optional.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jennifer Weston <jennifer.weston@equinoxinitiative.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
21 months agoaccount for race condition in courses live test
Chris Sharp [Thu, 24 Sep 2020 23:46:51 +0000 (19:46 -0400)]
account for race condition in  courses live test

Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
21 months agoLP1872867 Staff catalog filters use search labels
Bill Erickson [Thu, 30 Jul 2020 16:23:15 +0000 (12:23 -0400)]
LP1872867 Staff catalog filters use search labels

The Angular staff catalog now displays the search_label value for all of
the coded-value-map filters (search format, item type, etc.) when
available.  It falls back to the 'value' field when no search_label exists.

If a value is not opac_visible, the text "(Hidden)" is appended to the
label.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Elaine Hardy <ehardy@georgialibraries.org>
21 months agoLP#1096209: Stamp upgrade script
Chris Sharp [Thu, 24 Sep 2020 17:41:20 +0000 (13:41 -0400)]
LP#1096209: Stamp upgrade script

Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
21 months agoLP#1096209: add check_sms_notify parameter to all relevant event defs
Jeff Davis [Thu, 28 May 2020 16:17:11 +0000 (09:17 -0700)]
LP#1096209: add check_sms_notify parameter to all relevant event defs

Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
21 months agoLP#1776954 - Add release notes
Chris Sharp [Thu, 24 Sep 2020 17:18:39 +0000 (13:18 -0400)]
LP#1776954 - Add release notes

Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
21 months agoLP#1776954 Avoid empty string for tcn_source
Dan Scott [Thu, 14 Jun 2018 17:59:42 +0000 (13:59 -0400)]
LP#1776954 Avoid empty string for tcn_source

The tcn_source for some records is an empty string, instead of the database
default of 'AUTOGEN', because the Perl record import code avoids a Perl warning
in the logger info call by setting the value to an empty string if it can't
find any other source (e.g. OCLC number). Unfortunately, the empty string then
gets passed to the database, meaning that it satisfies the non-NULL constraint
and does not invoke the default value of 'AUTOGEN'.

The resulting MARCXML then contains an empty, self-closing 901 $b subfield
(<subfield code="b"/>) that causes an error for some other applications, such
as Zotero, which do not anticipate empty subfields.

The simple fix applied here is to follow the example for $source and $tcn of
not setting the value of the tcn_source field in the bib record object if the
corresponding variable evaluates to false (such as if it's an empty string).

To test: create a basic record in the MARC editor that includes minimal fields
(for example, a 100 and 245) so that it has no TCN source to extract. Check the
MARCXML served up by SuperCat ("curl
http://<hostname>/opac/extras/supercat/retrieve/marcxml-uris/record/<bib-id>").
Before this patch, it will have a self-closing 901 $b subfield. After applying
this patch and creating a new test record, the new test record will have a
901$b subfield with the value 'AUTOGEN'.

A site that has been running without this patch for a long time might want to
check how many bib records they have with an empty tcn_source:

SELECT COUNT(*) FROM biblio.record_entry WHERE deleted IS FALSE AND tcn_source = '';

Sites can fix the problem by issuing UPDATE statements to set the 901$b to a value
like 'AUTOGEN' or 'Unknown'. They should probably do it per-record, however, to
avoid locking the table in a huge commit.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
21 months agoLP1882828: Fix issues with displaying cataloged resources in Pull List
Jane Sandberg [Wed, 19 Aug 2020 23:22:43 +0000 (16:22 -0700)]
LP1882828: Fix issues with displaying cataloged resources in Pull List

I had mistakenly used switchMap, when I should have used mergeMap. This
led to erroneously canceled subscriptions, leaving rows out of the pull
list.

This commit also uses getRows, rather than manually setting the
GridDataSource's data.

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
21 months agoLP#1882825: (follow-up) include update number
Galen Charlton [Thu, 24 Sep 2020 15:59:02 +0000 (11:59 -0400)]
LP#1882825: (follow-up) include update number

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
21 months agoLP#1835127: (follow-up) fixes to update script
Galen Charlton [Thu, 24 Sep 2020 15:58:08 +0000 (11:58 -0400)]
LP#1835127: (follow-up) fixes to update script

- include the version number stamp
- adjust the permission IDs

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
21 months agoRepair Permission Seed Data
Jason Boyer [Thu, 24 Sep 2020 12:03:33 +0000 (08:03 -0400)]
Repair Permission Seed Data

Signed-off-by: Jason Boyer <JBoyer@equinoxinitiative.org>
21 months agoLP1882825 - Stamp upgrade script
Chris Sharp [Wed, 23 Sep 2020 20:47:33 +0000 (16:47 -0400)]
LP1882825 - Stamp upgrade script

Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
21 months agoLP1882825: Add setting for booking pull list grid
Jane Sandberg [Tue, 9 Jun 2020 20:51:24 +0000 (13:51 -0700)]
LP1882825: Add setting for booking pull list grid

Steps to test:
[1] Go to the Booking Pull List.
[2] Change the grid around and try to save.
[3] Note in your browser console an error message: "Error saving columns: No user or workstation setting type exists for eg.grid.booking.pull_list"
[4] Run the database migration included in this commit.
[5] Repeat steps 1-2.
[6] Note that no error message appears.
[7] Try exiting Evergreen and coming back (using the same workstation).  Note that your changes to the grid have stuck!

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
21 months agoLP#1835127 - Stamp upgrade script
Chris Sharp [Wed, 23 Sep 2020 20:33:06 +0000 (16:33 -0400)]
LP#1835127 - Stamp upgrade script

Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
21 months agoLP#1835127: scoped permissions for reservations
Jeff Davis [Wed, 6 May 2020 21:22:49 +0000 (14:22 -0700)]
LP#1835127: scoped permissions for reservations

Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
21 months agoLP#1361270 Self-registration doesn't retain org unit on refresh
Dan Briem [Tue, 25 Aug 2020 19:47:15 +0000 (15:47 -0400)]
LP#1361270 Self-registration doesn't retain org unit on refresh

This sets the self-registration form's org unit selector to the
the current org unit request parameter if it's set and self-
registration is allowed for that org unit. This will preopulate
the org selector on refresh or error instead of resetting to the
default context.

To test:
1. Administration->Local Administration->Library Settings Editor
   set Allow Patron Self-Registration to True (top context)
2. go to OPAC->Request Library Card (stock link is on bottom)
3. select a Home Library and click Submit Registration
4. note the Home Library select doesn't retain your selection
5. apply this fix and repeat steps
6. note the Home Library is retained

Signed-off-by: Dan Briem <dbriem@wlsmail.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
21 months agoLP1883126 Angular accesskey sort repair
Bill Erickson [Wed, 10 Jun 2020 15:46:39 +0000 (11:46 -0400)]
LP1883126 Angular accesskey sort repair

Fixes sorting issue in Angular egAccessKey directive to ensure that the
most recent additions are given highest priority and to ensure that
like keys (same action) are sorted next to each other in the control-h
help dialog.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org>
21 months agoLP1896629 Angular catalog deleted record indicators
Bill Erickson [Mon, 1 Jun 2020 19:43:02 +0000 (15:43 -0400)]
LP1896629 Angular catalog deleted record indicators

Adds a (Deleted) record indictor to the bib summary component, which
appears in various Angular interfaces.

Also adds a (Deleted) to the catalog search results.  It sits where the
Place Hold button would normally go.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Mary Llewellyn <mllewell@biblio.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
21 months agoLP#1885767: stamp DB update
Galen Charlton [Tue, 22 Sep 2020 14:26:51 +0000 (10:26 -0400)]
LP#1885767: stamp DB update

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
21 months agoLP1885767 Staff catalog exclude electronic option
Bill Erickson [Fri, 28 Aug 2020 16:11:39 +0000 (12:11 -0400)]
LP1885767 Staff catalog exclude electronic option

Adds support for the 'Exclude Electronic Resources' checkbox in the
staff catalog, consistent with the TPAC option.

Adds a workstation setting, 'Staff Catalog "Exclude Electronic
Resources" Option' to control the behavior and an option to
toggle the preference in the staff catalog preferences page.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Mary Llewellyn <mllewell@biblio.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
21 months agoLP1892111 Staff Catalog Digital Bookplates
Bill Erickson [Wed, 19 Aug 2020 14:54:35 +0000 (10:54 -0400)]
LP1892111 Staff Catalog Digital Bookplates

Support for digital bookplates searching in the staff catalog.

Note to testers, the org setting 'opac.search.enable_bookplate_search'
must be set to true and copy tags must be added and linked to copies.

Included in commit is a minor i18n tweak to address some complaints by
the Angular build.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Rogan Hamby <rogan.hamby@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
21 months agoLP1896081 Repair staff catalog filter expansion error
Bill Erickson [Thu, 17 Sep 2020 15:15:39 +0000 (11:15 -0400)]
LP1896081 Repair staff catalog filter expansion error

Simplifies an i18n structure that was leading to this error when
expanding the staff catalog filters section:

ERROR DOMException: Failed to execute 'appendChild' on
'Node': The new child element contains the parent.
    at EmulatedEncapsulationDomRenderer2.appendChild

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Mary Llewellyn <mllewell@biblio.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
21 months agoLP1896083 Staff catalog handles not-found barcodes
Bill Erickson [Thu, 17 Sep 2020 15:39:43 +0000 (11:39 -0400)]
LP1896083 Staff catalog handles not-found barcodes

Staff catalog => Numeric Search => Item Barcode

Display the standard 'No Maching Items Were Found' message when a
barcode search returns no results.

Prior to this patch, the search progress indicator would freeze as the
page failed to completely render on JS error.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Mary Llewellyn <mllewell@biblio.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
21 months agoLP1896512 Angular retrieve record by ID/TCN
Bill Erickson [Mon, 21 Sep 2020 19:38:26 +0000 (15:38 -0400)]
LP1896512 Angular retrieve record by ID/TCN

Ports the retrieve records by ID/TCN to Angular.  Note this version of
the form confirms a record exists by both ID and TCN before directing
the user to the record detail page in the Angular staff catalog.

Updates the navigation bars to use the Angular port for each.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Rogan Hamby <rogan.hamby@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
21 months agoLP#1788260: stamp schema update
Galen Charlton [Mon, 21 Sep 2020 15:51:09 +0000 (11:51 -0400)]
LP#1788260: stamp schema update

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
21 months agoLP#1788260 - Break out in-house-use non-cat circulations.
Chris Sharp [Tue, 21 Aug 2018 18:22:05 +0000 (14:22 -0400)]
LP#1788260 - Break out in-house-use non-cat circulations.

Previously, all non-cataloged circulations were grouped
together, causing problems for libraries who need to
exclude in-house circulations from circ counts.

Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Signed-off-by: Rogan Hamby <rogan.hamby@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
21 months agomake npm run export-strings happier
Galen Charlton [Thu, 17 Sep 2020 16:16:01 +0000 (12:16 -0400)]
make npm run export-strings happier

The UrlMatcher function used by the provider interface needs
to spelled slighly differently to avoid the AOT compiler
used by "npm run export-strings" from failing with the following error:

ERROR in Error during template compile of 'AcqProviderRoutingModule'
  Function expressions are not supported in decorators in 'ɵ0'
    'ɵ0' contains the error at app/staff/acq/provider/routing.module.ts(7,14)
      Consider changing the function expression into an exported function

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
21 months agoRemove Extraneous Permissions from Course Reserves
Jason Boyer [Wed, 16 Sep 2020 17:03:20 +0000 (13:03 -0400)]
Remove Extraneous Permissions from Course Reserves

According to the release notes and seed data the MANAGE_RESERVES
permission is intended to be granted to the Circulation Administrator
group rather than Serials and System / Global Administrators.

Signed-off-by: Jason Boyer <JBoyer@equinoxinitiative.org>
21 months agoupdate schema update script for Curbside Pickup
Galen Charlton [Tue, 15 Sep 2020 20:41:20 +0000 (16:41 -0400)]
update schema update script for Curbside Pickup

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Jason Boyer <JBoyer@equinoxinitiative.org>
21 months agofirst pass at consolidated schema update for 3.6-beta1
Galen Charlton [Tue, 15 Sep 2020 18:39:33 +0000 (14:39 -0400)]
first pass at consolidated schema update for 3.6-beta1

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Jason Boyer <JBoyer@equinoxinitiative.org>
21 months agoCorrect typo in seed data
Jason Boyer [Wed, 16 Sep 2020 18:22:15 +0000 (14:22 -0400)]
Correct typo in seed data

Rather than causing an error, forgetting a comma between 2 strings
concatenates them, and we don't have a permission called
VIEW_MERGE_PROFILEVIEW_REPORT_OUTPUT.

Signed-off-by: Jason Boyer <JBoyer@equinoxinitiative.org>
21 months agoTranslation updates - po file - 3.6
Galen Charlton [Wed, 16 Sep 2020 18:34:12 +0000 (14:34 -0400)]
Translation updates - po file - 3.6

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
21 months agoTranslation updates - newpot for 3.6
Galen Charlton [Wed, 16 Sep 2020 18:28:21 +0000 (14:28 -0400)]
Translation updates - newpot for 3.6

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
21 months agoadjusted release notes title to use -beta1 rather than -beta
Galen Charlton [Wed, 16 Sep 2020 18:10:41 +0000 (14:10 -0400)]
adjusted release notes title to use -beta1 rather than -beta

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
21 months agovarious changes to the 3.6 release notes
Michele Morgan [Wed, 16 Sep 2020 17:54:26 +0000 (13:54 -0400)]
various changes to the 3.6 release notes

Added notes for:

LP1818367
LP1841974
LP1880028
LP1884657

as well as typos and omissions

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
21 months agoupdate draft release notes for Curbside Pickup
Galen Charlton [Tue, 15 Sep 2020 20:43:19 +0000 (16:43 -0400)]
update draft release notes for Curbside Pickup

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
21 months agostart 3.6 release notes
Galen Charlton [Tue, 15 Sep 2020 18:17:27 +0000 (14:17 -0400)]
start 3.6 release notes

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
21 months agoCorrect opensrf.xml.example
Jason Boyer [Wed, 16 Sep 2020 10:57:55 +0000 (06:57 -0400)]
Correct opensrf.xml.example

Add missing closing tag, include child process limits.

Signed-off-by: Jason Boyer <JBoyer@equinoxinitiative.org>
21 months agoFix errors in live tests for courses
Jane Sandberg [Tue, 15 Sep 2020 23:34:55 +0000 (16:34 -0700)]
Fix errors in live tests for courses

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
21 months agofix some warnings reported by Launchpad's translation import
Galen Charlton [Tue, 15 Sep 2020 21:38:22 +0000 (17:38 -0400)]
fix some warnings reported by Launchpad's translation import

This patch fixes POT syntax errors in two cases and checks
in the results of xml2po for another. None of the files involved
(nowadays) are visible to users, so this patch is strictly
about keeping LP happy.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
21 months agoLP#1811710: (follow-up) update loadChildren for hopeless holds
Galen Charlton [Tue, 15 Sep 2020 20:53:02 +0000 (16:53 -0400)]
LP#1811710: (follow-up) update loadChildren for hopeless holds

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
21 months agoLP#1879983: stamp schema update
Galen Charlton [Tue, 15 Sep 2020 20:38:24 +0000 (16:38 -0400)]
LP#1879983: stamp schema update

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
21 months agoLP#1879983: Look at closings when getting times for a date
Mike Rylander [Mon, 24 Aug 2020 23:40:51 +0000 (19:40 -0400)]
LP#1879983: Look at closings when getting times for a date

This adds a check for library closings when getting the list of times to
offer for an appointment.

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
21 months agoLP#1879983: Create and protect a floor on appt granularity
Mike Rylander [Mon, 27 Jul 2020 18:10:14 +0000 (14:10 -0400)]
LP#1879983: Create and protect a floor on appt granularity

If bare numbers are entered, they are interpreted as a number of
seconds.  The most likely intent is minutes, so we force that unit.

Additionally, this commit sets a hard floor of 10 minutes on appointment
granularity.

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
21 months agoLP#1879983: Restrict top-level curbside tab display
Mike Rylander [Mon, 29 Jun 2020 20:58:37 +0000 (16:58 -0400)]
LP#1879983: Restrict top-level curbside tab display

Refactor the code checking for curbside-available current-pickup
libraries so that it is checked for all of MyOPAC, allowing us to hide
the Curbside Pickup top-level tab when there are no holds ready at
curbside pickup enabled locations.  The tab will always be at the end of
the list if it is visible.

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
21 months agoLP#1879983: ensure that slot notes appear on delivered tab
Galen Charlton [Fri, 26 Jun 2020 20:19:50 +0000 (16:19 -0400)]
LP#1879983: ensure that slot notes appear on delivered tab

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
21 months agoLP#1879983: corrected wording for appointment-claiming toasts
Galen Charlton [Thu, 25 Jun 2020 17:48:48 +0000 (13:48 -0400)]
LP#1879983: corrected wording for appointment-claiming toasts

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
21 months agoLP#1879983: Allow different granularities for the same date
Mike Rylander [Thu, 25 Jun 2020 16:45:15 +0000 (12:45 -0400)]
LP#1879983: Allow different granularities for the same date

The times available for each date were unintentionally limited to just
one org unit.  This commit removes that restriction by storing the times
available for a date as passed to the template separately for each org
unit that has a curbside object, or is now requesting one.

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
21 months agoLP#1879983: Add curbside subtab to the My Account holds UI
Mike Rylander [Fri, 29 May 2020 16:17:54 +0000 (12:17 -0400)]
LP#1879983: Add curbside subtab to the My Account holds UI

This updates the public catalog My Account holds tab to add
a subtab for curbside appointments. This subtab is displayed
only when the patron has available holds on the shelf at pickup
libraries that have enabled the circ.curbside library setting.

From this subtab, patrons can:

* Set times for curbside appointments and specify notes.
* Modify and cancel appointments.
* Mark themselves has having arrived at the library.

In addition to Mike Rylander, significant contributions to this
patch were made by Galen Charlton.

Sponsored-by: PaILS
Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
21 months agoLP#1879983: tweak public catalog CSS
Mike Rylander [Fri, 29 May 2020 16:14:55 +0000 (12:14 -0400)]
LP#1879983: tweak public catalog CSS

In particular, add CSS to support table-ish display of
a div-grid for form-per-row. For example:

 <div class="egtable">
     <form class="egtr" method="post" action="blah.html">
         <span class="egtd"><input type="text"/></span>
         <span class="egtd"><input type="text"/></span>
     </form>
     <div class="egtr">
         <span class="egtd">(cell data)</span>
         <span class="egtd">(cell data)</span>
     </div>
     ...
 </div>

Sponsored-by: PaILS
Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
21 months agoLP#1879983: My Account curbside TPAC app
Mike Rylander [Fri, 29 May 2020 16:17:07 +0000 (12:17 -0400)]
LP#1879983: My Account curbside TPAC app

This adds code for managing curbside appointments in the
public catalog My Account page.

In addition to Mike Rylander, significant contributions to this
patch were made and Galen Charlton.

Sponsored-by: PaILS
Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
21 months agoLP#1879983: add Curbside Pickup to the Angular navbar
Galen Charlton [Tue, 2 Jun 2020 18:51:35 +0000 (14:51 -0400)]
LP#1879983: add Curbside Pickup to the Angular navbar

For both the Angular and AngularJS staff interfaces, the
Curbside Pickup option in the Circulation menu is displayed
only if circ.curbside has been enabled for the workstation
library.

Sponsored-by: PaILS
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
21 months agoLP#1879983: AngularJS staff interface for curbside pickup
Galen Charlton [Tue, 26 May 2020 21:17:48 +0000 (17:17 -0400)]
LP#1879983: AngularJS staff interface for curbside pickup

This adds a new AngularJS page for curbside appointment management. The
page has several tabs:

* To Be Staged appointments. This displays upcoming appointments; from
  here, staff can mark appointments as "staged". Depending on the
  library's curbside workflow, that may mean that the staff member
  places the items in a bag or on a delivery table.

  This tab also allows a staff member to claim (or unclaim)
  responsibility for staging items for an appointment.

* Staged and Ready. This displays staged appointments; from here, staff
  can mark that the patron has arrived, check out the items and mark
  the appointment delivered, or un-stage the appointment.
* Patron Is Outside: from here, staff can check out the items and
  mark the appointment delivered.
* Delivered Today: This displays appointments that were marked as
  delivered.
* Schedule Pickup: This allows staff members to create and modify
  curbside appointments on behalf of a patron.

AngularJS was chosen for this interface to permit backporting the
feature to older versions of Evergreen without having to deal with
variations in the version of Angular that is supported in past
releases. It also better meshes with the patron and circulation staff
interfaces that have not yet been rewritten in Angular.

The curbside pickup page only handles appointments at the workstation
library of the current staff user, as it assumes that the curbside
process is not centralized.

In addition to Galen Charlton, significant contributions to this
patch were made by Mike Rylander.

Sponsored-by: PaILS
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
21 months agoLP#1879983: A/T components of Curbside
Mike Rylander [Tue, 19 May 2020 19:13:57 +0000 (15:13 -0400)]
LP#1879983: A/T components of Curbside

This commit adds a reactor and validator for automating parts of the
basic Curbside workflows:

* Curbside validator: check whether curbside is enabled at the org unit
  applicable an A/T event's target, which could be a user, org unit,
  curbside appointment, or hold request.
* CurbsideSlot reactor: Creates a curbside appointment slot at the hold
  pickup library when a hold becomes ready for pickup, if one does not
  exist. This is meant to be triggered by the hold.available hook.
  Appointments created by this reactor do not have an appointment time
  set, as that is meant to be supplied by the patron or a staff member
  acting on behalf of the patron.

In addition to Mike Rylander, significant contributions to this
patch were made by Jason Boyer.

Sponsored-by: PaILS
Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Jason Boyer <jboyer@equinoxinitiative.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
21 months agoLP#1879983: Curbside application: open-ils.curbside
Mike Rylander [Tue, 19 May 2020 19:11:54 +0000 (15:11 -0400)]
LP#1879983: Curbside application: open-ils.curbside

This commit adds the Curbside OpenSRF application, open-ils.curbside,
which provides all the business logic and data retrieval APIs. The
open-ils.curbside service must be registered with the public routeri
in order for the feature to function.

The methods in this service are:

* open-ils.curbside.fetch_mine: retrieve the active appointments
  for the current login session; this is meant for OPAC use.
* open-ils.curbside.open_user_appointments_at_lib: retrieve
  appointments for the specified user at a given library.
* open-ils.curbside.patron.ready_holds_at_lib.count: count
  available holds for a patron at a specified library; this is
  needed because there is no other single method that provides
  this.

* open-ils.curbside.fetch_to_be_staged
* open-ils.curbside.fetch_staged
* open-ils.curbside.fetch_arrived
* open-ils.curbside.fetch_delivered

Retrieve appointments in various states. These methods are streaming
and also have .atomic variants.

* open-ils.circ.curbside.claim_staging
* open-ils.circ.curbside.unclaim_staging

Allow a staff member to claim responsibility for staging items
for an appointment or to release a claim.

* open-ils.curbside.fetch_to_be_staged.latest
* open-ils.curbside.fetch_staged.latest
* open-ils.curbside.fetch_arrived.latest
* open-ils.curbside.fetch_delivered.latest

Retrieve a hash of apopintments in various states; used to determine
if the UI should be updated.

* open-ils.curbside.times_for_date

Retrieve available times for curbside appointments at the specified
date.

* open-ils.curbside.update_appointment
* open-ils.curbside.create_appointment
* open-ils.curbside.delete_appointment

CUD.

* open-ils.curbside.mark_staged
* open-ils.curbside.mark_unstaged
* open-ils.curbside.mark_arrived

Update the state of appointments.

* open-ils.curbside.mark_delivered

Update the state of an appointment to mark it delivered AND check
out all of the available holds.

In addition to Mike Rylander, significant contributions to this
patch were made by Galen Charlton.

Sponsored-by: PaILS
Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
21 months agoLP#1879983: Predefined ILS Events to alert the UI
Mike Rylander [Tue, 19 May 2020 19:10:34 +0000 (15:10 -0400)]
LP#1879983: Predefined ILS Events to alert the UI

This commit defines events that might be sent to UIs in the case of
exceptional circumstances:

* CURBSIDE_NOT_ALLOWED (i.e., if the circ.curbside library setting is
  not enabled for a given pickup library.)
* CURBSIDE_MAX_FOR_TIME (i.e., if all of the available slots for
  a given appointment time have been scheduled.)
* CURBSIDE_EXISTS (i.e., if one is attempting to create a new
  open curbside appointment for a patron and pickup library when
  one already exists.)

Sponsored-by: PaILS
Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
21 months agoLP#1879983: add DB updates to baseline
Galen Charlton [Thu, 18 Jun 2020 14:12:49 +0000 (10:12 -0400)]
LP#1879983: add DB updates to baseline

In addition to Galen Charlton, significant contributions to this
patch were made by Jason Boyer and Mike Rylander.

Sponsored-by: PaILS
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
21 months agoLP#1879983: new table and seed data for curbside
Mike Rylander [Tue, 19 May 2020 19:08:32 +0000 (15:08 -0400)]
LP#1879983: new table and seed data for curbside

This patch adds a new database table, action.curbside, for
tracking appointments to pick up on-shelf hold requests:

 id             - ID
 patron         - patron that the appoint is for
 org            - pickup library that the appointment is for
 slot           - date and time of appointment
 staged         - whethers for appointment have been staged
 stage_staff    - staff member responsible for staging the items
 arrival        - whether patron has arrived to pick up the items
 delivered      - whether items have been checked out to patron
 delivery_staff - staff member responsible for checking out the items
 notes          - notes about the appointment, e.g., the color
                  of the patron's vehicle

It also adds four new library settings:

* circ.curbside: whether to enable curbside appointments for
  picking up available hold requests. This default to off.

* circ.curbside.granularity: interval between appointment slots. This
  defaults to 15 minutes.

* circ.curbside.max_concurrent: how many appointments to permit per
  time slot.  This defaults to 10.

* circ.curbside.disable_patron_input: if turned on, display scheduled
  and pending appointments in My Account in the public catalog but
  do not give the patron the ability to change them from My Account.
  This defaults to false, i.e., allowing patrons to modify appointments
  from My Account.

It also adds two Action Trigger hooks:

* hold.offer_curbside: to trigger notifications offering a patron the
  opportunity to set an appointment time; this is invoked if the
  CurbsideSlot A/T reactor is used to create appointment slots when
  holds become available.

* hold.confim_curbside: fired when a curbside pickup appointment is
  created or updated.

It also adds seed data for the Curbside A/T validator and CurbsideSlot A/T
reactor.

Finally, it adds sample A/T event definitions:

* Curbside offer Email notification
* Curbside offer SMS notification
* Curbside confirmation Email notification
* Curbside confirmation SMS notification

These event definitions are disabled by default.

In addition to Mike Rylander, significant contributions to this
patch were made by Jason Boyer and Galen Charlton.

Sponsored-by: PaILS
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Jason Boyer <jboyer@equinoxinitiative.org>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
21 months agoLP#1879983: Release notes for Curbside Pickup
Galen Charlton [Wed, 10 Jun 2020 17:22:47 +0000 (13:22 -0400)]
LP#1879983: Release notes for Curbside Pickup

This is in the first patch in a series for a new feature in
Evergreen called Curbside Pickup.

The Curbside Pickup features in Evergreen provides an interface to help
facilitate contact free pickup of library materials.  It provides a dedicated
interface in the staff client for library staff to track and manage curbside
pickup appointments and materials through the various stages of the process.
Staff can also schedule pickup appointments on behalf of patrons.  This feature
also allows patrons to schedule their own curbside pickup appointments in their
OPAC account, as well as inform the library when they have arrived and are
waiting for their materials.

To test
-------
(Testing notes were contributed by Andrea Neiman)

In order to test Curbside, you will need to place and capture holds at the
respective location you’re testing.  This work does not interfere with existing
hold rules or parameters, except to force checkout override in certain
circumstances.

In addition, the circ.curbside library setting must be enabled. These testing
suggestions assume that the A/T event definitions included in this patch
series have been enabled.

Things to test:

* MyAccount correctly reflects scheduling/scheduled options
* Alert staff on my arrival should move batch to the Patron is Outside
  tab
* Update appointment/cancel appointment options should move or remove
  the batch appropriately
* If a patron has pickups at multiple locations, they should be able
  to schedule separate pickups per location
* Email notices at various steps of the way are firing correctly
* Patron should get email for hold pickup, including scheduling
  curbside.
* Patron should get email confirming curbside pickup
* Patron should get email with checked out items, if email receipts
  are enabled
* Correct “batching” of items for pickup
* Batch moving correctly through tabs
* Batch is physically collocated - i.e. not containing pickups for
  other OUs
* Checkouts are performed correctly
* Check against patrons with blocks - force override should be in effect
* Settings are being respected with regard to pickup scheduling & time
  constraints
* Can’t create pickups in the past
* Pickups respect library open hours as set in Org Unit Administration
* Can’t create pickups if the 15-minute block is filled

Sponsored-by: PaILS
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
21 months agoLP#1811710: stamp schema update
Galen Charlton [Tue, 15 Sep 2020 16:10:02 +0000 (12:10 -0400)]
LP#1811710: stamp schema update

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
21 months agoLP#1811710: (follow-up) fix lint issues
Galen Charlton [Fri, 3 Jan 2020 19:28:15 +0000 (14:28 -0500)]
LP#1811710: (follow-up) fix lint issues

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
21 months agolp1811710: automated tests
Jason Etheridge [Tue, 10 Sep 2019 20:29:19 +0000 (16:29 -0400)]
lp1811710: automated tests

Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>