working/Evergreen.git
12 years agoFix fm_IDL.xml validation errors
Thomas Berezansky [Tue, 24 Jan 2012 15:13:37 +0000 (10:13 -0500)]
Fix fm_IDL.xml validation errors

From 80+ errors to 0!

Remove empty permacrud blocks (and pcrud controllers).

Adds missing attributes, updates xsd to include in-use attributes.

Fixes incomplete attribute names and the occasional typoed name.

Also re-orders some chunks that are controlled by xs:sequence.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
12 years agoFix "prefered_language" typo that blocked preferred language
Dan Scott [Sun, 22 Jan 2012 16:42:08 +0000 (11:42 -0500)]
Fix "prefered_language" typo that blocked preferred language

"preferred_language" is used everywhere else, but in the crucial core of
metabib.pm the "prefered_language" variant is used to check on the value
- hence, nothing other than the default "eng" is being used. Fix that.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoFix "Add Volumes" entry in "Actions for this Record" menu
Jason Stephenson [Mon, 30 Jan 2012 21:38:34 +0000 (16:38 -0500)]
Fix "Add Volumes" entry in "Actions for this Record" menu

A typo in Open-ILS/xul/staff_client/chrome/content/cat/opac.js (cbdObj
instead of cbsObj) led to the exception "Reference error: cbdObj is not
defined" being thrown any time the "Add Volumes" entry was chosen.

Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
Signed-off-by: Dan Scott <dscott@laurentian.ca>
12 years agoMerge remote branch 'working/user/dbs/fix-nonfiling-titles'
Lebbeous Fogle-Weekley [Mon, 30 Jan 2012 22:16:08 +0000 (17:16 -0500)]
Merge remote branch 'working/user/dbs/fix-nonfiling-titles'

Conflicts:
Open-ILS/src/sql/Pg/950.data.seed-values.sql

Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
12 years agoFix "Clear Shelf Expired Holds" checkin modifier
Thomas Berezansky [Mon, 30 Jan 2012 15:09:17 +0000 (10:09 -0500)]
Fix "Clear Shelf Expired Holds" checkin modifier

By not looking up empty arrays there either.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoFix SIP2 "unavailable holds" check
Thomas Berezansky [Mon, 30 Jan 2012 13:52:37 +0000 (08:52 -0500)]
Fix SIP2 "unavailable holds" check

If no IDs, don't look up an empty array of IDs.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoMerge branch 'master' of git.evergreen-ils.org:Evergreen
Dan Wells [Fri, 20 Jan 2012 22:58:01 +0000 (17:58 -0500)]
Merge branch 'master' of git.evergreen-ils.org:Evergreen

12 years agoModifications to the TTPac color scheme to be more with logo guidelines
Michael Peters [Fri, 20 Jan 2012 22:49:16 +0000 (17:49 -0500)]
Modifications to the TTPac color scheme to be more with logo guidelines

Tweaked the buttons, gradients, etc. in TTPac to eradicate the blue/grey elements.
Began with the Evergreen Logo's official color (Pantone 340 as found at http://www.georgialibraries.org/lib/pines/evergreenlogo/)
and complimented the colors accordingly, replacing dark blues with dark greens, light blues with light greens, etc.

This also adds two new selectors in styles.css to control the logo placement.  Logos were also centered on the page, rather than being crowded
into neighboring elements.

Signed-off-by: Michael Peters <mrpeters@library.in.gov>
Fixed Conflicts:

Open-ILS/web/css/skin/default/opac/semiauto.css
Open-ILS/web/css/skin/default/opac/style.css

Signed-off-by: Dan Wells <dbw2@calvin.edu>
12 years agoFix self-fetching callnumber columns
Jason Etheridge [Mon, 9 Jan 2012 20:18:15 +0000 (15:18 -0500)]
Fix self-fetching callnumber columns

The callnumber (and related) columns from circ.util.columns() is meant to
retrieve call number objects if given call number id's instead of objects,
but there was a bug preventing that.

This fixes LP#906523, no call number information in billing interface

Signed-off-by: Jason Etheridge <jason@esilibrary.com>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoAcq fix for LP#901378
James Fournie [Wed, 7 Dec 2011 19:27:45 +0000 (11:27 -0800)]
Acq fix for LP#901378

Proratable invoice charges do not have a fund_debit, we need to check for
this before attempting to delete the charge.  If there's no fund_debit
we can generally assume that there's no corresponding debit to this charge
and skip trying to delete it.

Signed-off-by: James Fournie <jfournie@sitka.bclibraries.ca>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoStamping upgrade for copy_location_alert
Bill Erickson [Fri, 20 Jan 2012 20:07:25 +0000 (15:07 -0500)]
Stamping upgrade for copy_location_alert

Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoAdd Checkin Alert to Copy Locations
Thomas Berezansky [Wed, 18 Jan 2012 16:28:13 +0000 (11:28 -0500)]
Add Checkin Alert to Copy Locations

If enabled bring up a ROUTE TO prompt for the location at reshelving time.

Also, while at it, add Prefix/Suffix to the "new" section of the editor.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoRemove RELEASE_NOTES reference from README
Bill Erickson [Fri, 20 Jan 2012 19:58:05 +0000 (14:58 -0500)]
Remove RELEASE_NOTES reference from README

...pending further discussion

Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoRelease Notes: Add CC-BY-SA 3.0 license to footer
Dan Scott [Fri, 23 Dec 2011 17:57:37 +0000 (12:57 -0500)]
Release Notes: Add CC-BY-SA 3.0 license to footer

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoRelease notes: document copy location display option
Dan Scott [Fri, 23 Dec 2011 17:55:34 +0000 (12:55 -0500)]
Release notes: document copy location display option

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoRelease notes: document new reporting views
Dan Scott [Wed, 21 Dec 2011 16:56:55 +0000 (11:56 -0500)]
Release notes: document new reporting views

