senator [Mon, 21 Feb 2011 19:42:38 +0000 (14:42 -0500)]
big ol' commit making advanced search work, albeit with issues
most obvious issue is that advanced search leads to a result page that
renders with a basic search form filled out in a silly-looking way
I'm thinking it'd be best when showing results from an advanced search
to *not* show that basic search form, but instead have a hidden version
of the advanced search form, prepopulated, revealable by a button
labeled "refine your search" or something.
That way we'd not have to worry about reversing query parser syntax back
into broken-out widget values. make sense?
If a series-class index definition has been removed, the data remains in the field entry table. This is because there was no fkey previously. We need to clean that data out so that the fkey can be validated during upgrade.
erickson [Fri, 18 Feb 2011 14:35:03 +0000 (14:35 +0000)]
More user transaction retrieval API cleanup
Use consistent xact fleshing mechanism for circulations both for
less/cleaner code and to consistently take advantage of CSToreEditor for
authoritative support.
Added .flesh option to transaction history api calls, consistent with
non-history version.
Added a have_payments history call so we can limit retrieval to xacts
that had at least 1 payment
When making sub-req calls to payment API calls, call .authoritative as
appropriate
senator [Thu, 17 Feb 2011 20:53:36 +0000 (20:53 +0000)]
Booking: fix the targeter in the I'm-reserving-this-exact-resource-with-this-
exact-barcode case.
It should have always worked like this. This should better mirror the behavior
in the holds targeter when placing a copy-level hold. Basically don't fail
to target a resource for a reservation later just because it's not in an
available status right at this moment.
dbs [Thu, 17 Feb 2011 18:55:31 +0000 (18:55 +0000)]
Avoid mixed-content warnings due to HTTP link for Google Chrome Frame
We're hardcoding this to HTTPS for now to avoid the mixed-content warnings that
occur when content location is https:// and the linked script is at http:// but
a config-aware patch probably wouldn't be a bad idea.
dbs [Thu, 17 Feb 2011 03:27:53 +0000 (03:27 +0000)]
Teach maintain_901 trigger to respect the "Use record ID for TCN" global flag
Rather than relying on the Perl layer to set the correct TCN on the way in,
do it as part of the in-database indexing to ensure that we have consistent
results no matter how the record gets into the database.
miker [Wed, 16 Feb 2011 20:47:11 +0000 (20:47 +0000)]
Patch from Thomas Berezansky to implement circulation matchpoint value fallthrough, whereby specific rules can inherit values from generic rules.
Background, taken from https://bugs.launchpad.net/evergreen/+bug/635463:
Theory:
Make the things returned (circulate, duration_rule, recurring_fine_rule, max_fine_rule, hard_due_date, total_copy_hold_ratio, available_copy_hold_ratio and renewals) "fall through" when set to NULL.
The circ matrix edit screen has had some changes too, partially for showing "Inherited" in some places where appropriate, partially for field ordering and editing display and consistency. The fields that show up earlier contribute to tests that will be applied to the circulation attempt, while the "results" that do not change what rows are considered are grouped at the end.
Pros:
You can override a subset of those fields with a specific rule while allowing broader rules to fill in the holes.
This may result in less duplication of information across rules, making things easier to maintain.
Thus, this may result in less rules in general, and thus less processing time on sorting them overall.
Cons:
Manually figuring out the specifics of what will happen will take more time/effort.
Changing a single rule may have a greater unintended effect on other rules.
Staff would need training for when to have a rule fall through and when to set it specifically.
More time to return from the DB for any rule that is "falling through" to broader rules.
Examples for the following org tree:
CONS
-SYSA
--LIBC
--LIBD
-SYSB
--LIBE
--LIBF
Implementing the following "business" rules:
At the CONS level:
By default, everything circulates, uses DFLT_DUR duration, DFLT_RFINE recurring fine, and DFLT_MFINE max fine.
Circ Modifier "book" uses the duration BOOK_DUR
Reference flagged materials don't circulate
At the SYSA level there are no special rules.
At the SYSB level the max fine should be SYSB_MFINE.
At the LIBC level the recurring fine is LIBC_RFINE
At the LIBD level circ modifier "book" uses the DFLT_DUR duration instead of "BOOK_DUR"
At the LIBE level reference flagged materials circulate.
At the LIBF level there are no special rules.
The current method would require the following circ rules to implement those business rules:
erickson [Wed, 16 Feb 2011 15:07:04 +0000 (15:07 +0000)]
added option to open-ils.auth.session.retrieve to return the full cached object, which includes the auth time (cache timeout) of the cached user object
Bill Erickson [Mon, 14 Feb 2011 18:31:50 +0000 (13:31 -0500)]
when authenticated, force the page to redirect the home page after the auth time has expired to protect patron data and prevent potentially confusing post-search-submit redirects
Bill Erickson [Mon, 14 Feb 2011 17:36:25 +0000 (12:36 -0500)]
added option to open-ils.auth.session.retrieve to return the full cached object, which includes the auth time (cache timeout) of the cached user object
Bill Erickson [Mon, 14 Feb 2011 10:24:57 +0000 (05:24 -0500)]
when a secure page is requested insecurely, direct to login page, then redirect to the originally requested page after successful login. This removes the need for explicit redirect_to and https:// in secure links
dbs [Mon, 14 Feb 2011 07:22:11 +0000 (07:22 +0000)]
Enable MFHD tests to find their testdata
When the MFHD tests wrapped in mfhd.t are invoked from outside of the directory,
they tests failed to find the mfhddata.txt file. Judicious use of the __FILE__
special literal and File::Basename::dirname() avoids that problem. Now we just
need to munge @INC to ensure that testlib.pm can be resolved (and hope that
no conflicts ever turn up).
Bill Erickson [Sun, 13 Feb 2011 22:44:04 +0000 (17:44 -0500)]
moved some code out of the main catloader module into function-specific sub-modules. Note, sub-modules still retain the OpenILS::WWW::EGCatLoader package name to ease subclassing of the top-level loader object
dbs [Sun, 13 Feb 2011 03:14:21 +0000 (03:14 +0000)]
Teach authority_control_fields.pl about record ranges
Passing --record 10,000 times at the command line sucks, and
--all is not particularly realistic for large databases. Adding
--start_id and --end_id makes this script more usable.
Also provide reasonably full POD documentation, and rely on
Pod::Usage to provide help based on it when help is requested
or passed in options don't make sense.
dbs [Fri, 11 Feb 2011 21:39:48 +0000 (21:39 +0000)]
Normalize ISBNs by stripping hyphens in search methods and in reporter.materialized_simple_record
We weren't normalizing ISBNs in search or in reporter.materialized_simple_record
which required users to exactly match the form of the ISBN as entered in the
MARC record to get a successful search result - pretty hit or miss.
The longer term fix in 2.0 and above is to make the ISBN search search against
the identifier|isbn index, which also gets ISBN10/ISBN13 equivalence goodness.
But this patch will be relatively easy to backport through to 1.6.1 and plugs
some of the holes in our exposed APIs and search points in the short term.