Evergreen.git
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years agolp1811710: hopeless holds release notes
Jason Etheridge [Fri, 16 Aug 2019 14:49:20 +0000 (10:49 -0400)]
lp1811710: hopeless holds release notes

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>
2 years agolp1811710: minor fixes to other code
Jason Etheridge [Sun, 30 Jun 2019 00:53:15 +0000 (20:53 -0400)]
lp1811710: minor fixes to other code

outside of the holds grid and the Hopeless Holds interface

* Retargetd vs Retargeted typo

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>
2 years agolp1811710: hide Pre-Fetch for now
Jason Etheridge [Tue, 11 Jun 2019 16:24:56 +0000 (12:24 -0400)]
lp1811710: hide Pre-Fetch for now

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>
2 years agolp1811710: minor tweaks to the eg2 holds grid
Jason Etheridge [Fri, 7 Jun 2019 14:30:53 +0000 (10:30 -0400)]
lp1811710: minor tweaks to the eg2 holds grid

column label fixes and let some actions work with multiple rows

fix for item barcode link

prevent certain actions from spawning broken interfaces

disable Title Hold Transfer if non-title holds are selected

render hold status

return the sms carrier name instead of the id in the wide_holds API
(we may want to back this one out and do it differently)

show time component for timestamp columns

fixed live summaries for various hold actions intended for large batches

remove mvr.* from eg2 holds grid; not doing anything

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>
2 years agolp1811710: toward hopeless data
Jason Etheridge [Tue, 4 Jun 2019 16:12:54 +0000 (12:12 -0400)]
lp1811710: toward hopeless data

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>
2 years agolp1811710: toward hopeless UI
Jason Etheridge [Fri, 10 May 2019 06:52:01 +0000 (02:52 -0400)]
lp1811710: toward hopeless UI

dedicated interface and grid tweaks

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>
2 years agolp1811710: toward hopeless holds, backend and existing UI's
Jason Etheridge [Wed, 17 Apr 2019 12:29:53 +0000 (08:29 -0400)]
lp1811710: toward hopeless holds, backend and existing UI's

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>
2 years agoLP#1849212: oils_i18n_gettext fixup
Jason Boyer [Tue, 15 Sep 2020 11:49:36 +0000 (07:49 -0400)]
LP#1849212: oils_i18n_gettext fixup

Each call to oils_i18n_gettext should have a unique id per class,
this patch adjusts the call for acmr so translations (and tests)
will work correctly.

Signed-off-by: Jason Boyer <JBoyer@equinoxinitiative.org>
2 years agoLP#1849212: stamp schema update
Galen Charlton [Tue, 15 Sep 2020 01:21:55 +0000 (21:21 -0400)]
LP#1849212: stamp schema update

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
2 years agoLP#1849212: (follow-up) numerous fixes to open-ils.courses.detach_material
Galen Charlton [Tue, 15 Sep 2020 01:18:26 +0000 (21:18 -0400)]
LP#1849212: (follow-up) numerous fixes to open-ils.courses.detach_material

This patch ensures that when an item is taken off of reserve, any
previous item and call number values are correctly restored.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
2 years agoLP#1849212: (follow-up) avoid open-ils.courses drone starvation
Galen Charlton [Tue, 15 Sep 2020 01:16:30 +0000 (21:16 -0400)]
LP#1849212: (follow-up) avoid open-ils.courses drone starvation

In particular, ensure that open-ils.courses.course_materials.retrieve.atomic
will return.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
2 years agoLP#1849212: (follow-up) fix adding an item to a course with alt call number
Galen Charlton [Tue, 15 Sep 2020 01:15:03 +0000 (21:15 -0400)]
LP#1849212: (follow-up) fix adding an item to a course with alt call number

open-ils.cat.call_number.find_or_create expects an integer to identify
the owning library, not a fieldmapper object.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
2 years agoLP#1849212: (follow-up) fixes to removing users from course
Galen Charlton [Tue, 15 Sep 2020 01:14:05 +0000 (21:14 -0400)]
LP#1849212: (follow-up) fixes to removing users from course