Introduce 'Last Circulation or Creation Date' and 'Hold/Copy Ratio per Bib
and Pickup Library' reporting sources.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoMove RELEASE_NOTES into the docs subdirectory
Dan Scott [Tue, 20 Dec 2011 16:54:30 +0000 (11:54 -0500)]
Move RELEASE_NOTES into the docs subdirectory

We will begin maintaining release notes inside the source directory,
with one RELEASE_NOTES.txt file per major release series (2.2, 2.3,
etc). The release notes will primarily consist of an overview of new
features and important behaviour changes in that particular release
series, as well as a cumulative list of bugs that have been fixed in the
point releases for that series.

Also, mention the existence of the release notes in the top-level
README.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoRelease notes: "cbs prevents records from having copies"
Dan Scott [Mon, 5 Dec 2011 18:56:36 +0000 (13:56 -0500)]
Release notes: "cbs prevents records from having copies"

The new "can_have_copies" column on config.bib_source prevents
associated records from having copies or MFHD records attached via the
staff client.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoNote located URI changes in Release Notes
Dan Scott [Tue, 29 Nov 2011 20:11:55 +0000 (15:11 -0500)]
Note located URI changes in Release Notes

Located URIs now define what org unit and below in the hierarchy will be
matched for a given search scope, rather than the copy-like behaviour
from before; for example, a located URI at BR1 will no longer be found
in a SYS1 search scope; rather, a located URI at SYS1 will be found with
either a SYS1 or a BR1 search scope.

Put some info and rough suggested fix into the release notes.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoMake Delete User failure overridable
Jason Etheridge [Wed, 11 Jan 2012 03:15:31 +0000 (22:15 -0500)]
Make Delete User failure overridable

Make mrpeter's new ACTOR_USER_DELETE_OPEN_XACTS event overridable to preserve
existing functionality (the delete user code will wipe out all transactions if
allowed to, and will leave copy statuses as "Checked Out" if needed, which is
okay in EG even if there aren't corresponding circ records--some libraries
migrate data like this if the information available is sparse).

So if you want to be able to do this without a super user, you'll need to create
an ACTOR_USER_DELETE_OPEN_XACTS.override perm and assign it to perm groups
and/or users.

Signed-off-by: Jason Etheridge <jason@esilibrary.com>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agowhitespace
Jason Etheridge [Wed, 11 Jan 2012 02:54:37 +0000 (21:54 -0500)]
whitespace

Signed-off-by: Jason Etheridge <jason@esilibrary.com>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoLP872862, delete user function and open xacts
Michael Peters [Wed, 12 Oct 2011 15:46:12 +0000 (11:46 -0400)]
LP872862, delete user function and open xacts

Prevent deletion of a user with open circulations or unpaid bills
Link up an error message on attempt to delete a patron with open xacts

Signed-off-by: Michael Peters <mrpeters@library.in.gov>
Signed-off-by: Jason Etheridge <jason@esilibrary.com>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoPrevent extra closing tag in TPAC results list
Dan Wells [Thu, 19 Jan 2012 19:05:15 +0000 (14:05 -0500)]
Prevent extra closing tag in TPAC results list

Trivial change to prevent an extra yet currently harmless </tr>
closing tag from appearing when ChiliFresh is enabled.

Signed-off-by: Dan Wells <dbw2@calvin.edu>
12 years agoTPAC: Regular justification of columns in search result
Dan Scott [Mon, 9 Jan 2012 02:04:37 +0000 (21:04 -0500)]
TPAC: Regular justification of columns in search result

The search results page was constituted via a table, enclosing one table
per row for each result, enclosing one further table per result for the
attributes such as call number / publisher / edition that have been
chosen to be displayed in the simple and detailed views.

The column widths for each search result row were being calculated per
result, with the effect that title columns were starting at different
offsets - a rather unpolished effect.

By eliminating the middle table, we can let the widths be determined by
all of the search result rows together, providing a normalized result as
the HTML deities intended.

We also move some inline CSS into style.css.

Note that IE 7, at least, ignores the :nth-child() usage to deliver the
borders; because we no longer wrap the set of rows (including optional
Content Cafe and ChiliFresh rows) in an intermediate table, we had to
switch to a border-top attribute. We could have gone with a straight "tr
> td" approach, but that would have added a line at the top of the first
result, which looked weird. Still an option if one really wants to.

Signed-off-by: Dan Scott <dan@coffeecode.net>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
12 years agoTPAC: Simply record summary navigation markup
Dan Scott [Sun, 8 Jan 2012 22:53:03 +0000 (17:53 -0500)]
TPAC: Simply record summary navigation markup

Currently we have the next / previous links on the far right side of the
record summary page, whereas the "Showing item # of #" is on the left
hand side of the page. On wide screens, this leads to a large gap
between the two informational elements. In addition, as the elements are
floated, the vertical alignment is thrown off if you attempt to bring
them together.

The solution is to group the elements inside a SPAN with inline-block
displays for the embedded DIVs. This enables the elements to reflow
appropriately on mobile sized screens while keeping the alignment clean.
In addition, some inline style gets moved to style.css and some
unnecessary elements are removed.

Signed-off-by: Dan Scott <dan@coffeecode.net>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoTPAC: Improve copy display in record summary
Dan Scott [Sun, 8 Jan 2012 21:14:29 +0000 (16:14 -0500)]
TPAC: Improve copy display in record summary

In the copy counts, offer a link to display the copies at parent
libraries that have available copies. For example, if you are browsing
at BR1 and there are no available copies, but you see that SYS1 has
available copies, clicking "(Show)" beside the SYS1 available copy count
will change the search scope to SYS1 and display the copies for BR1 and
BR2.

Also, avoid displaying the copy table header if there are no physical
copies to display (for example, if there are located URIs that make the
copy show up in search results).

Signed-off-by: Dan Scott <dan@coffeecode.net>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoPrevent expand and cnoffset params from propagating
Dan Scott [Mon, 9 Jan 2012 02:43:58 +0000 (21:43 -0500)]
Prevent expand and cnoffset params from propagating

The expand and cnoffset params in record summary might result in
unexpected behaviour if allowed to propagate by default, as mkurl()
enables, so stop them in their tracks.

