Dan Briem [Wed, 25 Aug 2021 14:24:12 +0000 (10:24 -0400)]
LP#1759382 Setting: staff placed holds default to workstation
New org unit setting to always default the pickup location to
the workstation when placing holds as staff, regardless of the
patron's preferred pickup location.
The setting applies to staff placed holds in the Angular and
traditional catalogs.
Priority for determining the default pickup location when
placing holds as staff:
1. workstation if circ.staff_placed_holds_default_to_ws_ou
2. user preferred location if opac.default_pickup_location
3. workstation if circ.staff_placed_holds_fallback_to_ws_ou
4. user home org unit
Jason Boyer [Mon, 19 Apr 2021 13:37:27 +0000 (09:37 -0400)]
LP1925028: Make Hold/Copy Ratio Reports Consistent, Add a By Home Library Version
Use ahcm for all hold/copy ratio reporting sources so the counts are more
consistent, ignore metarecord hold copies (by default) and the copies from
frozen or captured holds.
Also a Hold/Copy Ratio per Bib and Home Library source is added.
Sponsored-by: Westchester Library System Signed-off-by: Jason Boyer <JBoyer@equinoxinitiative.org> Signed-off-by: Rogan Hamby <rogan.hamby@gmail.com> Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Chris Sharp [Tue, 23 Mar 2021 23:03:32 +0000 (19:03 -0400)]
LP#1921057 - Expand reporter.demographic to include detailed age breakdown
Add "age_division" column to reporter.demographic. Expose the new
column to the reporter as "Detailed Age Division" resulting in the following
options:
Child 0-5 Years Old
Child 6-12 Years Old
Teen 13-17 Years Old
Adult 18-25 Years Old
Adult 50-59 Years Old
Adult 50-59 Years Old
Adult 60-69 Years Old
Adult 70+
Bill Erickson [Wed, 12 May 2021 20:31:20 +0000 (16:31 -0400)]
LP1928258 Vandelay separate bib edit update option
Adds a new field "Update Bib Edit Date" to Vandelay merge profiles which
allows users to update the edit date and editor information on a
merged/overlaid bib record without also having to modify the bib source.
For backwards compatibility, any existing merge profiles that have
"Update Bib Source" applied will also get "Update Bib Edit Date" applied.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Christine Morgan <cmorgan@noblenet.org> Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
Bill Erickson [Wed, 12 May 2021 15:46:01 +0000 (11:46 -0400)]
LP1941764 Import from queue propagate form inputs
When importing records from an existing Vandelay queue, ensure the
selected queue, its match set, its match bucket, and its holdings import
profile are propagated into the import form.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Christine Morgan <cmorgan@noblenet.org> Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
Signed-off-by: Michele Morgan <mmorgan@noblenet.org> Signed-off-by: Tiffany Little <tlittle@georgialibraries.org> Signed-off-by: Jason Boyer <JBoyer@equinoxOLI.org>
Building on the previous commit from Jason Etheridge, this adds an
Angular reimplementation of the item-oriented TEL variant. In addition,
it separates the grid settings persist key and creates the YAOUSen
needed to save those grid settings.
Because these interfaces make use of the flattener service to drive grid
construction and data retrieval, staff will have to have the appropriate
VIEW_USER permission to be able to see patron related data in the
item-oriented grid.
Funding for these interfaces comes from PaILS, for the patron-oriented
interface, and from ECDI, for the item-oriented one.
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Dawn Dale <ddale@georgialibraries.org> Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Jason Etheridge [Wed, 29 Jul 2020 12:11:33 +0000 (08:11 -0400)]
LP1207533 patron triggered events log
* first cut at schema
* setting context_user, context_library, and context_bib on action_trigger.event
when building the environment
* toward UI
The original interface still exists and is used when spawned from Item Status,
but for the patron interface, the Other -> Triggered Events / Notifications
action will now spawn a new tab with the new interface.
* data retention
Break the link between actor.usr and action_trigger.event when purging user data
or aging circulations (as best as we can; some textual links may exist in
action_trigger.event_output--i.e. overdue notices)
* release notes
* live tests
Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org> Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Dawn Dale <ddale@georgialibraries.org> Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
LP#1642000 - Bootstrap Opac - Add CN Prefix, Suffix and Parts to opac checked out item display
Add Call Number Prefix, Call Number Suffix and Part to the call number column of
checked out items display. Also sort based on the label_sortkey value of those fields.
LP#1642000 - Add CN Prefix, Suffix and Parts to opac checked out item display
Add Call Number Prefix, Call Number Suffix and Part to the call number column of
checked out items display. Also sort based on the label_sortkey value of those fields.
Testing Notes:
Check out an asortment of copies to your patron account. Pick a mix of items with
Call number prefix and suffix, and some with parts.
View the list of checked out items in the myopac interface.
Notices that no call number suffix or prefix are showing, and no parts info is showing.
Apply the patch and see that the extra info is showing. Also try sorting on call number column.
Galen Charlton [Thu, 5 Aug 2021 21:55:18 +0000 (17:55 -0400)]
LP#1844121: prevent staff login by expired barcode
open-ils.auth.authenticate.init accepts an identifier as its
sole parameter, then determines whether it looks like a
username or barcode and retrieves the patron's password
salt as the seed accordingly.
open-ils.auth.authenticate.complete can accept the identifier
via the 'identifier', 'username', or 'barcode' keys, but the
key used does not need to match how .init found the patron.
As a consequence, the .init/.complete dance can retrieve the
patron by barcode but handle the barcode value as if it were
a username, thereby bypassing the check of whether the barcode
was inactive. In particular, the AngularJS staff client login
process does this, meaning that staff members can log in to the
staff client via the AngularJS form using an expired barcode.
This is not good. The OPAC explicitly blocks logging in using an
inactive barcode because it checks the identifier type and sets
the key passed to .complete accordingly. The Angular staff login
page also prevents logging in using an inactive barcode because
(a) it uses open-ils.auth.login, which doesn't have the same
problem and (b) it forces the identifier to be marked as a user
name regardless.
NOTE: this means that the Angular staff login form prevents staff
from logging in via barcode, which potentially is a regression as
compared to the AngularJS side (or, alternatively, is providing
additional necessary strictness).
This patch avoids the problem by having .complete inspect the
cached seed created by .init to determine how the user was ultimately
found.
Some alternative approaches that were rejected include:
[1] Having AngularJS just mirror Angular. Problem: if some staff
users are used to using their barcode to log in, doing
this would cause an immediate problem. I note that because
the staff interface URL is commonly expressed as
https://library.example/eg/staff, is currently far more common
for the staff interface to be logged into via the AngularJS
form rather than the Angular one.
[2] Having AngularJS use open-ils.auth.login, but make it and
Angular use 'identifier' as the key rather than 'username'.
Problem: while this would have the desired effect if you
only use native authentication, if you're using open-ils.auth_proxy,
it won't work - open-ils.auth_proxy.login doesn't recognize an
'identifier' parameter. While that could be changed, it
is more invasive.
To test
-------
[1] Set up a staff user that has a username, an active barcode,
and an inactive barcode.
[2] Log in to the AngularJS staff interface (/eg/staff) using
the username, the active barcode, and the inactive one.
[3] Note that you are permitted to log in with all three identifiers.
[4] Apply the patch and repeat step 2.
[5] This time, logging in using the inactive barcode should
fail.
[6] Verify that other login types continue to work as expected:
- Angular staff login form
- OPAC
- SIP2 terminal login
- SIP2 user authentication
- operator change (Angular and AngularJS)
- Web-based self-check
[7] Extra credit: test logging in via open-ils.auth_proxy with
it falling back to native authentication.
Signed-off-by: Galen Charlton <gmc@equinoxOLI.org> Signed-off-by: Shula Link <slink@gchrl.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Terran McCanna [Fri, 18 Jun 2021 22:12:08 +0000 (18:12 -0400)]
LP1904754 Former precat still displays precat info
This fixes a display issue where the precat title and author
were still displaying once the record was no longer a precat,
which effectively duplicated the title and author.
Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org> Signed-off-by: Jason Boyer <JBoyer@equinoxOLI.org> Signed-off-by: Bill Erickson <berickxx@gmail.com>
- When creating a new funding source, default the active flag
in the modal to checked
- Disable actions to allocate from a funding source or
apply credits to it if it is not active
This adds an active flag to funding sources. It also adds limits the
available funding sources in the Create Allocation dropdown to only
active funding sources.
Jason Etheridge [Tue, 9 Mar 2021 23:02:30 +0000 (18:02 -0500)]
lp1846354 additional tweaks and fixes
* fixes for SIP
* patron merge & purge
* also tweak some storage code, which probably isn't being used for this anywhere
* remove some legacy note code
* don't filter out penalties with deleted messages for Notes count in patron staff display
Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org> Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
This patch ensures that the new Angular missing pieces interface
can continue to create penalties. Additional work will be required
on the Angular dialog to match the other changes.
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org> Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Jason Etheridge [Tue, 26 Jan 2021 20:31:35 +0000 (15:31 -0500)]
lp1846354 misc fixes
* better notes handling and schema catchup
- better linking for actor.usr_note
- schema changes for pristine install
* don't hide referenced deleted messages from staff
* don't exclude archived messages from unread Messages count in OPAC
* migrate unmatched public notes as deleted user messages
* don't use 'Penalty Note' as a message title
Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org> Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org> Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
- handle case where actor.usr_message starts off empty
- reorder the updates and alterations of ausp so that
the upgrade can be done in a single transaction
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org> Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org> Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org> Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
This commit makes minor adjustments to the upgrade script to speed it up
in the face of larger data sets.
NOTE: The DO blocks that provided assertion tests during the the upgrade
have been commented out, as they primarily test that the preceding
insert did not break in some way that would have inserted data from the
wrong table into the intermediate staging tables. They take a very long
time to run in some cases, but are left here for testers to enable in
order to confirm that they would pass in production.
* Move the deleted filter out of the query for speed
* Rework aum and ausp to use the same sequence, and aump view to use UNION ALL
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org> Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org> Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Jason Etheridge [Wed, 8 Jan 2020 14:02:52 +0000 (09:02 -0500)]
lp1846354 toward consolidated patron notes
* changes to IDL, DB, and upgrade script
A new view actor.usr_message_penalty and associated IDL entry will be created
for use with populating the staff Messages interface. It will perform a full
outer join between penalties and user messages.
The default IDL permissions for user messages will remain VIEW_USER and
UPDATE_USER.
The view that populates the Message Center will be changed slightly to ensure
that staff-only messages are never retrieved for patrons. The Date column in
the grid/list view will show the edit_date value if populated in lieu of the
create_date value. The message view will explicitly show an Edit Date label and
value below the Date row if set.
The actor.usr_message table will gain a new boolean column called pub, which
will default to false.
The actor.usr_message table will also gain a stop_date column for handling
archival as with standing penalties.
The actor.usr_message table will also gain editor and edit_date columns.
The actor.usr_message_limited view will be changed to only include rows where
pub is true.
As part of the upgrade script, Patron alert messages will be migrated as
ALERT_NOTE penalties and linked User Messages. A database assertion will ensure
that this has happened prior to the removal of the alert_message field from the
actor.usr table. The field will also be removed from the corresponding IDL
entry. The sending_lib column for these user messages and the org unit field
for these penalties will be set to the top org from the org hierarchy.
Also, non-public entries in the actor.usr_note table will be migrated as
non-public User Messages. Subject to a database assertion that this has
happened, the table actor.usr_note and the actor.convert_usr_note_to_message
trigger will be removed. The corresponding IDL entry will also be removed. The
sending_lib column for these user messages will be set to the top org from the
org hierarchy.
Also, rows from actor.org_unit_setting for
ui.staff.require_initials.patron_info_notes will be migrated to
ui.staff.require_initials.patron_standing_penalty. Collisions will be recorded
in a text file but otherwise dropped. The row in config.org_unit_setting_type
for ui.staff.require_initials.patron_info_notes will then be removed. The label
and description for ui.staff.require_initials.patron_standing_penalty in
config.org_unit_setting_type will be edited to reflect the Notes/Penalties
labeling from the UI.
The actor.usr_standing_penalty table and associated IDL entry will gain a
foreign key column linking to actor.usr_message called usr_message, and the note
column itself will be migrated to User Messages. The usr_message field on the
penalties will be updated accordingly. Subject to a database assertion that
this has happened, the note field on the actor.usr_standing_penalty table will
be removed. The corresponding IDL entry will also be removed. The sending_lib
column for these user messages will be set to match the org_unit column from
their associated penalties.
* middle layer changes
The ApplyPatronPenalty A/T Reactor will be modified to create a user message if
needed instead of setting the note field on the created penalty, and will set
the new usr_message field accordingly.
The API method open-ils.actor.user.penalty.note.update will be similarly
adjusted, though it may edit or create a user message as needed.
The API method open-ils.actor.user.penalty.apply will also be modified to
create user messages in lieu of setting a note field. The sending_lib field
for such messages will be set to match the session's workstation library,
regardless of the org unit that actually gets applied to the penalty's org_unit
field. The org_unit field will use the value as passed by the caller, and no
longer do the org_unit_ancestor_at_depth adjustment that happens today.
Both penalty.note.update and penalty.apply will set the editor and edit date
columns on any linked user messages to the current time and staff member for
any already existing message that has its title or message value modified. The
read_date column will also be NULL'ed in such circumstances so that the message
will appear unread to the patron if public.
The react sub in Event.pm will be tweaked to explicitly set the pub field on
created user messages to true for Action/Trigger.
* OPAC changes
Surface the edit date for patron visible notes in the Message Center.
* staff client changes
References to Message or Messages in the UI, including the button bar that
spawns the interface, will be changed to Note and Notes.
The Alert Message field in the patron editor will be removed.
The Notes interface under Other -> Notes will be removed.
The Notes (and count) indicator in the patron summary sidebar will be removed.
The note count will instead be presented as part of the Notes nav button.
The patron summary sidebar and the "stop sign page" will be modified to
retrieve and display user messages linked to standing penalties that are
flagged as staff alerting. It will retain the same styling (i.e. red text) by
default.
The Messages interface, including the archived view, will be populated with a
combination of user messages and user penalties, which may or may not be linked
in pairs via a new foreign key on the penalties. For messages without
associated standing penalties, the sending_lib column will be used for the
implicit filtering on org units that standing penalties get now, based on the
workstation library. This combined view will result in new columns for the
interface. At minimum the following columns (subject to label changes) will be
displayed by default: Title, Message, Create Date, Creator, Library, and Patron
Visible. Columns such as Staff Alert, Org Depth, Block List, Ignore Proximity,
and Penalty Label will still be available.
The Apply Penalty / Message dialog will gain a new widget for toggling whether
or not a message is intended to be visible to the patron. The Edit message
version of the dialog will also show when/if a patron has read and/or deleted
the message. An entry field for the message title will be added. The dialog
will also gain an org selector to the right of the penalty type selector, which
will default to the workstation library, and will change based on the org depth
of any standing penalty type selected in the UI (either via the
Note/Alert/Block buttons or the penalty menu). This will be passed as the
org_unit field for a penalty instead of the workstation library and org depth
that is implicitly used today The sending_lib field for the user message will
always be set to the workstation library.
The Archive Penalty / Message action will be modified to work with both
penalties and user messages depending on what it is selected. If an archived
penalty has a linked user message, then both will have their archive fields
set. An archived user message may still be otherwise visible to the patron if
it is not marked as deleted or staff only.
The Remove Penalty / Message action will behave as normal for a selected
penalty. For a user message, linked or unlinked, the message will be flagged
as deleted and, even if public, will no longer show up in the patron's Message
Center.
* release notes
Patron notes, messages, alert messages, and standing penalties have been folded
into one Notes interface. Notes designated as public will show in the My Account
-> Message Center in the OPAC for patrons. The underlying data structure has
also changed with all notes living in the actor.usr_message table, so certain
reports may need to be adjusted.
* qa tests
* alert message wording
* set existing user messages to public
before adding new ones; also, remove a lingering reference to alert_message in
Storage/CDBI/actor.pm
* upgrade script tweaks
the main change is that we're creating SILENT_NOTE penalties for migrated
actor.usr_note's in order to preserve the creator. I'm also removing explicit
TEMP tables in case admins do want to preserve these staging tables (by
commenting out the DROP's at the bottom of the script).
* update auditors
fixes updating patrons and allowing them to login
one consequence of this is that old alert_messages in the auditor will be deleted
* add a WARNING to the release notes
about the auditor table
Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org> Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Ruth Frasur <rfrasur@gmail.com> Signed-off-by: Dawn Dale <ddale@georgialibraries.org> Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org> Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Adam Bowling [Fri, 23 Jul 2021 20:00:35 +0000 (16:00 -0400)]
LP1937875: Remove GitHub reference from package.js
Removes the call to GitHub (required under legacy circumstances),
since it can cause some machines lacking SSH keys for GitHub to
fail when "npm install" is run for the AngularJS web client.
Signed-off-by: Adam Bowling <abowling@emeralddata.net> Signed-off-by: Jason Boyer <JBoyer@equinoxOLI.org>
LP#1922273: (follow-up) adjust positioning of filters
This patch puts all of the filters in a single row div
but preserves the styling that displays up to four columns
of them on large screens. This way, if you use the library
setting to hide some of the filters, the ones that remain
won't end up randomly appearing in two rows unless you've
retained more than four of them.
Jeff Davis [Mon, 3 May 2021 22:21:02 +0000 (15:21 -0700)]
LP#1922273: use a setting to determine which advanced search filters are displayed in staff catalog
The TPAC allows admins to customize which search filters are available
in advanced search. This commit adds an org unit setting,
eg.staffcat.search_filters, which lets you customize search filters in
the staff catalog. The setting value should be an array of filter
types, e.g. ["item_lang","audience","lit_form"]. The standard set of
search filters is used when the settings are not set.
Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca> Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org> Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
Adds OPAC visible column to holdings grid in the Angular catalog.
Signed-off-by: Dan Briem <dbriem@wlsmail.org> Signed-off-by: Jennifer Pringle <jennifer.pringle@bc.libraries.coop> Signed-off-by: Bill Erickson <berickxx@gmail.com>
Jason Boyer [Fri, 20 Aug 2021 18:00:25 +0000 (14:00 -0400)]
LP1908614: Show the Age Hold Protection name in the staff catalog
Signed-off-by: Jason Boyer <JBoyer@equinoxOLI.org> Signed-off-by: Michele Morgan <mmorgan@noblenet.org> Signed-off-by: Bill Erickson <berickxx@gmail.com>
Jessica Woolford [Wed, 17 Mar 2021 20:31:30 +0000 (16:31 -0400)]
LP1786971 z39.50 using TCN instead of ID
This patch switches the target to overlays to the bib ID instead of the
TCN. This allows overlays to work for sites where TCN and bib ID are not
the same.
Signed-off-by: Jessica Woolford <jwoolford@biblio.org>
LP1786971 Z39.50 TCN-Bib ID display and wording
This adds the TCN to the Z39.50 interface when a record is
marked for overlay and the TCN does not match the Bib ID.
Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org> Signed-off-by: Mary Llewellyn <mllewell@biblio.org> Signed-off-by: Bill Erickson <berickxx@gmail.com>
Disables and gray's out the place hold button on records in the
Angular catalog that are deleted or have no holdable copies
unless the user has the perm PLACE_UNFILLABLE_HOLD.
To test:
* Search for records with and without any copies
* Search for records with and without holdable copies
* Search as user with and without the permission
PLACE_UNFILLABLE_HOLD
Signed-off-by: Dan Briem <dbriem@wlsmail.org> Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org> Signed-off-by: Bill Erickson <berickxx@gmail.com>
When cloning a patron record, the address gets set to pending and cannot
be fixed until the new patron record is saved.
The address creation steps for cloned records are a little different if
the library setting "Patron Registration: Cloned patrons get address copy" is
set, so test with that enabled and disabled. In our system we have that setting
enabled.
The issue is that the values come in as a string like 't' or 'f' and need to be converted
to a boolean value. That is done in the normal address loading code, but wasn't in
the cloning code.
I also added in a fix for the city limits flag not getting cloned which seems
like an related issue. This seems like it was just cosmetic, the city limits
does get set when the record is saved, based on the parent records address.
Testing Plan:
Before change:
1. Enable "Cloned patrons get address copy" setting.
2. Open up a patron record that has a valid non pending address with city limits checked.
3. Save and Clone
4. Notice that the address in the new cloned record says pending.
5. Notice that the city limits checkbox isn't checked.
After change applied:
1. Enable "Cloned patrons get address copy" setting.
2. Open up a patron record that has a valid non pending address with city limits checked.
3. Save and Clone
4. Notice that the address in the new cloned record doesn't say pending.
5. Notice that the city limits checkbox is checked.
Jason Etheridge [Fri, 28 May 2021 20:25:22 +0000 (16:25 -0400)]
lp1905028 lost items and price versus acq cost
This feature adds two new library settings:
Use Item Price or Cost as Primary Item Value
Use Item Price or Cost as Backup Item Value
which intersect the behavior of these existing settings:
Charge lost on zero
Default Item Price
Minimum Item Price
Maximum Item Price
Each of these settings affect how item price is used in
various contexts and is not limited to "lost" items, but
can affect notices, fine rules, and billings for long
overdue and damaged items (as well as lost items).
By default, the price field on items is the only field
considered by these various uses, but if we set, for
example, "Use Item Price or Cost as Primary Item Value" to
"cost", then we'll use the cost field instead of the price
field.
Alternately, if we set the "Backup Item Value" to "cost"
and either leave the "Primary Item Value" setting unset or
set to "price", then we'll consider the price field first,
and if it is either unset/null or equal to 0 (and
"Charge lost on zero" is true), then it'll fall-through to
the cost field. We can also flip the behavior with these
settings and consider cost first and then price second.
Signed-off-by: Jason Etheridge <jason@EquinoxOLI.org> Signed-off-by: Garry Collum <gcollum@gmail.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Bill Erickson [Wed, 3 Jul 2019 18:34:39 +0000 (14:34 -0400)]
LP1752356 Offline expired patrons download date additions
Modify wording to clarify the date displayed is that of the block list
download and not necessarily the date the patron was flagged expired.
Avoid console errors when the file download date is not known -- edge
case where the code is updated but the block list was not updated in the
meantime.
Clean up some debug logging.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org> Signed-off-by: Jason Boyer <jboyer@equinoxOLI.org>
Mike Risher [Mon, 1 Jul 2019 15:56:17 +0000 (15:56 +0000)]
LP1752356 Offline block list date addition
In offline mode when checking out for an expired patron, we changed
the error message so that the last date the blocklist was downloaded
is displayed along with the patron barcode
Signed-off-by: Mike Risher <mrisher@catalyte.io> Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org> Signed-off-by: Jason Boyer <jboyer@equinoxOLI.org>
Mike Rylander [Tue, 9 Apr 2019 15:30:15 +0000 (11:30 -0400)]
LP#1823983: repeat_delay check removes event definition id filter
This bug has existed since the repeat_delay feature was added, but likely only
rarely was triggered because most events don't have a repeat_delay, and those
that do don't interact with the same target. However, as more repeatable event
definitions are created, inappropriate interaction becomes more likely.
In this commit we avoid overwriting the whole join condition clause, which
already contains an event definition id filter and needs to retain it.
Included is an unrelated change that uses the new-ish form of
interval_to_seconds that avoids DST boundary shifting issues by passing a
context DateTime object as the second parameter.
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
LP1809157 SMS Carriers display not in alphabetical order
This alphabetizes the carrier display when editing the sms carrier in an existing hold.
It also adds the region to the name to make the interface consistent with other interfaces.
To Test:
1. Enable SMS options in the Library Settings.
2. Place a hold for a patron.
3. Use the Edit Notifications Settings. Enter an SMS number, if needed.
4. Drop-down the Carrier list - the list is not in alphabetical order.
5. Apply the patch and repeat 3-4.
Adds an info button next to Total Circs in the AngularJS staff
client Item Status screen. Clicking the button displays a
popover list of total circs by year.
Signed-off-by: Dan Briem <dbriem@wlsmail.org> Signed-off-by: Michele Morgan <mmorgan@noblenet.org> Signed-off-by: John Amundson <jamundson@cwmars.org> Signed-off-by: Jason Stephenson <jason@sigio.com>
Mike Rylander [Mon, 7 Jun 2021 19:57:32 +0000 (15:57 -0400)]
LP#1931162: DYM needs some situational optimization
For some data sets and some queries the Did You Mean search suggestion
logic can be much too slow. This is mainly in cases where a "misspelled"
word of sufficient length greater than the symspell prefix length is
checked against many short prefixes that have many long suggestions
attached to them.
This commit optimizes for that case in particular by testing the length
of suggestions and prefix keys against the user input to avoid
unnecessary tests. Futher, it captures the edit distance of suggestions
that pass that test in-line, avoiding expensive retesting, and caches
the short-cutoff edit distance when in low-verbosity mode to avoid
future different-but-not-too-different suggestions coming from the same
prefix key.
It additionally provides a general optimization by batching the capture
of suggest counts to avoid per-suggestion secondary lookups, and a
micro-optimization of ordering suggestions by length at distance cache
time.
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Shula Link <slink@gchrl.org> Signed-off-by: Jason Boyer <JBoyer@equinoxOLI.org>
Jason Etheridge [Tue, 9 Feb 2021 14:42:06 +0000 (09:42 -0500)]
lp1908439 Auto-override enhancment
This reworks the override action dialogs in the patron display for Check
Out and Items Out, and in the Circulation -> Renew Items interface. It
exposes the auto-override behavior as checkboxes giving staff more fine
grained control over which events are auto-forced or skipped upon
subsequent encounters. It also changes the Cancel action for batch
renewals to abort the remaining renewals in the batch, and makes it so
that new authorization credentials provided during such a batch will be
treated as an operator change for the entire batch. We also fix an
existing bug where events marked as already encountered for
auto-override could leak into other patron contexts via Patron Search.
Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org> Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Bill Erickson [Fri, 28 Aug 2020 19:16:20 +0000 (15:16 -0400)]
LP1888723 Item location select honors context org
The Angular <eg-item-location-select /> component now limits the
locations to display to those within the specified context org unit.
Instead of acting as the source of context org units, the permFilter org
units now act as limiters. This is done so that users with global
permissions won't by default result in retrieving all copy locations.
In cases where all are needed, however, they can still be retrieved by
setting the context org unit appropriately.