* correctly extract the IDs of the user mappings to remove
* update the grid upon completion of the deletions

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
2 years agoLP#1849212: (follow-up) fix edit course user dialog
Galen Charlton [Tue, 15 Sep 2020 01:13:31 +0000 (21:13 -0400)]
LP#1849212: (follow-up) fix edit course user dialog

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
2 years agoLP#1849212: (follow-up) refresh grid upon removing course material
Galen Charlton [Tue, 15 Sep 2020 01:12:24 +0000 (21:12 -0400)]
LP#1849212: (follow-up) refresh grid upon removing course material

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
2 years agoLP1849212: don't send empty courseId arrays to pcrud
Jane Sandberg [Fri, 11 Sep 2020 19:49:10 +0000 (12:49 -0700)]
LP1849212: don't send empty courseId arrays to pcrud

Also removes some unneeded Import calls

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
2 years agoLP1849212: Correct upgrade script
Jason Boyer [Fri, 11 Sep 2020 16:43:20 +0000 (12:43 -0400)]
LP1849212: Correct upgrade script

Re-align permission ids and correct syntax errors in the course reserves upgrade script.
I'm not convinced the boolean_facet metabib class should exist simply to add "course reserves, Y/N?"
and in any case can not function as is because adding metabib field classes requires additional
field_entry tables which are missing from the seed data and upgrade script.

Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
2 years agoLP1849212: Workstation ou should be the default owning library for course term
Jane Sandberg [Mon, 7 Sep 2020 20:57:41 +0000 (13:57 -0700)]
LP1849212: Workstation ou should be the default owning library for course term

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
2 years agoLP1849212: Clarify default values in MARC simplified editor
Jane Sandberg [Mon, 7 Sep 2020 20:56:45 +0000 (13:56 -0700)]
LP1849212: Clarify default values in MARC simplified editor

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
2 years agoLP1849212: OPAC course browse, search, display improvements
Jane Sandberg [Thu, 3 Sep 2020 16:00:18 +0000 (09:00 -0700)]
LP1849212: OPAC course browse, search, display improvements

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
2 years agoLP1849212: lint
Jane Sandberg [Wed, 2 Sep 2020 19:32:07 +0000 (12:32 -0700)]
LP1849212: lint

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
2 years agoLP1849212: some fixes to seed data and upgrade script
Jane Sandberg [Wed, 2 Sep 2020 19:03:31 +0000 (12:03 -0700)]
LP1849212: some fixes to seed data and upgrade script

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
2 years agoLP1849212: Use terminology: Course Name, not Course Title
Jane Sandberg [Wed, 2 Sep 2020 15:42:29 +0000 (08:42 -0700)]
LP1849212: Use terminology: Course Name, not Course Title

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
2 years agoLP1849212: Use a set list of roles for course users
Jane Sandberg [Wed, 2 Sep 2020 04:24:08 +0000 (21:24 -0700)]
LP1849212: Use a set list of roles for course users

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
2 years agoLP1849212: improve fleshing in course service
Jane Sandberg [Tue, 1 Sep 2020 16:19:35 +0000 (09:19 -0700)]
LP1849212: improve fleshing in course service

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
2 years agoLP1849212: update loadChildren syntax
Jane Sandberg [Tue, 1 Sep 2020 16:07:24 +0000 (09:07 -0700)]
LP1849212: update loadChildren syntax

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
2 years agoLP1849212: Improvements to the Simplified Marc Editor
Jane Sandberg [Wed, 26 Aug 2020 22:51:32 +0000 (15:51 -0700)]
LP1849212: Improvements to the Simplified Marc Editor

* Templates can now set multiple subfields for the same field
* Templates can now set indicator values
* Editor now allows user to choose a MARC Form and Type
* Improvements to the course associate brief record interface
to use these improvements

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
2 years agoLP1849212: Grid improvements
Jane Sandberg [Wed, 26 Aug 2020 18:30:02 +0000 (11:30 -0700)]
LP1849212: Grid improvements

