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>