Also, fix an overenthusiastic URI-encoding of subjects that led to a
space getting doubly-encoded (and thereby breaking searches).

Signed-off-by: Dan Scott <dan@coffeecode.net>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoTPAC: Preserve loc, query, qtype, and sort params
Dan Scott [Fri, 6 Jan 2012 03:51:00 +0000 (22:51 -0500)]
TPAC: Preserve loc, query, qtype, and sort params

In some cases, mkurl() is not enough to preserve our desired CGI params
- such as when redirects are triggered from within a Perl module, or
forms are submitted. Accordingly, the following changes address these
cases where the chosen location / query / query type was being dropped:

* Switching between account preferences
* Creating / deleting / sharing / editing bookbags
* Moving items from temporary list to bookbags
* Adding notes to items in a bookbag
* Placing holds

The primary mechanism for forms is the "preserve_params.tt2" block that
can accept a "params" list of the CGI params that you want to preserve,
but which defaults to location/query/qtype/sort. Similarly, we add the
same preservation steps to the OpenILS::WWW::EGCatLoader::Account module
for most actions.

Signed-off-by: Dan Scott <dan@coffeecode.net>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoTPAC: Propagate CGI params via mkurl()
Dan Scott [Thu, 29 Dec 2011 05:11:25 +0000 (00:11 -0500)]
TPAC: Propagate CGI params via mkurl()

Fix many instances where params such as "loc" are dropped during a
normal workflow, resulting in unexpected changes to the user's chosen
search scope. mkurl() preserves the existing CGI params by default
and passes them on to the created URL; for now we err on the side of
caution (preserving all params) rather than filtering any out. Manual
testing suggests this does not introduce any problems, and resolves
many.

Signed-off-by: Dan Scott <dan@coffeecode.net>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoDon't show estimated wait for negative estimates
Thomas Berezansky [Tue, 17 Jan 2012 16:13:15 +0000 (11:13 -0500)]
Don't show estimated wait for negative estimates

JSPac code was just checking for the truth of the estimated_wait return,
but the estimated_wait return can be -1 under some circumstances.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoRepaired JS syntax errors in nls/selfcheck.js
Bill Erickson [Tue, 17 Jan 2012 16:53:03 +0000 (11:53 -0500)]
Repaired JS syntax errors in nls/selfcheck.js

Fixed errors introduced by a727a91b26716a0df36c93c7962240bec231c180

Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoTPac: Easy access to item status
Thomas Berezansky [Sat, 14 Jan 2012 16:42:55 +0000 (11:42 -0500)]
TPac: Easy access to item status

Change item barcodes into item status links in TPac listings.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoAllow choice of placing hold despite age protect
Thomas Berezansky [Tue, 20 Sep 2011 14:27:51 +0000 (10:27 -0400)]
Allow choice of placing hold despite age protect

This alters the backend to watch when so much as one copy failed only due
to age protection. If so, a flag is set and returned back up the calling
tree for examination.

In JSPac when the flag is set an alternate confirm message is shown.

In TTPac when the flag is set the failure message is changed and override
is always allowed for the hold in question.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoP898427 Get holdings_xml.retrieve to flesh URIs properly user/dbs/located_uri_holdings_xml
James Fournie [Fri, 9 Dec 2011 01:00:14 +0000 (17:00 -0800)]
P898427 Get holdings_xml.retrieve to flesh URIs properly

Flesh URIs when requested with the -uris or -full feed type.
This was broken when commit f2b822f8 fixed authority browsing.

holdings_xml-full never appeared to retrieve URIs properly, so that has
been added.

This also makes holdings_xml-uris behave in the new manner of URIs as per
git commit ba47ecc61, retrieving URIs for ancestors rather than descendants.

Signed-off-by: James Fournie <jfournie@sitka.bclibraries.ca>
Signed-off-by: Dan Scott <dscott@laurentian.ca>
12 years agoSupport auto-login in staff client
Thomas Berezansky [Wed, 11 Jan 2012 19:41:15 +0000 (14:41 -0500)]
Support auto-login in staff client

By adding three new command line parameters:

-ILSuser - Username to log in with
-ILSpassword - Password to use
-ILShost - hostname to use

If, and only if, all three are specified *and* we think we have an already
registered workstation for the hostname do we trigger an auto login.

Otherwise we just fill everything in and wait for the user.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoMove csp definitions from 002 to 950, so they can use i18n.
Lebbeous Fogle-Weekley [Wed, 11 Jan 2012 19:53:50 +0000 (14:53 -0500)]
Move csp definitions from 002 to 950, so they can use i18n.

I don't /think/ there's a point in having an upgrade script to go along
with this, but someone who understands oils_18n_gettext() better should
weigh in.

Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
12 years agoMerge remote branch 'working/collab/berick/invalidate_email_and_phone_revised'
Lebbeous Fogle-Weekley [Wed, 11 Jan 2012 15:37:29 +0000 (10:37 -0500)]
Merge remote branch 'working/collab/berick/invalidate_email_and_phone_revised'

Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
12 years agoUse org_depth for INVALID penalties collab/berick/invalidate_email_and_phone_revised
Bill Erickson [Wed, 11 Jan 2012 14:32:58 +0000 (09:32 -0500)]
Use org_depth for INVALID penalties

* Honor the org_depth setting on the penalties when applied
* Default to org_depth 0 (i.e. global) penalty application for invalid penalties
* Use the patrons' home_ou as the penalty org unit for patron reg invalidate actions.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoMark email addresses and phone numbers invalid
Lebbeous Fogle-Weekley [Tue, 27 Dec 2011 23:02:38 +0000 (18:02 -0500)]
Mark email addresses and phone numbers invalid

This comes from an idea from Jeff Godin.  For staff to indicate an
email address or phone number "invalid," for whatever definition of
"invalid" has meaning at the institution (as in invalid addresses
today), there is now a UI control in the patron editor.