- Correcting some grid column labels
- Correcting ViewChild static flags, allowing grid refresh
- Also, remove the static: false flag, since it is no longer necessary

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
2 years agoLP1849212: Consult physical_loc to determine if an ou is using course materials module
Jane Sandberg [Wed, 26 Aug 2020 18:22:22 +0000 (11:22 -0700)]
LP1849212: Consult physical_loc to determine if an ou is using course materials module

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
2 years agoLP 1849212: Add course term functionality
Jane Sandberg [Sat, 15 Aug 2020 15:21:46 +0000 (08:21 -0700)]
LP 1849212: Add course term functionality

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
2 years agoLP1849212: allow call number change when course is at a system or consortium level
Jane Sandberg [Sat, 15 Aug 2020 02:56:11 +0000 (19:56 -0700)]
LP1849212: allow call number change when course is at a system or consortium level

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
2 years agoLP1849212: display course information in catalog for record-only acmcm entries
Jane Sandberg [Fri, 14 Aug 2020 23:55:02 +0000 (16:55 -0700)]
LP1849212: display course information in catalog for record-only acmcm entries

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
2 years agoLP1849212: release notes
Jane Sandberg [Mon, 10 Aug 2020 03:52:10 +0000 (20:52 -0700)]
LP1849212: release notes

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
2 years agoLP1849212: Improvements to course materials admin UI
Jane Sandberg [Mon, 10 Aug 2020 03:03:26 +0000 (20:03 -0700)]
LP1849212: Improvements to course materials admin UI

- Better order for acmc fm-editor
- Add original item attributes to the course materials list
- trim whitespace from barcodes
- accessible labels in the course page
- refactor course users
- fix incorrect paths in course materials grid columns

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
2 years agoLP1849212: Make OPAC header links consistent
Jane Sandberg [Sun, 9 Aug 2020 20:53:40 +0000 (13:53 -0700)]
LP1849212: Make OPAC header links consistent

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
2 years agoLP1849212: Use ngbNav instead of deprecated ngbTabset
Jane Sandberg [Fri, 7 Aug 2020 13:44:48 +0000 (06:44 -0700)]
LP1849212: Use ngbNav instead of deprecated ngbTabset

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
2 years agoLP1849212: Allow users to detach all types of materials from courses
Jane Sandberg [Fri, 24 Jul 2020 20:16:25 +0000 (13:16 -0700)]
LP1849212: Allow users to detach all types of materials from courses

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
2 years agoLP1849212: Course browse and search can be called without locg param in URL
Jane Sandberg [Fri, 24 Jul 2020 05:02:35 +0000 (22:02 -0700)]
LP1849212: Course browse and search can be called without locg param in URL

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
2 years agoLP1849212: Users can attach brief bib records and e-resources to courses
Jane Sandberg [Wed, 15 Jul 2020 07:45:59 +0000 (00:45 -0700)]
LP1849212: Users can attach brief bib records and e-resources to courses

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
2 years agoLP1849212: add sample data for course materials module
Jane Sandberg [Mon, 20 Jul 2020 04:23:06 +0000 (21:23 -0700)]
LP1849212: add sample data for course materials module

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
2 years agoLP1849212: add missing coust to seed values
Jane Sandberg [Thu, 23 Jul 2020 14:16:43 +0000 (07:16 -0700)]
LP1849212: add missing coust to seed values

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
2 years agolp1849212 Course Browse
Kyle Huckins [Tue, 11 Feb 2020 20:08:57 +0000 (20:08 +0000)]
lp1849212 Course Browse

- Add Course Browse UI
- Allow browsing courses by Course Number and Title
- Add YAOUS to allow/disallow browsing by Instructor.
- Minor code cleanup

Signed-off-by: Kyle Huckins <khuckins@catalyte.io>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
2 years agoLP1859728: Course edit page fm-editor should have the update mode
Jane Sandberg [Fri, 17 Jan 2020 04:08:48 +0000 (20:08 -0800)]
LP1859728: Course edit page fm-editor should have the update mode

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
2 years agoLP1859728: Add missing column to course materials user table
Jane Sandberg [Wed, 15 Jan 2020 02:52:44 +0000 (18:52 -0800)]
LP1859728: Add missing column to course materials user table

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
2 years agoLP1849212: Commas missing from data seed values
Jane Sandberg [Tue, 14 Jan 2020 23:13:39 +0000 (15:13 -0800)]
LP1849212: Commas missing from data seed values

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
2 years agoLP1849212: Angular Course Page improvements, OPAC course search
Kyle Huckins [Tue, 10 Dec 2019 19:03:17 +0000 (19:03 +0000)]
LP1849212: Angular Course Page improvements, OPAC course search

