Updates to the 2.11, including: adding a note about Ubuntu Xenial support,
adding acknowledgements for translators and for some who were missed in the
first iteration of Release Notes, slimming down the activity metric release
notes entry and moving the original, detail-rich entry to the TechRef directory.
Mike Rylander [Wed, 14 Sep 2016 14:44:15 +0000 (10:44 -0400)]
LP#1623541: Booking will fail if its router isn't called "router"
The circ code checks to see if the booking app is running, and if not, it
skips some booking-related logic. This is a useful performance enhancement
where booking is not in use. It does this by asking the OpenSRF router if
the "open-ils.booking" app has registered with it. Most of the time the
OpenSRF router will be called, unimaginatively, "router" but when it's not,
booking will not be considered by the circ module even if it's running.
Instead of assuming "router" we should simply look up the router's name.
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Dan Wells <dbw2@calvin.edu>
Dan Scott [Sun, 18 Sep 2016 13:16:27 +0000 (09:16 -0400)]
LP#1624846 Add charset declaration to TPAC print output
Non-ASCII characters were printed incorrectly in some browsers, such as
Firefox, that still default to ISO-8859-1 encodings in the absence of a
specifically declared encoding.
Our output encoding will always be UTF-8, so declare it.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Dan Wells [Tue, 13 Sep 2016 17:40:43 +0000 (13:40 -0400)]
LP#1620803 Add missing workstation passthru to AuthProxy
The AuthProxy.pm login function was not passing through a possible
'workstation' parameter to auth_internal's 'session.create' method.
Without this, all login's end up with a workstation set to the user's
home_ou, which can affect things including opt-in and transit
behaviors.
While not needed for the initial 'user.validate', it seems cleaner
and simpler to just bring it over when constructing the initial
$args hash.
Signed-off-by: Dan Wells <dbw2@calvin.edu> Signed-off-by: Dan Scott <dscott@laurentian.ca>
This patch ensures that the patron profile and
search OU values are retained when going from a patron
search to a single record and back to the patron search.
To test the fix for this bug:
[1] Search for a patron using the expanded patron search fields,
making sure to select values for the profile and search
OU dropdowns.
[2] Open a record, then click "Patron Search" to return to the
search form.
[3] Verify that the profile and search library are set and
that the same patron records are retrieved.
This patch includes elements from a patch originally written
by Victoria Lewis <vlewis@catalystitservices.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com> Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Propagate lineitem MARC 'price' attribute value to the lineitem
estimated_unit_price field. This allows users to apply a lineitem
price directly from the ACQ Brief Record interface.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Chris Sharp <csharp@georgialibraries.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Dan Scott [Tue, 6 Sep 2016 01:34:20 +0000 (21:34 -0400)]
SIP manual testing formatting cleanup
The extra ** in the sample SIP lines was distracting. Also, it wasn't clear
which password to use when $password was used twice, so disambiguate it to
identify user vs. SIP password.
Fix webstaff test failures due to an invalid IDL2js.js file by adding
newly-required preprocessing to the support script that generates that
file when running tests.
Signed-off-by: Jeff Godin <jgodin@tadl.org> Signed-off-by: Ben Shum <ben@evergreener.net> Signed-off-by: Dan Wells <dbw2@calvin.edu>
Dan Wells [Thu, 25 Aug 2016 19:27:56 +0000 (15:27 -0400)]
Translation updates - po files
Translations have been significantly increased. In particular, Spanish
has received a huge update with over 8,000 new translations, Czech has
received a sizeable update of over 800 translations, and additional
smaller updates have been added for Arabic, French (Canada), and
Armenian.
Jason Stephenson [Thu, 25 Aug 2016 15:57:42 +0000 (11:57 -0400)]
LP#1613709: Make DOB validation alert failure translatable.
The alert message about an invalid DOB being entered in the OPAC
patron registration is not translatable. The solution, suggested by
Eva Cerninakova, is to wrap the string in the l() template function to
make it so. That is what this branch does.
Signed-off-by: Jason Stephenson <jason@sigio.com> Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Jason Stephenson [Mon, 30 May 2016 17:01:45 +0000 (13:01 -0400)]
LP 1583608: The make_release script always makes a db upgrade script.
Alter make_release to always create a db upgrade script, even when no
actual db upgrades need to be applied. The minimal script created
will at least set the upgrade version in config.upgrade_log.
Bill Erickson [Wed, 24 Aug 2016 21:01:01 +0000 (17:01 -0400)]
LP#1497335 Show Last Few Circs patron retrieve options
In the Show Last Few Circulations window (XUL), disable the "Retrieve
Last Patron" button when the most recent circulation is aged. Disable
the "Retrieve All These Patrons" button when all circulations displayed
are aged.
Fixes a sort bug in open-ils.circ.copy_checkout_history.retrieve.
* Item Status -> Circulation History now displays aged circulations as
appropriate, showing "<Aged Circulation>" in lieu the patron's name.
* Item Status (and others) -> Show Last Few Circulations, ditto above.
Also, the 'Add Billing' button is disabled when displayed with an aged
circulation row.
* Copy -> Retrieve Last Patron action now includes aged circulations
when looking for the most recent circulation. When the most recent
circ is an aged circ, the UI reports "Item XXX circulation is an aged
circulation and has no linked user". Among other things, this means
the 3rd from last circ will not be confused as the 2nd to last circ
when the 2nd to last is aged.
* Mark Item Damaged will warn if the circ in question is aged. This is
just a sanity check and should never happen in reality, since the UI
only supports this option on checked out items (i.e. active circs).
1. Use all_circulation (combcirc) class (now accessible via pcrud) to
render the item Circ History List tab. In cases where a combcirc object
has no 'usr' value, the interface displays <Aged Circulation> where
the patron's name would normally be and disables the 'Add Billing'
button.
2. Handle null 'usr' values in the item status Recent Circ History tab.
When a renewal chain summary has no 'usr' value, the interface displays
<Aged Circulation> where the patron's name would normally be.
Various SQL, IDL, and API changes for accessing aged circulations,
primarily via all_circulation objects, for imporoved staff client
integration.
*. Support open-ils.pcrud access to the action.all_circulation DB view /
'combcirc' class.
*. Add missing parent_circ, checkin_scan_time, checkin_workstation to
combcirc class.
*. Add 'usr' field to combcirc. The action.all_circulation VIEW will
return NULL as the 'usr' column value when returning data for an
aged_circulation.
*. Add virtual 'active_circ' and 'aged_circ' fields to combcirc for
fleshing the related action.circulation or action.aged_circulation
object.
* Adds SQL functions for action.all_circ_chain and
action.summarize_all_circ_chain, which pull data from
aged_circulation.
*. API calls
open-ils.circ.[prev_]renewal_chain.retrieve_by_circ[.summary] now return
data for active and aged circulations by using action.all_circ_chain and
action.summarize_all_circ_chain. When using these APIs, a null value
in the 'usr' column is the indication that a given circulation or circ
chain summary represents an aged circulation.
* API open-ils.circ.copy_details.retrieve will now optionally return
aged circ data within the copy circ history.
Chris Sharp [Wed, 24 Aug 2016 18:23:09 +0000 (14:23 -0400)]
LP#1613374 - Check stored copy status before clobbering it.
Some transit.copy_statuses would result in some other behavior
upon checkin, so we check all that would go into 'Reshelving'
status, otherwise, restore the stored status.
Signed-off-by: Chris Sharp <csharp@georgialibraries.org> Signed-off-by: Michele Morgan <mmorgan@noblenet.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Chris Sharp [Tue, 23 Aug 2016 13:32:59 +0000 (09:32 -0400)]
LP#1613374 - Add 'Canceled Transit' to non-'BAD' copy statuses.
During checkin, Circulate.pm checks the copy status and if it
isn't listed as an okay status, the event COPY_BAD_STATUS is
returned, which requires an override. This change makes copies
in 'Canceled Transit' status check in without an alert.
Signed-off-by: Chris Sharp <csharp@georgialibraries.org> Signed-off-by: Michele Morgan <mmorgan@noblenet.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Chris Sharp [Tue, 16 Aug 2016 11:11:24 +0000 (07:11 -0400)]
LP#1613374 - Add 'Canceled Transit' to "magical statuses"
Signed-off-by: Chris Sharp <csharp@georgialibraries.org> Signed-off-by: Michele Morgan <mmorgan@noblenet.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Chris Sharp [Mon, 22 Aug 2016 12:58:24 +0000 (08:58 -0400)]
LP#1613374 - Make 'Canceled Transit' status holdable and OPAC-visible.
Signed-off-by: Chris Sharp <csharp@georgialibraries.org> Signed-off-by: Michele Morgan <mmorgan@noblenet.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Chris Sharp [Wed, 24 Aug 2016 18:12:04 +0000 (14:12 -0400)]
LP#1613374 - Set item status to 'Canceled Transit' when transit is canceled.
I opened a separate bug report on this issue (bug 1613374) before realizing
bug 1306666 was reported. This commit creates a new 'Canceled Transit' status
that signals to staff what happened to an item when a transit is aborted/canceled.
Signed-off-by: Chris Sharp <csharp@georgialibraries.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Conflicts:
Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Transit.pm
Signed-off-by: Michele Morgan <mmorgan@noblenet.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
This patch replaces the Logout and Logout with Receipt buttons in
the selfcheck interface with a single Logout button and a set of radio
buttons (whose labels are clickable) that allow the user to specify
whether they want an email receipt, a print receipt, or no receipt upon
logging out.
If the user has no email address, the option to select email receipts
will not be presented to them.
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Galen Charlton [Thu, 4 Aug 2016 16:07:14 +0000 (12:07 -0400)]
LP#1356477: move email receipt checkbox on patron editor
This patch updates the patron editor so that the checkbox
for setting whether the user wishes to get email checkout
receipts by default is moved next to the email address
input.
Signed-off-by: Galen Charlton <gmc@esilibrary.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
This patch adds a new button to the webstaff checkout page
called Quick Receipt. If the button itself is pushed, a
receipt containing the current checkouts is either printed
or emailed, depending on the user's preference. If the
drop-down portion of the button is used, staff members can
override the user's default preference to print or email
the receipt.
The Quick Receipt button is enabled only if at least one
checkout has been made during the current session.
Note that email receipts is an option only when the patron
has an email address supplied.
An icon next to the Quick Receipt button will be either a
printer or an envelope depending on the user's preferred
receipt setting.
This patch also modifies the "Done" button. If pressed, the session
is ended and the receipt is generated according to the user's
preferences, but the drop-down portion can be used to end
the session while letting the staff member choose how the
receipt is emitted.
If a receipt is emailed, a toast is displayed saying so.
Signed-off-by: Mike Rylander <miker@esilibrary.com> Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Galen Charlton [Wed, 3 Aug 2016 19:38:49 +0000 (15:38 -0400)]
LP#1356477: teach OPAC patron registration form about staged user (opt-in) settings
This patch causes a checkbox to be added for each user setting
that controls opt-in for active Action/Trigger event definitions. In
the specific context of email checkout receipts, this means that
a patron who is self-registering can elect to get email checkout
receipts by default.
Signed-off-by: Galen Charlton <gmc@esilibrary.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Galen Charlton [Wed, 3 Aug 2016 19:36:18 +0000 (15:36 -0400)]
LP#1356477: teach webstaff patron editor about staged user settings
This patch also fixes a bug that preferred the webstaff patron editor
from successfully removing a staged patron upon completing the
registration of the patron.
Signed-off-by: Galen Charlton <gmc@esilibrary.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Galen Charlton [Wed, 3 Aug 2016 19:37:39 +0000 (15:37 -0400)]
LP#1356477: create new staging table for user settings
This patch creates a new table called staging.setting_stage
that allows for storing user settings when a patron uses
(for example) the self-registration page.
Signed-off-by: Galen Charlton <gmc@esilibrary.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Galen Charlton [Mon, 8 Aug 2016 20:50:08 +0000 (16:50 -0400)]
LP#1356477: add ability to unconditionally send email
This patch defines and uses an
open-ils.trigger.event.autocreate.ignore_opt_in method that does what
it says on the tin; the caller is reponsible for not abusing this.
This supports a use case in the webstaff checkout interface where staff
can choose to have the receipt be emailed, provided that the patron
record has an email address defined, even if the user setting to
email receipts by default is not set. (It is assumed that the staff
member would have gotten permission from the patron on the spot.)
Signed-off-by: Galen Charlton <gmc@esilibrary.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Mike Rylander [Wed, 3 Aug 2016 16:45:10 +0000 (12:45 -0400)]
LP#1356477: business logic for email checking receipts
This patch adds two methods, open-ils.circ.checkout.batch_notify
and open-ils.circ.checkout.batch_notify.session, that when passed
a set of circulation IDs, creates A/T events for the
checkout notification hooks. In the specific case of the email
checkout receipts feature, the seed data contains a stock
event that would send out emails, but it is conceivable
that other forms of notification could be done by defining
A/T events appropriately.
Signed-off-by: Mike Rylander <miker@esilibrary.com> Signed-off-by: Galen Charlton <gmc@esilibrary.com>
This patch adds seed data for email checkout receipts,
including:
- The action/trigger hooks circ.checkout.batch_notify
and circ.checkout.batch_notify.session.
- The default event definition
- The circ.send_email_checkout_receipts (Email checkout receipts by
default?) user setting.
Signed-off-by: Galen Charlton <gmc@esilibrary.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Conflicts:
Open-ILS/src/sql/Pg/950.data.seed-values.sql
Adds a new global flag 'ingest.disable_authority_auto_update_bib_meta',
which is disabled by default.
When disabled, the 'editor' and 'edit_date' columns on bib records
updated via authority field propagation are updated to the value of the
editor on the authority record and NOW(), respectively.
When enabled, editor and edit_date are not modified.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
It also normalizes how 'fail_part' is set in the renewal response,
as the payload of an event returned when a renewal fails can
be either a hash or an acp Fieldmapper object depending on the
type of event. In the former case, attempting to access an
nonexistent ->fail_part method is what causes the crash.
To test
-------
[1] Create an item that requires a deposit or a rental fee
and check it out.
[2] Attempt to renew the loan in the public catalog. Note
that an internal server error is returned.
[3] Apply the patch and attept step 2 again. This time, the
public catalog should display a notification to the patron
that the renewal cannot take place, rather than crashing.
[4] Set up other situations where a renewal should fail for
reasons other than a deposit/rental fee being required. Verify
that appropriate error messages are displayed in the public
catalog.
Signed-off-by: Galen Charlton <gmc@esilibrary.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Chris Sharp <csharp@georgialibraries.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Chris Sharp <csharp@georgialibraries.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Utility function for removing all activity entries by activity type,
except for the most recent entry per user. This is primarily useful
when cleaning up rows prior to setting the transient flag on an
activity type to true. It allows for immediate cleanup of data (e.g.
for patron privacy) and lets admins control when the data is deleted,
which could be useful for huge activity tables.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Chris Sharp <csharp@georgialibraries.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Only retain the most recent user activity entry (per activity type) by
default.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Chris Sharp <csharp@georgialibraries.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Bill Erickson [Wed, 3 Jun 2015 23:30:40 +0000 (19:30 -0400)]
LP#1464709 Seamless non-standard copy status checkout
Add a new boolean configuration option to copy statuses which allow such
copies to be checked out without requiring an alert or override.
New column is config.copy_status.checkout_ok. Any status with this
boolean enabled will be treated the same as Available, Reshelving, and
Holds Shelf status copies in that the status will be considered
checkout-able.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Dan Wells [Tue, 10 May 2016 19:41:54 +0000 (15:41 -0400)]
LP#1315552 Don't use circ_lib name in ranked_volumes
ranked_volumes() is supposed to return only volume info, but the name
returned was from copy.circ_lib, not acn.owning_lib, so it could result
in duplicate rows if circ_lib's varied across a single acn.
Let's just use the owning_lib name instead. Note: the circ_lib join
is left undisturbed to keep the current sorting behavior
(necessary?).
Signed-off-by: Dan Wells <dbw2@calvin.edu> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Jason Boyer [Fri, 6 May 2016 18:08:48 +0000 (14:08 -0400)]
LP1259196: Use Location as Workstation on Login
When using a SIPServer with LP1579144 applied, use the
Location (CP) field of the Login (93) message as a
workstation name. This allows you to determine which
selfcheck performed which circulation.
Signed-off-by: Jason Boyer <jboyer@library.in.gov> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Kathy Lussier [Thu, 11 Aug 2016 17:24:00 +0000 (13:24 -0400)]
LP#1612274: Add distinct classes for hold statuses
With more data in the My Account hold status field, libraries may want to
style some statuses or dates differently so that they pop out to the user. Each
hold status and date now has its own class for more flexible styling.
The available status also now has a green, bold font and the suspended status
has a red, bold font.
Signed-off-by: Kathy Lussier <klussier@masslnc.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Kathy Lussier [Thu, 11 Aug 2016 03:41:51 +0000 (23:41 -0400)]
LP#1612274: Improve display of holds status in My Account
Collapse the data contained in the Activate, Active, and Date Fulfilled columns
into the status filed on the My Account holds and holds history interfaces.
This change cleans up the display and removes extraneous information that the
user doesn't need to see.
Signed-off-by: Kathy Lussier <klussier@masslnc.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Some format icons had a white background instead of a transparent one. The
transparent ones will look better in the My Account screens, where the icons
site on a gray background.
Signed-off-by: Kathy Lussier <klussier@masslnc.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
When retrieving the holds history page on a mobile device, re-orient the table
as we do with other My Account screens.
Test plan
Pre-patch, retrieve the holds history screen for a patron that has enabled
holds history. Resize the screen to a width of 600 pixels or smaller. No
adjustments will be made to the table, and horizontal scrolling is required to
see some data.
Post-patch, after resizing this screen, the table should reorient itself with
the headers displaying in the left column, as is done on the other My Account
screens.
Signed-off-by: Kathy Lussier <klussier@masslnc.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>