This UI control invokes a middle layer method that will clear the email
(or phone) field from actor.usr, and create a corresponding standing penalty
against the user, for staff to notice next time they bring up said patron in
the staff client.  Such penalties will be archived whenever that patron's
email address or phone number is updated again.

The middle layer method is a wrapper around a method that may take
different parameters (like an email address instead of a patron ID) to
potentially support future uses such as invalidating email addresses
automatically in batch.

Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoReceipt Template Non-String Protection
Thomas Berezansky [Mon, 19 Dec 2011 20:55:52 +0000 (15:55 -0500)]
Receipt Template Non-String Protection

Don't try to replace on things that aren't strings.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Jason Etheridge <jason@esilibrary.com>
12 years agoRelabel Force Context in receipt template editor
Jason Etheridge [Wed, 11 Jan 2012 04:48:58 +0000 (23:48 -0500)]
Relabel Force Context in receipt template editor

Signed-off-by: Jason Etheridge <jason@esilibrary.com>
12 years agoAdd Context to Receipt Templates
Thomas Berezansky [Tue, 20 Dec 2011 16:49:16 +0000 (11:49 -0500)]
Add Context to Receipt Templates

By default the print context is used, but this enabled each template to be
assigned a specific printer context that it is intended for.

This means that things that normally use "Default" can be forced to, say,
"Receipt" and such easily.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Jason Etheridge <jason@esilibrary.com>
12 years agoMake Reprint Last printing context aware
Thomas Berezansky [Mon, 19 Dec 2011 22:08:09 +0000 (17:08 -0500)]
Make Reprint Last printing context aware

Allows for re-use of previous printer context and all settings thereof.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Jason Etheridge <jason@esilibrary.com>
12 years agoRemove 'boo' alert in hold details interface
Jason Etheridge [Tue, 10 Jan 2012 16:55:20 +0000 (11:55 -0500)]
Remove 'boo' alert in hold details interface

Willing to let any surprises here be natural. :-)  We can re-bug if there are
issues.

Signed-off-by: Jason Etheridge <jason@esilibrary.com>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agofix breakage from recent merges
Jason Etheridge [Tue, 10 Jan 2012 20:49:23 +0000 (15:49 -0500)]
fix breakage from recent merges

Also, a good argument for keeping all perm additions in the same INSERT in the
950 file, since git would have reported a merge conflict against master had I
done that instead of simply appending the upgrade script to the file.

Signed-off-by: Jason Etheridge <jason@esilibrary.com>
12 years agoTerminology adjustment to reduce conflicts with the term "recall"
Mike Rylander [Tue, 10 Jan 2012 20:14:59 +0000 (15:14 -0500)]
Terminology adjustment to reduce conflicts with the term "recall"

Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoStamping force and recall hold permission addition script
Mike Rylander [Tue, 10 Jan 2012 20:13:58 +0000 (15:13 -0500)]
Stamping force and recall hold permission addition script

Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoCompleting Force/Recall Holds
Thomas Berezansky [Thu, 6 Oct 2011 13:13:38 +0000 (09:13 -0400)]
Completing Force/Recall Holds

Add support for the Force and Recall hold types to be something other than
just aliases of Copy holds.

Both holds are made to cut in line over *all* other holds and both ignore
all hold rules, including copy, location, and status holdable flags.

Recall holds, when they reach their destination, will be flagged to be sent
to cataloging.

In addition, to place either kind of hold you need a new permission at the
copy's circulation library:

COPY_HOLD_FORCE for force holds
COPY_HOLD_RECALL for recall holds

Also, some re-ordering of logic should result in a fix for issues with
capturing holds as transits and/or suppressing holds and the hold shelf
logic.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoMerge branch 'master' of git.evergreen-ils.org:Evergreen
Mike Rylander [Tue, 10 Jan 2012 20:11:07 +0000 (15:11 -0500)]
Merge branch 'master' of git.evergreen-ils.org:Evergreen

12 years agoStamping upgrade script for in-db hold permit fixups
Mike Rylander [Tue, 10 Jan 2012 20:03:57 +0000 (15:03 -0500)]
Stamping upgrade script for in-db hold permit fixups

Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoAdd customization to staff client serial and print CSS files
Dan Scott [Tue, 10 Jan 2012 19:53:06 +0000 (14:53 -0500)]
Add customization to staff client serial and print CSS files

The *_custom.css variants of these are created automatically at install
time, so give the parents the ability to actually use them.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Jason Etheridge <jason@esilibrary.com>
12 years agoTPac messages for item/location/status not holdable
Thomas Berezansky [Thu, 6 Oct 2011 18:23:26 +0000 (14:23 -0400)]
TPac messages for item/location/status not holdable

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoFix INDB hold permit holdable checking
Thomas Berezansky [Thu, 6 Oct 2011 15:48:21 +0000 (11:48 -0400)]
Fix INDB hold permit holdable checking

Check Item/Status/Location holdable flags

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoAdd a "staff_alert" column to config.standing_penalty, and ...
Lebbeous Fogle-Weekley [Tue, 10 Jan 2012 17:59:57 +0000 (12:59 -0500)]
Add a "staff_alert" column to config.standing_penalty, and ...

... consult this when deciding whether to show the stop sign page in the
patron interface of the staff client, rather than explicitly checking
for the id of the ALERT_NOTE config.standing_penalty.

Now only show the standing penalty if the staff_alert value is true,
instead of unconditionally showing it for all penalties with a
block_list value.  This allows staff to configure blocking penalties
that do not alert.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
12 years agoMerge remote-tracking branch 'eg-working/user/senator/tpac-bookbag-viewer'
Mike Rylander [Tue, 10 Jan 2012 19:26:50 +0000 (14:26 -0500)]
Merge remote-tracking branch 'eg-working/user/senator/tpac-bookbag-viewer'

12 years agoTpac: better "HTML view" for shared lists under "my lists" user/senator/tpac-bookbag-viewer
Lebbeous Fogle-Weekley [Tue, 15 Nov 2011 06:50:00 +0000 (01:50 -0500)]
Tpac: better "HTML view" for shared lists under "my lists"

