Fix a problem with open-ils.circ.holds.retrieve_all_from_title
Anoop Atre spotted this bug that's triggered by selecting "View Holds"
from "Actions for Selected Record" in the catalog seen through the staff
client.
Said method would error out like this:
[2011-05-20 10:04:03] open-ils.circ [ERR
:31866:CStoreEditor.pm:109:13058333633194115] editor[0|1] request error
open-ils.cstore.direct.serial.issuance.id_list.atomic :
{"subscription":[]} : Exception:
OpenSRF::DomainObject::oilsMethodException 2011-05-20T10:04:03
OpenILS::Utils::CStoreEditor
/openils/lib/perl5/OpenILS/Utils/CStoreEditor.pm:412 <500> Severe query
error -- see error log for more details
because when trying to gather issuance-type holds, it didn't properly test
whether there actually were any subscriptions and issuances related to
the bib record in question.
We must not force P-type holds as not all copies may not use parts. Imagine a situation where
only one library breaks up a season of Seinfeld by using a part per DVD, and all others leave
them bound and therefore need no part designations.
Signed-off-by: Mike Rylander <mrylander@gmail.com>
Add permission checking for updating and deleting volumes.
This addresses LP #784062 reported by Ben Shum, and I think others?
Creating volumes was already covered. The ability to delete volumes
without permission would be less often an issue in practice since you
would need permission to delete the volume's copies before you could
delete the volume itself.
Dan Scott [Wed, 18 May 2011 17:18:14 +0000 (13:18 -0400)]
Make Perl 'make check' work without 'make all'
Factor the build of Build from Build.PL into its own
make target and then make that target a prereq for the
other make targets so that we make Build from Build.PL
when we build Makefile from Makefile.am and run 'make check'
Jason Etheridge [Wed, 18 May 2011 05:05:17 +0000 (01:05 -0400)]
Include call number prefix/suffix in display and sorting of holds for Print Full Pull List (Alternate strategy). Also fix things so that we're sorting on the label_sortkey for call number, and not the label. So, for this interface, the hard-wired sort order is Copy Location Order (as defined by Admin -> Local Administration -> Copy Location Order), Call Number Prefix, Call Number Label, Call Number Suffix, and Hold Request time.
Signed-off-by: Jason Etheridge <jason@esilibrary.com>
Jason Etheridge [Wed, 18 May 2011 02:27:07 +0000 (22:27 -0400)]
have the call number checkbox for pocket labels include prefix/suffix. A %call_number% macro is still available for the bare call number label without affixes
Signed-off-by: Jason Etheridge <jason@esilibrary.com>
Jason Etheridge [Wed, 18 May 2011 02:24:21 +0000 (22:24 -0400)]
Can't use encodeURI and decodeURI for everything with persist_helper (in particular, something like "%macro1% %macro2%" as a custom entry in the label interface), so try/catch them and fall back to the original behavior.
Signed-off-by: Jason Etheridge <jason@esilibrary.com>
Database tables/access functions for prefix/suffix info
Table: config.barcode_completion
Function: evergreen.get_barcodes
Takes org unit, context, and input barcode
Context is a string and can contain:
asset - asset.copy barcodes
serial - serial.unit barcodes
actor - actor.usr (via actor.card) barcodes
booking - booking.resource barcodes
Special case: asset and serial both in context
Returns non-serial asset entries as asset
Returns serial entries as serial
Type for function return: evergreen.barcode_set
With editing interface: Admin->Local Admin->Barcode Completion
OpenSRF Call: open-ils.actor.get_barcodes
Basically a passthrough to the database function
Checks for permissions:
STAFF_LOGIN - To do anything
VIEW_USER - At home_ou of the user owning the returned
barcode when in actor context
Add get_barcode to menu.js and to xulG in a number of places
Takes a window handle, a context, and an input barcode
Passes the current OU, the context, and the input barcode to the db
If multiple results come back it pops up a dialog
Returns boolean false on no results
Returns "user_false" on dialog cancel
Returns an object with type, id, barcode on success
If dialog was brought up, returns data used to populate button
Add option for looking up actors at checkout
Org unit setting: Load patron from Checkout. Default: Don't.
Call sites for get_barcode:
Lookup Patron By Barcode (actor only)
OPAC's Staff Client Place Hold (actor only)
Checkout (asset only by default, with actor if above option set)
Checkin (asset only)
Item Status (asset only)
Signed-off-by: Thomas Berezansky <tsbere@mvlc.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Dan Scott [Tue, 17 May 2011 04:29:47 +0000 (00:29 -0400)]
LP#783486: Improve authority lookup performance
Testing showed that the two indexes added herein improve
authority lookup performance radically; on a 16 GB RAM
database server with 1.1M records, lookup times decreased
from 5500 ms to 0.223 ms. Recommended, would EXPLAIN ANALYZE
again.
Jason Etheridge [Mon, 16 May 2011 16:12:40 +0000 (12:12 -0400)]
persist partial changes to new copies in vol/copy editor has new copies are gathered.
In other words, you can do something like enter 5 in the "# of Copies" field, enter the first barcode (say b1), edit an attribute (say, set Circulate = No), and then enter a second barcode (b2). Previously, the changes made to b1 would be lost as b2 was entered (or as other movement around the barcode entry textboxes happened) and both copies would get a Circulate = Yes, but now in this scenario, you would see 1 copy set to No and 1 copy set to Yes for the Circulate attribute.
Signed-off-by: Jason Etheridge <jason@esilibrary.com>
miker [Fri, 13 May 2011 17:30:47 +0000 (17:30 +0000)]
Patch from Ben Ostrowsky (LP#782268) to simplify seed/example permission setup and move one step towards being able to rid ourselves of permission.perm_list.id
dbwells [Fri, 13 May 2011 16:01:04 +0000 (16:01 +0000)]
A bevy of MFHD bug fixes (and test cases)
1) Remove hard-coded 'gap' text from format_part()
2) Honor $ypm## for chron_to_date() for annuals
3) Removed overly simple check on $w as digit
4) Allow for combined chronologies other than 2nd level
5) Make calendar changes trump $u counts
6) Honor issue restarts at calendar changes
7) Rudimentary support of $u counts for non-restarting issue numbering
8) Special interpretation of $yps for early winters (i.e. winter is the first season of the calendar year)
9) Teach chron_to_date() about early winters
The last two points deserve some special attention. A large number of journals consider 'Winter' to be the first season of the year, so Winter 2011 means (roughly) January 2011, not December 2011. However, there is no explicit way to indicate this in the standard, and also the code relies in many ways on the fact that 24 (chronology code for winter) is greater than 21 (code for spring). To work around this, we are interpreting a certain ambiguous pattern in a particular way. Specifically, if you set $w to a digit, then set $y to 'ps24,21,22,23' (or some variation with '24' as the first value), you will get this winter-first behavior. Also, the season is treated internally as '20' then converted to '24' when processing is completed.
senator [Thu, 12 May 2011 14:15:41 +0000 (10:15 -0400)]
remove in-template fine-totaling: mod_perl code was already doing the same
also:
make that fine-totaling not use floating point math.
don't provide payment form for <= 0 totals (we're not issuing refunds)
last copyright date in footer always current year, not hardcoded