- Apply Course Users functionality to Angular Course Page
Admin UI.
- Condense Course User functionality into its own component,
usable as a dialog and inline.
- Condense Course Material functionality into its own component,
usable as a dialog and inline.
- Add Return to Course List button
- Move Archive Course button above tabs
- Allow Editing of Course Users and Materials
- Set datatype of is_public on Course User to 'bool' from 'boolean'
- Relabel is_public on Course User to "OPAC Viewable?"
- Undo removal of fm-editor in Course List
- Users with the MANAGE_RESERVES permission who are opted
into the course module can view a new Course Info tab on
the item record.
- Course Info tab displays a list of all courses(with link
to the Admin Course Page) item is associated with, and a
list of all instructors associated with those courses.
- Improvements to open-ils.circ.course_users.retrieve.
- Improve visuals when logged in as administrator.
- Implement Course Search OPAC page, based on Advanced Catalog
Search
- Edit Searchbar to include entry for Course Search

Signed-off-by: Kyle Huckins <khuckins@catalyte.io>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
2 years agoLP1849212 Associtate and Disassociate Course With Instructors
Zavier Banks [Mon, 9 Dec 2019 16:52:39 +0000 (16:52 +0000)]
LP1849212 Associtate and Disassociate Course With Instructors

Creating a component that associates and disassociates instructors with
courses using the course list.

Signed-off-by: Zavier Banks <zbanks@catalyte.io>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
2 years agolp1849212: OPAC course material circulation modifier
Kyle Huckins [Mon, 9 Dec 2019 18:53:03 +0000 (18:53 +0000)]
lp1849212: OPAC course material circulation modifier

- View Circulation Modifier column on Course Materials
while in OPAC record view.

Signed-off-by: Kyle Huckins <khuckins@catalyte.io>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
 Changes to be committed:
modified:   Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Record.pm
modified:   Open-ILS/src/templates/opac/parts/record/copy_table.tt2

Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
2 years agolp1849212: Course Admin Page and OPAC improvements
Kyle Huckins [Fri, 6 Dec 2019 07:17:53 +0000 (07:17 +0000)]
lp1849212: Course Admin Page and OPAC improvements

- Double-clicking on a course in the Course Reserves List will
up a dedicated admin page for an individual course, featuring
tabs for Editing and managing Course Materials.
- Add bannerStyle and bannerIcon parameters to
eg-staff-banner to improve eg-staff-banner
accessability
- Improve UX of Course Page
- Properly disable inputs and buttons when course
is already archived.
- Change links in Angular Catalog to navigate the user to the
Admin Course Page.
- Prevent users from associating duplicate items to a
course.
- Remove unnecessary artifact from course page html
- Implement Course column to view Course Numbers of classes associated
with individual copies.
- Add a record column to course_module_course_materials
to improve efficiency of API and service methods.
- Add previous circ_modifier adjustments to upgrade script
- Provide Associated Course names and numbers on
OPAC Catalog search results.
- Fixed typo for User Role field, now matcheing DB column, usr_role
- Added boolean "is_public" to differentiate between a role that
should be viewable by anyone on the OPAC.
- Perl Module and Course Page displaying name and course
number of course, as well as names/roles of publicly viewable
members, course details, and a table of all materials associated
with the course.
- URL listed as eg/opac/course/[COURSE_ID]
- Ensure Shelving Location input checkbox
ticks when selecting a value.
- Ensure temporary value inputs are not
cleared when entering a new item.
- Fully select contents of Barcode input
field when selected.
- Clear bBarcode input upon hitting enter.
- Add a new tab for managing Users associated with
the course, in preparation for the User Dialog code.
- Remove excess whitespace on OPAC course page.

Signed-off-by: Kyle Huckins <khuckins@catalyte.io>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
2 years agolp1849212 Angular Catalog Course integration
Kyle Huckins [Mon, 25 Nov 2019 22:06:04 +0000 (22:06 +0000)]
lp1849212 Angular Catalog Course integration

- Add a column retrieving the names of courses linked to materials
when opted into the Course Reserves functionality.
- Expand the bib record summary when opted in to display all courses
associated with an item.
- Display associated courses on Search Results UI
- Move bulk of Associate Item funcitonality into Course Service

Signed-off-by: Kyle Huckins <khuckins@catalyte.io>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
2 years agolp1849212 - Move Course Service to staff/share directory
Kyle Huckins [Mon, 25 Nov 2019 20:46:53 +0000 (20:46 +0000)]
lp1849212 - Move Course Service to staff/share directory

Signed-off-by: Kyle Huckins <khuckins@catalyte.io>
 Changes to be committed:
modified:   Open-ILS/src/eg2/src/app/staff/admin/local/course-reserves/course-associate-material.component.ts
modified:   Open-ILS/src/eg2/src/app/staff/admin/local/course-reserves/course-list.component.ts
modified:   Open-ILS/src/eg2/src/app/staff/admin/local/course-reserves/course-reserves.module.ts
renamed:    Open-ILS/src/eg2/src/app/staff/admin/local/course-reserves/course.service.ts -> Open-ILS/src/eg2/src/app/staff/share/course.service.ts

Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
2 years agolp1849212 Move Course Reserves to Local Admin
Kyle Huckins [Mon, 25 Nov 2019 18:46:59 +0000 (18:46 +0000)]
lp1849212 Move Course Reserves to Local Admin

- Move the Course Reserves admin UI to Local Admin
instead of Server Admin

Signed-off-by: Kyle Huckins <khuckins@catalyte.io>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
modified:   Open-ILS/src/eg2/src/app/staff/admin/local/admin-local-splash.component.html
renamed:    Open-ILS/src/eg2/src/app/staff/admin/server/course-reserves/course-associate-material.component.html -> Open-ILS/src/eg2/src/app/staff/admin/local/course-reserves/course-associate-material.component.html
renamed:    Open-ILS/src/eg2/src/app/staff/admin/server/course-reserves/course-associate-material.component.ts -> Open-ILS/src/eg2/src/app/staff/admin/local/course-reserves/course-associate-material.component.ts
renamed:    Open-ILS/src/eg2/src/app/staff/admin/server/course-reserves/course-list.component.html -> Open-ILS/src/eg2/src/app/staff/admin/local/course-reserves/course-list.component.html
renamed:    Open-ILS/src/eg2/src/app/staff/admin/server/course-reserves/course-list.component.ts -> Open-ILS/src/eg2/src/app/staff/admin/local/course-reserves/course-list.component.ts
renamed:    Open-ILS/src/eg2/src/app/staff/admin/server/course-reserves/course-reserves.module.ts -> Open-ILS/src/eg2/src/app/staff/admin/local/course-reserves/course-reserves.module.ts
renamed:    Open-ILS/src/eg2/src/app/staff/admin/server/course-reserves/course.service.ts -> Open-ILS/src/eg2/src/app/staff/admin/local/course-reserves/course.service.ts
renamed:    Open-ILS/src/eg2/src/app/staff/admin/server/course-reserves/routing.module.ts -> Open-ILS/src/eg2/src/app/staff/admin/local/course-reserves/routing.module.ts
modified:   Open-ILS/src/eg2/src/app/staff/admin/local/routing.module.ts
modified:   Open-ILS/src/eg2/src/app/staff/admin/server/admin-server-splash.component.html
modified:   Open-ILS/src/eg2/src/app/staff/admin/server/routing.module.ts

Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
2 years agoLP1849212: Fix installation issue with circ mod foreign key
Jane Sandberg [Thu, 5 Dec 2019 20:51:34 +0000 (12:51 -0800)]
LP1849212: Fix installation issue with circ mod foreign key

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
2 years agolp1849212: Archive Courses
Kyle Huckins [Wed, 20 Nov 2019 22:30:06 +0000 (22:30 +0000)]
lp1849212: Archive Courses

- Implement functionality to archive a course via the
admin course reserves list UI.
- Disassociate all items from a course and reinstate
their original fields if temporary fields were applied,
upon course archival.

Signed-off-by: Kyle Huckins <khuckins@catalyte.io>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
 Changes to be committed:
modified:   Open-ILS/examples/fm_IDL.xml
modified:   Open-ILS/src/eg2/src/app/staff/admin/server/course-reserves/course-list.component.html
modified:   Open-ILS/src/eg2/src/app/staff/admin/server/course-reserves/course-list.component.ts
modified:   Open-ILS/src/sql/Pg/040.schema.asset.sql
modified:   Open-ILS/src/sql/Pg/upgrade/XXXX.schema.course-materials-module.sql

Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
2 years agoLP1849212: tidying up course reserves UIs
Kyle Huckins [Thu, 7 Nov 2019 18:38:04 +0000 (18:38 +0000)]
LP1849212: tidying up course reserves UIs