From the "my lists" interface, you get a link labeled "HTML View" for
any shared lists, and this link, while meant to be shared, just
gives you a search results page where the only search term is simply "in
the given list."

This commit makes the search results page a little smarter in that case,
in order to
    a) show you the bookbag metadata, including name, description and
        item notes.
    b) allow you to keep searching *within* your list, until you don't
        want to anymore, at which point there's a checkbox you can uncheck.

Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
12 years agoStamping upgrade script for SMS notification branch
Mike Rylander [Tue, 10 Jan 2012 19:14:38 +0000 (14:14 -0500)]
Stamping upgrade script for SMS notification branch

Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agofix existing Notification Type typo collab/phasefx/sms_msgs2
Jason Etheridge [Mon, 31 Oct 2011 09:40:15 +0000 (05:40 -0400)]
fix existing Notification Type typo

Signed-off-by: Jason Etheridge <jason@esilibrary.com>
12 years agoPrevent unshared warnings in hold placement closure
Bill Erickson [Mon, 9 Jan 2012 15:46:52 +0000 (10:46 -0500)]
Prevent unshared warnings in hold placement closure

sub data_filler {} becomes $data_filler = sub {}

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Jason Etheridge <jason@esilibrary.com>
12 years agoSMS texting
Jason Etheridge [Thu, 22 Sep 2011 13:17:50 +0000 (09:17 -0400)]
SMS texting

For SMS functionality we're basically converting a carrier and a phone number
into an email address and sending via SMTP like other email notifications.
There is administrative UI for configuring these mappings:

    Admin -> Server Settings -> SMS Carriers

The permission ADMIN_SMS_CARRIER is needed to use this interface. In a stock
Evergreen installation, this is given to the Global Administrator group.

In this interface, any occurance of "$number" in the Email Gateway field will
change into the pertinent SMS phone number when the mapping gets used. We're not
doing anything fancy here for verifying or munging phone numbers, but you could
do munging in the pertinent SMS Action/Trigger templates, or better, contribute
code for the OPAC templates and/or the utility method get_sms_gateway_email in
Trigger/Reactor.pm.

Our set of stock mappings comes from
http://en.wikipedia.org/wiki/List_of_SMS_gateways

There's no automated process for keeping this up-to-date, though some volunteer
with a Wikipedia account could add the page to their watchlist for changes and
let us know if something needs changing.

Set the org unit setting "SMS: Enable features that send SMS text messages."
(database name "sms.enable") to True to expose the following:

  * SMS notification widgets in the TT-OPAC hold placement interface (to notify
    when a hold is ready for pickup)

  * "(SMS)" links next to call numbers on the TT-OPAC record details page. The
    interface spawned by these links require user authentication by default, but
    this can be changed by setting the org unit setting "SMS: Disable auth
    requirement for texting call numbers." to True. The database name for that
    setting is "sms.disable_authentication_requirement.callnumbers".

  * New options in TT-OPAC My Account -> Account Preferences -> Notification
    Preferences (we also add in some missing prefs for holds outside of SMS)

There are two pertinent Action/Trigger templates under Admin -> Local
Administration -> Notifications / Action Triggers:

  * SMS Call Number
  * Hold Ready for Pickup SMS Notification

Don't disable these. We rely on the sms.enable YAOUS as the master on/off
switch.

Also, it's probably best to have just one sms.enable for the whole consortium.
If you mix and match on/off settings here, then user preferences for SMS can get
blown away if the user updates their settings in the TT-OPAC at an org where SMS
is disabled.  Hrmm, the same would probably happen if the user jumps between the
TT-OPAC and the original JS-PAC.

Signed-off-by: Jason Etheridge <jason@esilibrary.com>
12 years agoflesh settings when retrieving patron by barcode
Jason Etheridge [Thu, 29 Sep 2011 13:26:49 +0000 (09:26 -0400)]
flesh settings when retrieving patron by barcode

Signed-off-by: Jason Etheridge <jason@esilibrary.com>
12 years agoFix shelf_expire_time closed date overlap test
Jason Etheridge [Sat, 7 Jan 2012 02:02:06 +0000 (18:02 -0800)]
Fix shelf_expire_time closed date overlap test

One-liner courtesy of berick.

* Steps to test

This is time and timezone sensitive, so on the server:

Change your timezone to America/Los Angeles: sudo dpkg-reconfigure tzdata
Stop your NTP server: sudo /etc/init.d/ntp stop
Set the time to 5pm: sudo date --set 17:00:00

Stop Evergreen, Restart Postgres, Start Evergreen

On the client:

Make sure the timezone is set to Pacific time.

1) Change the Library Setting "Default hold shelf expire interval" in the Holds group to have a value of "7 days" (without the quotes) for org BR1 (or if there is an existing value, you can keep it).

2) Create a bib with one item: htest1  (Status of Available)

3) Place a title level hold on the bib

4) Check in htest1 (it should get captured for the hold)

5) Browse the Hold Shelf and note the Shelf Expire Time for the hold that captured htest1 (it should be a week from now, unless you already have a conflicting closed date configured)

6) Cancel the hold and re-check-in htest1 (to remove the Hold Shelf status)

7) In the Closed Dates Editor, Add Single Day Closing for the date noticed previously in the Shelf Expire Time for BR1.

8) Place a title level hold on the bib

9) Check in htest1 (it should get captured for the hold)

10) Browse the Hold Shelf and note the Shelf Expire Time for the hold that captured htest1 (now the bug is illustrated if you get the same date for Shelf Expire Time as you did before, since that day is now a Closed Date and should be skipped over.  The patch should fix this.)

Signed-off-by: Jason Etheridge <jason@esilibrary.com>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoMajor enhancements to openils.widget.PCrudFilterDialog
Lebbeous Fogle-Weekley [Mon, 9 Jan 2012 19:45:04 +0000 (14:45 -0500)]
Major enhancements to openils.widget.PCrudFilterDialog

