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>
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>
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.
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>
These tests check that the copy status is correct after aborting
transits dependent upon the status of the copy. More tests could be
added to cover more situations, but these tests cover the basics.
Signed-off-by: Jason Stephenson <jstephenson@mvlcstaff.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Jason Stephenson [Fri, 18 Mar 2016 20:38:33 +0000 (16:38 -0400)]
LP 1306666: Abort Transit Only Change Copy Status if In Transit
When aborting a transit, the copy status is presently changed, either
to the status stored in action.transit_copy or to Reshelving if the
transit was for a hold. This causes problems with "hanging" transits
where something was not handled properly before. We've had cases
where a transit sticks around on a copy that is later checked out, and
while that copy is checked out, the transit is aborted, thus setting
the copy status to Reshelving when it should be Checked Out.
The code change in this branch only changes the copy's status if it is
In Transit. A copy in any other status has its status left untouched.
Signed-off-by: Jason Stephenson <jstephenson@mvlcstaff.org> 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>
Jim Keenan [Fri, 12 Aug 2016 18:51:28 +0000 (14:51 -0400)]
lp1592934 removed lines referencing edition fields 534 and 775. These fields refer to other, different editions of the work and not to the work actually being returned.
Signed-off-by: Jim Keenan <jkeenan@cwmars.org> Signed-off-by: Kathy Lussier <klussier@masslnc.org>
The previous patch had a side-effect of changing the 852$d
value from the circ library's shortname to its long name. This
patch restores the previous behavior.
Signed-off-by: Galen Charlton <gmc@esilibrary.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
For Content Cafe, jam two B&T entrys into the hash so that Business::ISBN
doesn't register them as invalid prefix ISBNs.
B&T uses internal ISBN's with country codes 630 and 631 for materials
ordered through them when no assigned ISBN exists. The ContentCafe
added content service knows about these ISBNs, but they are not generally
used by other providers.
To Test: This only works if you are using the ContentCafe added content provider.
- Before Patch -
1. Add the isbn 9786315820243 as the only isbn on a record. Remove UPCs also..
2. Clear the added content cache by restarting memcached or using the staff link.
3. View record in catalog and you should see no cover art.
- After Patch -
1. Clear the added content cache.
2. View the record in the catalog and you should now see cover art for the title
"Video games: the movie"
Signed-off-by: Thomas Berezansky <tsbere@mvlc.org> Signed-off-by: Josh Stompro <stomproj@larl.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Rearranging the order of the various sources of hold
failure messages makes it less likely to see spurious
"Item is too new to transit this far" messages. Now
errors due to excessive fines or number of existing
holds.
Signed-off-by: Jason Boyer <jboyer@library.in.gov> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Conflicts:
Open-ILS/src/templates/opac/parts/place_hold_result.tt2
Dan Scott [Mon, 1 Aug 2016 22:09:04 +0000 (18:09 -0400)]
LP#1608711: Update schema.org property name from "seller" to "offeredBy"
Per the 2015-11-05 release of schema.org
(http://schema.org/docs/releases.html#v2.2), the "offeredBy" property is now
the preferred property to use for non-commercial entities (such as libraries)
making an offer of an item for borrowing, sale, etc.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Ben Shum <ben@evergreener.net>
This commit fixes a small AsciiDoc syntax bug caused by a real '_' that
accidentally closed the '_' italics tag. This block of documentation
will now more closely match the identical content found in
'admin/template_toolkit.txt' (chapter labeled "TPac Configuration and
Customization").
Galen Charlton [Wed, 16 Dec 2015 16:03:42 +0000 (11:03 -0500)]
LP#1526858: speed up queries for shelf-expired holds during checkin
This patch adds indexes on action.hold_request and tweaks
the definition of the alhr IDL view to more efficiently
identify holds that can be canceled if the "Clear Holds Shelf"
checkin modifier is in use. This can prevent a problem
where such checkins can time out in very large databases.
The tweaks were created by Jason Etheridge and have been in
production at a large consortium for some time.
To test
-------
[1] With a suitably large database, set up an item that
is on the holds shelf but has passed its shelf-expiration
time, then check it in using the "Clear Holds Shelf" modifier.
[2] The checkin may fail with a "network failure" message due
the query on the alhr timing out.
[3] Apply the patch and repeat step 1. This time, the checkin
should succeed.
Codey Kolasinski [Mon, 16 May 2016 13:28:09 +0000 (09:28 -0400)]
Adds two missing link fields (patron profile and patron home library) to
the fm_idl.xml for the Combined Active and Aged Circulations (combcirc)
reporter source. The fix was originally posted in a comment to the
Launchpad bug by Codey Kolasinski.
This patch removes the SSN (Social Security Number) as a stock
patron identification type, as it is no longer recommended
practice for libraries to store SSNs.
To test:
[1] Verify that in a fresh installation of Evergreen that
has this patch in place, that SSN is no longer listed
as a patron identification type.
Jason Stephenson [Thu, 26 May 2016 19:23:03 +0000 (15:23 -0400)]
LP 1548993: Remember the Show More/Fewer Details button selection.
The state of the Show More/Fewer Details button selection was
previously not remembered across searches or across changes to
advanced search. This commit attempts to remedy that.
Jason Stephenson [Thu, 19 May 2016 19:53:48 +0000 (15:53 -0400)]
LP 1548993: Restore Show More/Show Fewer Details button functionality.
When using a show_more_details.default setting of true in config.tt2,
the Show More/Show Fewer Details button functionality is broken. The
detail record view is always shown, regardless of the button's state.
This patch attempts to repair the behavior so that the user can toggle
the detail record view even though the default is set to true.
Galen Charlton [Mon, 23 May 2016 16:29:04 +0000 (12:29 -0400)]
LP#1373578: fix translatability of hold placement errors
This patch fixes a circumstance where ->maketext() could be
passed an empty string, causing it to emit the PO file header text
rather than a desired string.
Galen Charlton [Mon, 23 May 2016 14:29:09 +0000 (10:29 -0400)]
LP#1584801: fix tagging of previous circs in metarecord search results
This patch fixes a bug where previously-checked-out items were not
indicated as such in search results when doing a metarecord search.
To test:
[1] Ensure that the opac.search.tag_circulated_items library setting
is enabled and that you are testing with a user that has opted-in
to retaining circ history.
[2] Make a couple loans to that user.
[3] Log into the public catalog using that user.
[4] Perform a catalog search, choosing search terms such that
the previously-loaned items appear in results.
[5] Verify that "I have checked this item out before" is displayed
on the relevant hits.
[6] Click the "Group Formats and Editions" checkbox; note that
after the page refreshes, previously-borrowed hits are /not/
tagged.
[7] Apply the patch and restart the open-ils.search service.
[8] Repeat step 6; verify that this time previously-borrowed hits
are tagged.
Josh Stompro [Wed, 30 Mar 2016 13:47:57 +0000 (08:47 -0500)]
LP#1517556 - Exclude inactive event defs from find_event_def_by_hook.
Currently when find_event_def_by_hook is called to find an appropriate
event_def based on the hook, it doesn't exclude inactive event defs. So
strange behavior can happen if inactive event defs are present.
I ran into this issue when I was trying out different versions of the self
check receipt event def. I had one ative and one inactive while I was
troubleshooting, and when the system would grab the inactive event def by
chance, the self check UI would freeze. I think it is a resonable expectation
that an event def marked inactive doesn't get used by the system.
To test this out, clone one of the self check event defs, such as
"Self-Checkout Items Out Receipt" and mark the copy as inactive. Now
go and trigger this event in the self check interface by attempting to
print from the Items Out screen. It should now fail 50% of the time, since
both the active and inactive defs are returned.
After the fix the inactive event def will always be excluded, so the action
should no longer fail.
As suggested by Mike Rylander, keep the escape_email_header helper
around to avoid breaking templates that already adopted it, but make it
a no-op as the SendEmail reactor now encodes the email headers of
interest by default.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Dan Wells <dbw2@calvin.edu>
Galen Charlton [Fri, 25 Mar 2016 20:46:24 +0000 (16:46 -0400)]
LP#1562153: fix case where changing sort order to relevance can fail
This patch fixes a cause where sending a 'sort' CGI parameter
with the empty string as value (which specifies relevance sorting)
fails to override a previously-set sort order.
To test:
[1] Do a public catalog search starting from the advanced search form,
e.g., keyword = "cats"
[2] Change the sort order to (say) Title A-Z from the results page.
[3] Note that the query string changes to "sort(titlesort) cats" and
that the results are re-sorted
[4] Attempt to change the sort order to relevance.
[5] This time, the sort order does not change ... and it should have.
[6] Apply the patch and repeat steps 1-5. This time, the sort order
should be successfully changed.
Signed-off-by: Galen Charlton <gmc@esilibrary.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Steven Callender [Wed, 13 Apr 2016 15:15:27 +0000 (11:15 -0400)]
LP#1569884 Allow deleted monograph parts to be recreated.
Changed the constraint on the biblio.monograph_part table to allow for a
monograph part to be created if a duplicate deleted version is found.
To test:
[1] Add a monograph part to a bib.
[2] Delete that monograph part.
[3] Attempt to add a monograph part to the same bib using
the same part label. Without the patches installed, this
will fail; upon applying the database update, this operation
should succeed.
Signed-off-by: Steven Callender <stevecallender@esilibrary.com> Signed-off-by: Jason Stephenson <jstephenson@mvlcstaff.org> Signed-off-by: Galen Charlton <gmc@esilibrary.com>
This pgTAP test verifies that if you logically delete a monograph part,
you can subsequently add a new one with the same label as that of the
deleted one.
Now that Debian Squeeze's LTS (long-term support) period
has ended, Evergreen no longer offers community support
for that distribution. This patch removes references
to Squeeze from the installation scripts and documentation.
To test:
[1] Verify that Debian Squeeze is no longer referenced in
the installation documentation.
Signed-off-by: Galen Charlton <gmc@esilibrary.com> Signed-off-by: Ben Shum <ben@evergreener.net>
Conflicts:
docs/installation/server_upgrade.txt
Jason Boyer [Thu, 31 Mar 2016 12:08:03 +0000 (08:08 -0400)]
LP1564378: Silence Hash Init Warning
A trivial change to silence a lot of noise (if your libraries
use extending grace periods.)
Signed-off-by: Jason Boyer <jboyer@library.in.gov> Signed-off-by: Jason Stephenson <jstephenson@mvlcstaff.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Mike Rylander [Tue, 22 Mar 2016 15:50:58 +0000 (11:50 -0400)]
LP#1373601: Consider relevant characters before using word-boundary checks
To perform unanchored phrase limits, we make sure that the phrase supplied
by the user does not end in the middle of a word by bounding the condition
with word-boundary bracket expresssions. However, if the phrase starts
or ends with a non-word character (that is, something other than numbers,
letters, or the underscore) then the word-boundary expression won't match.
The effect of this is to cause phrase searches starting or ending in
punctuation to fail when the user would not expect them to.
To address this, we now test the phrase for word-iness at the front and
back before applying word-boundary bracket expressions.
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Dan Wells [Thu, 7 Jan 2016 16:47:43 +0000 (11:47 -0500)]
LP#1208613: Reset lineitem cache when resetting table
Stale cache entries in this table were causing the "expand all"
functionality to break. This might be a nuclear option, but as far as
I could see, this "cache" gets repopulated on every pagination anyway,
so I don't think we're losing anything.
To test:
[1] Select a large list from the Acquisitions --> My Selection List
screen.
[2] Click on the Expand All button and the items on the page expand
with more information.
[3] Click on the Next link to bring up page 2 of the list.
[4] Click on the Expand All button and verify that additional
information is displayed.
Terran McCanna [Tue, 1 Mar 2016 21:47:20 +0000 (16:47 -0500)]
LP#1370694 Selfcheck: "Print List" for Holds view does not work
Prior to this change, the holds data was not getting passed to the
print function. Now, it is being captured and passed to the print
function. Because of some sorting discrepancies between the order of
the information being passed from here to the action trigger and the
order that the information is presented when pulled directly out of the
database by the action trigger (which led to data mismatches between the
title/author and the hold status/pickup locations for each printed item),
I modified this script to pass all of the hold information together in the
desired order to the action trigger rather than relying on the template
to match the data coming from the script with the data from the database.
This change requires the action trigger printing template to be updated in
order to work. I've included an upgrade script as well as an update to the
seed data script.
Terran McCanna [Tue, 1 Mar 2016 22:35:28 +0000 (17:35 -0500)]
LP#1551447 Selfcheck: Printing Fines Prints All Open Transactions
This corrects the behavior of the selfcheck fines receipt print template.
Prior to this, it printed all open billable transactions (eg, every item
that the patron had checked out) regardless of whether or not it had bills
associated with it. This adds a small bit of logic to the template to
check for a balance due. It also updates the javascript to check for a
balance on the account before launching the print function to prevent the
system from taking unnecessary action.
This includes a SQL upgrade script to update the Self-Checked Fines
Receipt template for systems that are already in production, as well as
including an update to the seed data.
Terran McCanna [Thu, 11 Jun 2015 22:15:13 +0000 (18:15 -0400)]
LP#1454871: Fix KPAC Hold Notification Preferences
Correction to KPAC holds notification default preferences to allow for
SMS text messaging options.
Prior to this correction, KPAC hold notifications would only pick up
hold preferences if set to email and/or phone. This correction allows
it to pick up email and/or phone and/or sms notification preferences.
To test, set hold preferences to different options, place hold via the
KPAC, and then view the hold to see which preferences were recognized.
(May need to show columns for Phone Notify, Text Notify, and Email Notify.)
Terran McCanna [Wed, 24 Feb 2016 22:17:27 +0000 (17:17 -0500)]
LP#1548869 KPAC hold results screen not displaying complete info
The getit_results.tt2 page was not displaying item title after
hold placement or after adding to a list. It was also not pulling
in the item id (which was needed for navigational links back to the
record) and was not pulling in the list name after adding an item
to a named list.
This patch adds some logic to prevent subroutine conflicts, adds
missing parameters to a function call, and corrects a variable name.
To test:
Log in to the KPAC and perform the following actions:
1. Place a successful hold (results screen should show item title
and pickup library, and provide links back to record page).
2. Place an unsuccessful hold (try placing a hold on an item you
already have a hold on - the results screen should show the item
title).
3. Add item to a temporary list (results screen should show item title).
4. Add item to a named list (results screen should show item title and
title of list it was added to).
Josh Stompro [Sat, 27 Feb 2016 14:54:04 +0000 (08:54 -0600)]
LP#1549393 - Remove undef values from isbn and issn arrays.
This prevents empty requests being sent to content providers.
This caused a problem for us because invalid ISBNs were causing
requests to Content Cafe to fail, since Content Cafe returns an
error if there is a blank key sent along with valid ISBNs and UPCs.
Specifically we had problems with DVD records from Baker & Taylor because
B&T creates unoffical ISBNs for the DVDs they sell. Those ISBN's do
not validate when run through B::ISBN.
ISSNs are also cleaned since they are validated and set to undef if
invalid just like ISBNs are.
It shouldn't hurt to not send blank requests to providers in any case.
To test:
1. I know this is a problem with Content Cafe, I don't
know if any other providers are effected. Let me know
if you need Content Cafe credentials to test.
2. Add an invalid ISBN 020a entry to a bib record that has added content. 9786316271976 is an example of a fake ISBN that doesn't
pass B::ISBN validation. Or just make up a fake number.
3. Clear out the memcache entries for that record. In 2.9+ there
is a link to clear the cache in the record detail view under Permalink.
4. Reload the record and the cover art and other added content should
not be displayed. This is because the invalid ISBN gets set to undef
, and the undef gets sent to content cafe as a blank key request.
5. Now apply the fix. Clear the memcache entries for that bib, and now
the cover art should be displayed since the undef entries due to the invalid
ISBN's have been removed.
Josh Stompro [Fri, 4 Mar 2016 19:51:34 +0000 (13:51 -0600)]
LP#1550495 - Add EDI Cancel Code 85 - used by Baker & Taylor
Baker & Taylor send back a quantity code 85 response when they cancel
a line item. This code wasn't included as one of the built in EDI
codes so those line items were not being canceled automatically in
evergreen.
The system looks for the response code + 1200 to find the cancel reason,
so this code is entered as ID 1285 in the acq.cancel_reason table.
I received confirmation from another system that uses B&T as an EDI vendor
that they also receive code 85 responses when something gets canceled.
Terran McCanna [Wed, 2 Mar 2016 17:16:43 +0000 (12:16 -0500)]
LP#1454884 Hold placed on grouped metabib result displays wrong title
Prior to this change, a full/extended title displayed even on metarecord
holds that had different extended titles, which sometimes led to situations
where a video's full title displayed on a book hold, or vice versa. This
change displays the short version of the title on metarecord holds and
the full version on individual record holds.
Chris Sharp [Mon, 8 Feb 2016 18:00:06 +0000 (13:00 -0500)]
LP#1533331 - Fix evergreen.protect_reserved_rows_from_delete() trigger function
The fix for bug 1513554 included creating a general trigger function to prevent
the deletion of reserved table rows with an ID lower than a specified threshold.
Testing for that seemed to pass muster, but using the function in practice revealed
a failure to delete deletable rows either.
This adds an explicit RETURN to the function, which fixes the issue.
Signed-off-by: Chris Sharp <csharp@georgialibraries.org> Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
Bill Erickson [Mon, 16 Nov 2015 19:48:23 +0000 (14:48 -0500)]
LP#1516757: ensure that SIP2 returns DOB correctly
Parse dates of birth using the local timezone to ensure that the date in
the database will match what is sent to SIP clients. Otherwise, the
date will be parsed as UTC and may result in the DoB value being offset
by one day in the SIP response.
To test
-------
[1] Fire up a SIP client of some sort and retrieve a patron record;
verify that the patron's date of birth is correct, and not
offset by one day.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Galen Charlton <gmc@esilibrary.com>
LP#1531976: fix bringing up Mesage Center and Triggered Events
This patch fixes a bug in the XUL staff client where
using Other -> Triggered Events from the patron page,
then Other -> Message Center, only brings up the Triggered
Events page in both cases (and vice versa).
This patch works by preventing the deck code from thinking they are
the same page, despite both using the browser wrapper as their base URL.
Signed-off-by: Thomas Berezansky <tsbere@mvlc.org> Signed-off-by: Chris Sharp <csharp@georgialibraries.org> Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Jason Boyer [Wed, 2 Sep 2015 20:20:13 +0000 (16:20 -0400)]
LP#1491571: Ignore Case when Checking PW Reset email
Emails are not passwords and are not case sensitive;
while it is a good idea to require patrons to prove
they know the address associated with their account
it is not cool to deny them because they don't know
the capitalization of the value in the database.
Signed-off-by: Jason Boyer <jboyer@library.in.gov> Signed-off-by: Ben Shum <ben@evergreener.net>
Chris Sharp [Mon, 30 Nov 2015 14:48:26 +0000 (09:48 -0500)]
LP#1206936 - Fix wrong billing info in money.transaction_billing_summary
The money.transaction_billing_summary view was showing the wrong
last billing type and last billing note for certain transactions.
This fix, from Dan Scott, in turn from Mike Rylander, recreates
that view so that it depends on the speedier and more accurate
money.materialized_billable_xact_summary view.
Signed-off-by: Chris Sharp <csharp@georgialibraries.org> Signed-off-by: Dan Wells <dbw2@calvin.edu>
Remington Steed [Wed, 16 Dec 2015 20:46:17 +0000 (15:46 -0500)]
LP#1526546 Sort copies by part label in holdings maint.
This commit improves the sorting of copies on the Holdings Maintenance
screen in the XUL-based staff client. The previous code sorted the
copies by their barcodes after retrieval. This commit moves the sorting
logic into the search call and adds logic to first sort by the part
label sort key.
Signed-off-by: Remington Steed <rjs7@calvin.edu> Signed-off-by: Dan Wells <dbw2@calvin.edu>
blake [Wed, 23 Dec 2015 20:20:40 +0000 (14:20 -0600)]
LP#1466990: Detailed search results shows parts for items that dont have parts
The part_label variable needs to be reset between iterations. The variable was still set
and bled from copy to copy. Testing this will require a search with details turned on.
The search result set needs to include a bib that has copies with parts (with at least
one copy invisible) and another bib that has copies without parts.
Signed-off-by: blake <blake@mobiusconsortium.org> Signed-off-by: Ben Shum <ben@evergreener.net>