- Remove RowFlair and ClassCallback from Course Reserves
Grid.
- Implement dialog to view course materials associated with
a particular course in the course list admin UI.
- Implement actions to associate and disassociate materials with
a specific course.
- Optionally apply temporary Call Number, Circ Modifier, Item
Status, and Shelving Location when associating an item with a
course.
- Reapply original values of the above-mentioned fields when
disassociating an item from a course.
- Move disassociation code into Course Service.
- Automatically disassociate items and return them
to their original state when deleting a course.

Signed-off-by: Kyle Huckins <khuckins@catalyte.io>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
2 years agoLP#1849212 Course List Ui
Zavier Banks [Thu, 24 Oct 2019 18:26:40 +0000 (18:26 +0000)]
LP#1849212 Course List Ui

Added a grid component that displays the available data, specified
by the class, while also modifying the routing, so the admin splash
page links to the created component.

Signed-off-by: Zavier Banks <zbanks@catalyte.io>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
2 years agoLP1849212: Course Reserves database and IDL
Kyle Huckins [Fri, 18 Oct 2019 18:05:57 +0000 (18:05 +0000)]
LP1849212: Course Reserves database and IDL

- Create MANAGE_RESERVES permission.
- Create IDL Object for Courses.
- Create table within asset schema for Courses, containing an id,
a name, a course number, a section number, and an owning library.
- Add IDL Class and asset table to map actor.usr and
asset.course_module_course, along with an optional
string value for the user's role in the course. If
desired, this can later be fleshed out into a separate
course role table.
- Create IDL Class & Table for Course Materials
- Create IDL Class & Table for Non-Cataloged Course Materials
- YAOUS introduced to allow opting into the Course Materials
module functionality.
- Change instances of non-cat-course_materials to non_cat_course_materials

Signed-off-by: Kyle Huckins <khuckins@catalyte.io>
Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
2 years agoLP#1887196: add release notes
Galen Charlton [Mon, 14 Sep 2020 16:38:54 +0000 (12:38 -0400)]
LP#1887196: add release notes

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
2 years agoLP#1887196: RemoteAuth get_patron_info should flesh home_ou
Jeff Davis [Thu, 20 Aug 2020 17:55:37 +0000 (10:55 -0700)]
LP#1887196: RemoteAuth get_patron_info should flesh home_ou

Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
2 years agoLP#1887196: fix PatronAPI dump
Jeff Davis [Thu, 20 Aug 2020 17:54:34 +0000 (10:54 -0700)]
LP#1887196: fix PatronAPI dump

Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
2 years agoLP#1887196: RemoteAuth PatronAPI authentication
Jeff Davis [Sat, 21 Dec 2019 00:28:55 +0000 (16:28 -0800)]
LP#1887196: RemoteAuth PatronAPI authentication

Signed-off-by: Jeff Davis <jeff.davis@bc.libraries.coop>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
2 years agoLP#1887196: RemoteAuth: add method to retrieve detailed patron info
Jeff Davis [Fri, 20 Dec 2019 23:15:43 +0000 (15:15 -0800)]
LP#1887196: RemoteAuth: add method to retrieve detailed patron info

Signed-off-by: Jeff Davis <jeff.davis@bc.libraries.coop>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
2 years agoRevert "LP1895395: Use Angular AOT compiler for ng build"
Galen Charlton [Mon, 14 Sep 2020 14:56:08 +0000 (10:56 -0400)]
Revert "LP1895395: Use Angular AOT compiler for ng build"

This reverts commit 2d973ca7a71409e68d567510fe764fa35d9bd799.

2 years agoLP1895395: Use Angular AOT compiler for ng build
Jane Sandberg [Sat, 12 Sep 2020 15:22:54 +0000 (08:22 -0700)]
LP1895395: Use Angular AOT compiler for ng build

As of angular 9, the angular documentation recommends using the AOT
compiler for ng build: https://angular.io/guide/ivy

This would provide a bit more consistency for developers (since some
errors only display in AOT, others only display in JIT, and we want to
make sure that the AOT in particular is error-free so that builds don't
break).

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
2 years agoLP#1749475: stamp schema update
Galen Charlton [Mon, 14 Sep 2020 13:46:43 +0000 (09:46 -0400)]
LP#1749475: stamp schema update

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
2 years agoLP#1749475: Signed off and fixed syntax error in upgrade script.
Michele Morgan [Sun, 13 Sep 2020 03:08:32 +0000 (23:08 -0400)]
LP#1749475: Signed off and fixed syntax error in upgrade script.

Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
2 years agoLP#1749475: Safer upgrade script
Mike Rylander [Tue, 25 Aug 2020 19:25:08 +0000 (15:25 -0400)]
LP#1749475: Safer upgrade script