openils.widget.PCrudFilterDialog is (now) a dijit that allows users to define
inclusionary filters based on any number of rows that specify a field
from a given fieldmapper class, an operator, and a value (or range of
values, for the [not] between operator).  The resulting filter is
suitable for use as the where clause of a pcrud search call.

AutoGrid has an option, showLoadFilter, that allows you to easily
provide a filter dialog in any AutoGrid-based interface, with some minor
caveats (see the comments at the top of the source for
openils.widget.PCrudFilterDialog).  AutoGrid will also pass along the
suppressFilterFields option, which works analagously to the
suppressEditFields option.  You can also build your own interfaces to
use this dijit without AutoGrid, if desired.

Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoMore aggressive recalc of standing penalties
Jason Etheridge [Tue, 3 Jan 2012 20:46:25 +0000 (15:46 -0500)]
More aggressive recalc of standing penalties

In the staff client, the Refresh button in the patron display will explicitly
ask the server to recalculate standing penalties for the patron. Other automatic
refresh-like behavior meant to synchronize parts of the patron display will not
do this.

This change tweaks the logic to ask for a recalculation with all refresh-like
behavior in the patron display, and will catch such things as staff changing the
user's permisssion profile.

An example of how you might test this:

Admin -> Local Administration -> Group Penalty Thresholds

New Penalty Threshold

Group: Volunteers
Org Unit: CONS
Penalty: PATRON_EXCEEDS_FINES
Threshold: 1

Save

Register user with Profile of Patrons

Load patron, Bills, Bill Patron, Amount: 5, Submit this Bill

Edit

Main (Profile) Permission Group: Volunteers, Save

The interface should refresh and show a Maximum Bills penalty in the patron
summary.

Signed-off-by: Jason Etheridge <jason@esilibrary.com>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoSETVAL the permission.grp_tree sequence after adding pinned IDs
Dan Scott [Thu, 29 Dec 2011 18:46:24 +0000 (13:46 -0500)]
SETVAL the permission.grp_tree sequence after adding pinned IDs

If we do not update the associated sequence after adding pinned IDs,
sites will be unable to add new permission groups until enough attempts
have failed. Let's bypass that little bit of pain.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoPrevent permission group conflicts in 2.1 upgrade script
Dan Scott [Thu, 29 Dec 2011 18:33:38 +0000 (13:33 -0500)]
Prevent permission group conflicts in 2.1 upgrade script

The 2.0-2.1 upgrade script relies on pinned IDs for permission.grp_tree
entries, which might conflict with custom permission groups that a site
might have added previously. A little manipulation can make life safe
for the pinned IDs.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoMaking the user profile selector disabled rather than readonly
James Fournie [Wed, 16 Nov 2011 00:56:16 +0000 (16:56 -0800)]
Making the user profile selector disabled rather than readonly
in the case of a user editing their own account.  This prevents
a nasty bug whereby Dojo widgets with the readOnly flag set
become labels and therefore do not correctly hold a 'value'
like a normal form widget.  See LP#806625 for details.

Signed-off-by: James Fournie <jfournie@sitka.bclibraries.ca>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoPrevent null 852 $a in marc_export
Dan Scott [Wed, 30 Nov 2011 04:09:47 +0000 (23:09 -0500)]
Prevent null 852 $a in marc_export

852 $a is supposed to correspond to the institution holding the item
from which access is given, according to the MARC Format for Holdings
Data specification. As the org unit shortnames typically don't
correspond to one of the MARC Code List for Organization entries, we've
assumed that users will define the --location parameter; however, if
that parameter isn't defined, the empty string is used and an empty
subfield is generated. This, in turn, makes other MARC-parsing tools
unhappy. So, only generate an 852 $a if we have an actual value for the
--location parameter.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoPlaceholder upgrade script for late-backport of a fix for 2.0
Mike Rylander [Mon, 9 Jan 2012 20:53:28 +0000 (15:53 -0500)]
Placeholder upgrade script for late-backport of a fix for 2.0

Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoA/T Event Revalidation shouldn't change event states from complete to found
Lebbeous Fogle-Weekley [Thu, 5 Jan 2012 23:39:07 +0000 (18:39 -0500)]
A/T Event Revalidation shouldn't change event states from complete to found

Ideally, revalidation should be guaranteed not to change anything about
the event itself at the database level, but I'm not sure we're there
yet.

Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoStamping upgrade script for current_shelf_lib
Mike Rylander [Mon, 9 Jan 2012 18:49:40 +0000 (13:49 -0500)]
Stamping upgrade script for current_shelf_lib

Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoMerge remote-tracking branch 'eg-working/user/berick/hold-current-shelf-lib'
Mike Rylander [Mon, 9 Jan 2012 18:44:16 +0000 (13:44 -0500)]
Merge remote-tracking branch 'eg-working/user/berick/hold-current-shelf-lib'

Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoLP#845763 remote added content breaks
Jason Etheridge [Mon, 26 Sep 2011 18:40:19 +0000 (14:40 -0400)]
LP#845763 remote added content breaks

remote added content breaks when using locally served content

Signed-off-by: Jason Etheridge <jason@esilibrary.com>
Signed-off-by: Dan Scott <dan@coffeecode.net>
12 years agoWrap upgrade script for archivable stat cats
Dan Scott [Thu, 5 Jan 2012 22:37:55 +0000 (17:37 -0500)]
Wrap upgrade script for archivable stat cats

Signed-off-by: Dan Scott <dscott@laurentian.ca>
12 years agoCirc Statistical Archiving
Thomas Berezansky [Sat, 17 Sep 2011 18:49:16 +0000 (14:49 -0400)]
Circ Statistical Archiving

Copy Location

Instead of only archiving the copy location with aged circs, do so with all
circs, using the copy location at time of circ. This allows for running of
reports on the copy location even after the item is no longer in it.

Statistical Categories

Add a flag to statistical categories to allow them to be archived with all
circulations (at checkout). Reports can then be run on regular and aged
circulations based on the contents of the statistical categories.

This patch was inspired by Tim Spindler's submission to
https://bugs.launchpad.net/evergreen/+bug/798255 - thanks Tim!

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Dan Scott <dscott@laurentian.ca>
12 years agoFix summary.tt2 openurl block
Thomas Berezansky [Thu, 5 Jan 2012 19:24:16 +0000 (14:24 -0500)]
Fix summary.tt2 openurl block

The extra if was likely added to fix a problem with a missing ;

The missing ; was put back, but the extra if then became a problem.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Dan Scott <dscott@laurentian.ca>
12 years agoMerge remote-tracking branch 'working/user/artunit/resolver_resolver_timeout_2012_01_...
Dan Scott [Thu, 5 Jan 2012 17:01:27 +0000 (12:01 -0500)]
Merge remote-tracking branch 'working/user/artunit/resolver_resolver_timeout_2012_01_05' into dbs/resolver_resolver_timeout_2012_01_05

12 years agoTeach .gitignore about more built locale fileso
Dan Scott [Thu, 5 Jan 2012 05:45:19 +0000 (00:45 -0500)]
Teach .gitignore about more built locale fileso

Running a complete build of locales resulted in a lot of new, unwanted
files in "git status". Hide them.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoRemove vandelay.dtd from i18n Makefile and dirs
Dan Scott [Thu, 5 Jan 2012 05:49:10 +0000 (00:49 -0500)]
Remove vandelay.dtd from i18n Makefile and dirs

Back in 46e233722f9d1ccec1bd97816bb055caa12f8096, vandelay.dtd was
removed in favour of the inline Template Toolkit localizations - so pull
vandelay.dtd references out of the i18n Makfile to avoid corresponding
errors.

Remove vandelay POT and PO files as well.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoAdd language update script for Launchpad -> Evergreen
Dan Scott [Thu, 5 Jan 2012 04:57:00 +0000 (23:57 -0500)]
Add language update script for Launchpad -> Evergreen

Launchpad uses different names for locales than we do in Evergreen, and
we want to only update translations that are actually new or have
changed in Launchpad, so dump some intelligence into a script that can
help us with that work.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoUpdate translations from Launchpad
Dan Scott [Thu, 5 Jan 2012 04:18:08 +0000 (23:18 -0500)]
Update translations from Launchpad

Created using the fancy new update_pofiles script. Huzzah!

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoResolver: Fix method signature for deleting cache entries user/artunit/resolver_resolver_timeout_2012_01_05
Dan Scott [Thu, 22 Dec 2011 22:42:03 +0000 (17:42 -0500)]
Resolver: Fix method signature for deleting cache entries

The order of arguments was incorrect and also contained an unnecessary
entry for the open-ils.resolver.delete_cached_holdings method signature.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Art <artrhyno@uwindsor.ca>
12 years agoOpenURL resolution in TPAC - further cleanup
Dan Scott [Thu, 22 Dec 2011 22:13:29 +0000 (17:13 -0500)]
OpenURL resolution in TPAC - further cleanup

We appear to be getting one null or empty value in the args.issns array,
which was causing spurious lookups of null ISSNs, so skip the entry if
it is an empty string.

Also, switch from the product-specific "sfx" variable name to the
product-neutral "openurls" as we have CUFTS in the mix these days.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Art <artrhyno@uwindsor.ca>
12 years agoMake resolver HTTP timeout setting implementation neutral
Dan Scott [Thu, 22 Dec 2011 21:08:07 +0000 (16:08 -0500)]
Make resolver HTTP timeout setting implementation neutral

Rather than exposing the underlying mechanism (LWP) for the HTTP
request via the "lwp_timeout" setting, use "request_timeout" so that if
we switch to a different HTTP library the setting name doesn't
contradict it.

Also, add an example setting to opensrf.xml.example.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Art <artrhyno@uwindsor.ca>
12 years agoTimeout for resolver interactions
Art Rhyno [Thu, 15 Dec 2011 01:13:30 +0000 (20:13 -0500)]
Timeout for resolver interactions

These changes add some timeout options for using the resolver
setup. For example:

request open-ils.resolver open-ils.resolver.resolve_holdings "issn", \
    "0013-0618", "http://sfx.scholarsportal.info/windsor", 10

where "10" is the number of seconds for a timeout. A default timeout can be
specified in the opensrf.xml file in the ResolverResolver section as well:

<lwp_timeout>30</lwp_timeout>

from TPAC, a request can be also include a timeout option:

[% IF openurl.enabled == 'true';
    FOR issn IN args.resolver_issns;
      resolver = ResolverResolver.resolve_issn(issn, openurl.baseurl,20);
          FOR res IN resolver;
%]

where "20" is the number of seconds for a timeout.

In working through this, I found some bugs in my resolver collection
code in misc_util.tt2 for isbns which I have addressed.

Signed-off-by: Art Rhyno <artrhyno@uwindsor.ca>
Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Art <artrhyno@uwindsor.ca>
12 years agoUse hold current shelf lib to determine availability : opac sorting user/berick/hold-current-shelf-lib
Bill Erickson [Wed, 28 Dec 2011 20:44:36 +0000 (15:44 -0500)]
Use hold current shelf lib to determine availability : opac sorting

The availability of a hold can now be determined by
hold.current_shelf_lib == hold.pickup_lib.

This change uses the new hold availability test to sort available
holds to front/top of a patron's holds list (for the OPAC).

Affects open-ils.circ.holds[.canceled|id_list].retrieve

Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoTeach cstore et al about predicate-style truth tests in ORDER BY clauses
Mike Rylander [Wed, 4 Jan 2012 18:32:33 +0000 (13:32 -0500)]
Teach cstore et al about predicate-style truth tests in ORDER BY clauses

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoUse hold current shelf lib to determine availability : hold shelf browse
Bill Erickson [Wed, 28 Dec 2011 18:58:45 +0000 (13:58 -0500)]
Use hold current shelf lib to determine availability : hold shelf browse

The availability of a hold can now be determined by
hold.current_shelf_lib == hold.pickup_lib.