This modifies the database upgrade script to avoid overwriting the
existing templates if they have been differ from the default supplied
in the most recent seed data.

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
2 years agoLP#1749475 Remove extra whitespace from email trigger template
Michele Morgan [Tue, 25 Aug 2020 13:33:09 +0000 (09:33 -0400)]
LP#1749475 Remove extra whitespace from email trigger template

Removes extra line breaks from email template output.

Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
2 years agoLP#1749475 Alter admin page field names for clarity
Michele Morgan [Mon, 24 Aug 2020 20:34:41 +0000 (16:34 -0400)]
LP#1749475 Alter admin page field names for clarity

To clarify for users of the admin pages, change the following labels:

Trigger Event Definition Group Configuration:

- change 'Definition ID' to 'Group ID'

Trigger Event Definition Group Member Configuration:

- change 'Definition ID' to 'ID'
- change 'Definition' to 'Event Definition'

Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
2 years agoLP#1749475: add release notes
Galen Charlton [Fri, 3 Jan 2020 22:05:57 +0000 (17:05 -0500)]
LP#1749475: add release notes

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
2 years agoLP#1749475: (follow-up) fix SendEmail's preview check
Galen Charlton [Fri, 3 Jan 2020 21:52:17 +0000 (16:52 -0500)]
LP#1749475: (follow-up) fix SendEmail's preview check

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
2 years agoLP#1749475: (follow-up) move admin interfaces from Local to Server
Galen Charlton [Fri, 3 Jan 2020 20:40:46 +0000 (15:40 -0500)]
LP#1749475: (follow-up) move admin interfaces from Local to Server

The spec called for the Event Definition Groups and Event Definition
Group Members admin interfaces to be put under Local Administration,
but the Angular local admin interfaces didn't exist when the feature
was originally submitted.

This patch also fixes "defintion" typos.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
2 years agoLP#1749475 Make context variable more explicit
Dan Wells [Thu, 21 Feb 2019 15:50:07 +0000 (10:50 -0500)]
LP#1749475 Make context variable more explicit

We are dealing in this area with two potential contexts: the context
of the holdings, and the context of the event to process the request.

Let's be a little more explicit by using $event_context_org rather than
$context_org for the second, and $holdings_context_org for the first.

Signed-off-by: Dan Wells <dbw2@calvin.edu>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
2 years agoLP#1749475 Improve API variable handling
Dan Wells [Thu, 21 Feb 2019 15:47:25 +0000 (10:47 -0500)]
LP#1749475 Improve API variable handling

Because we are using positional arguments, but the position is off by
one due to the previous API, these arguments were difficult to assign
cleanly.  This is an attempt to make it a little more legible, though
ultimately, we should strongly consider an options hash for the new
additions.

Signed-off-by: Dan Wells <dbw2@calvin.edu>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
2 years agoLP#1749475 Improve error handling in send_event_email_output
Dan Wells [Thu, 21 Feb 2019 16:08:33 +0000 (11:08 -0500)]
LP#1749475 Improve error handling in send_event_email_output

This code was borrowed from a few other places, so it still had the
$stat variable, but wasn't doing anything with it.  We might as well
go a step further and borrow the error handling that variable is there
for.

Ultimately, email handling should probably moved out to a utility
function rather than spread about.

Signed-off-by: Dan Wells <dbw2@calvin.edu>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
2 years agoLP#1749475 Fix template typos
Dan Wells [Thu, 21 Feb 2019 17:04:38 +0000 (12:04 -0500)]
LP#1749475 Fix template typos

The word "previewing" needed correction in both preview templates.

Signed-off-by: Dan Wells <dbw2@calvin.edu>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
2 years agoLP#1749475 Protect against missing pubdate in biblio sort
Dan Wells [Thu, 21 Feb 2019 16:31:20 +0000 (11:31 -0500)]
LP#1749475 Protect against missing pubdate in biblio sort

The lack of date1 data in some records was causing this code to crash,
as an attempt was made to read textContent from nothingness.  Similar
to the publisher code right above, let's protect against such cases.

Signed-off-by: Dan Wells <dbw2@calvin.edu>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org>