This change updates the staff client code to only display the "available
on" value (i.e. shelf_time) in the holds list when the current_shelf_lib
== pickup_lib and not just that it's captured and on a shelf.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoUse hold current shelf lib to determine availability : SIP
Bill Erickson [Wed, 28 Dec 2011 14:54:32 +0000 (09:54 -0500)]
Use hold current shelf lib to determine availability : SIP

The availability of a hold can now be determined by
hold.current_shelf_lib == hold.pickup_lib.

This change updates the unavailable holds count function for the patron
information SIP call(s).

Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoUse hold current shelf lib to determine availability : A/T validator
Bill Erickson [Tue, 27 Dec 2011 21:34:46 +0000 (16:34 -0500)]
Use hold current shelf lib to determine availability : A/T validator

The availability of a hold can now be determined by
hold.current_shelf_lib == hold.pickup_lib.

This change updates the HoldIsAvailable action/trigger validator to use
the new test.  I've left the original belt-and-suspenders checks in
place and marked them as redundant within the code for reference.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoUse hold current shelf lib to determine availability : opac hold count
Bill Erickson [Tue, 27 Dec 2011 21:20:08 +0000 (16:20 -0500)]
Use hold current shelf lib to determine availability : opac hold count

The availability of a hold can now be determined by
hold.current_shelf_lib == hold.pickup_lib.

This change updates the API call for open hold counts for a patron.

open-ils.actor.user.hold_requests.count

Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoAlter hold pickup lib from shelf avoids transit
Bill Erickson [Tue, 27 Dec 2011 20:47:00 +0000 (15:47 -0500)]
Alter hold pickup lib from shelf avoids transit

When the pickup library for a hold is changed while the hold is on the
shelf, we no longer put the copy into transit to the new location.
Instead, we clear the shelf_expire_time (to prevent premature
expiration) and leave the hold and copy otherwise untouched.

This makes it possible for staff to identify items that are sitting on
the holds shelf that need to be put into transit to a new pickup
library.  The transit will be created when the item is checked in at the
originating library.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoNew hold status for "Wrong Shelf"
Bill Erickson [Wed, 28 Dec 2011 16:17:37 +0000 (11:17 -0500)]
New hold status for "Wrong Shelf"

Adds a new hold status code (8) to indicate when a hold is sitting on
the wrong holds shelf.

In the OPAC, a hold status of 8 is displayed as in-transit.  Neither
waiting-for-copy or in-transit are entirely accurate.  In-transit makes
slightly more sense, since the copy is captured and (slowly) making its
way to the correct shelf.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoHold current_shelf_lib for shelf browse API
Bill Erickson [Tue, 27 Dec 2011 20:55:33 +0000 (15:55 -0500)]
Hold current_shelf_lib for shelf browse API

Use the new current_shelf_lib column on hold requests to determine which
copies are on a given shelf.  This also removes the shelf_time filter
since shelf_time is guaranteed to be set if current_shelf_lib is set.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoHold current_shelf_lib API for setting/clearing.
Bill Erickson [Tue, 27 Dec 2011 18:18:08 +0000 (13:18 -0500)]
Hold current_shelf_lib API for setting/clearing.

Sets and clears the hold.current_shelf_lib value as appropriate during
hold capture, transit checkin, hold resetting, etc.

Also, we now create hold transits (instead of regular transits) when a
captured copy is (unexpectedly) found at the wrong branch and needs to
transit to the pickup lib.  This can happen if the captured copy simply
transits to the wrong place (existing behavior) or the pickup lib for
the hold was changed while the copy was on the shelf (new behavior).

Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoHold current_shelf_lib DB and IDL
Bill Erickson [Tue, 27 Dec 2011 17:19:05 +0000 (12:19 -0500)]
Hold current_shelf_lib DB and IDL

Schema, upgrade, and IDL pieces for a new
action.hold_request.current_shelf_lib column.  The goal of the column is
to track the location where a hold is currently sitting on a hold shelf.
Typically, this will be the pickup library, however, if the pickup
library has changed while the hold was on the shelf, the current shelf
lib will be different.

The upgrade script sets current_shelf_lib to match the pickup_lib for
all holds that are currently active and on the shelf.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
12 years agoAvoid updating deleted call numbers for 2.0 -> 2.1 upgrade
Dan Scott [Tue, 22 Nov 2011 16:55:45 +0000 (11:55 -0500)]
Avoid updating deleted call numbers for 2.0 -> 2.1 upgrade

25% of the call numbers on our production system are deleted, so
filtering out the deleted call numbers from the update in the 2.0 -> 2.1
upgrade saves a significant amount of time.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoAdd OpenILS::WWW::Proxy::Authen Module
Thomas Berezansky [Tue, 3 Jan 2012 17:00:47 +0000 (12:00 -0500)]
Add OpenILS::WWW::Proxy::Authen Module

Enables HTTP Basic Authentication access control.

Uses the OILSProxyPermissions and OILSProxyLoginType settings, but prompts
are controlled by the Apache AuthName directive.

This module allows things like Directory Indexing and non-perl or otherwise
incompatible with the normal proxy module Response (or similar) handlers to
be password-protected.

It also supports the OpenILS::WWW::Proxy user/passwd CGI params to allow
an easier transition between the two.

For example:

<Location /authen_login/>
    Options +Indexes
    PerlOptions +GlobalRequest
    PerlSetVar OILSProxyPermissions "VIEW_REPORT_OUTPUT"
    PerlSendHeader On
    AuthType Basic
    AuthName "Notices Login"
    PerlAuthenHandler OpenILS::WWW::Proxy::Authen
    require valid-user
    allow from all
</Location>

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoChange default proxy configs to Authen variant
Thomas Berezansky [Tue, 3 Jan 2012 18:48:18 +0000 (13:48 -0500)]
Change default proxy configs to Authen variant

Also, because Authen causes Indexes to function, turn them off by default.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
12 years agoStamping upgrade script for coded value map index normalizer
Mike Rylander [Wed, 4 Jan 2012 15:36:08 +0000 (10:36 -0500)]
Stamping upgrade script for coded value map index normalizer

Signed-off-by: Mike Rylander <mrylander@gmail.com>