Liam Whalen [Thu, 11 Aug 2011 18:36:19 +0000 (14:36 -0400)]
Fixed seaching for a colon (:) surrounded by white space
When searching for a colon surrounded by white space the search would
freeze. An example of such a search would be:
Climate change economics and policy : an RFF anthology
This was happening because the decompose function within QueryParser.pm
Would build a regular expression that would search the query for both
classes and class aliases e.g (keyword and kw). However, when buliding
the regex for aliases QueryParser would add extraneous or symbols (|)
to the end of the regex without adding the accompanying alias.
This was happening because there was a check to see if the corresponding
class to each alias had already been added to the regex. But, the
check to see if the alias had already been appened to the regex happened
too late. I have moved the check to encopase the appending of the or
symbols and the class. Signed-off-by: Liam Whalen <lwhalen@evergreen-dev.catalogue.nrcan.gc.ca> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Dan Scott [Tue, 23 Aug 2011 13:47:47 +0000 (09:47 -0400)]
Add pgsql 9.0 target for Debian / Ubuntu, and a Fedora 15 target
People are starting to adopt PostgreSQL 9.0 in Evergreen 2.0 as a
stepping stone towards Evergreen 2.1; make it easier for them by
providing a target in the 2.0 Makefile.install.
Also, while we're in here, remove the Fedora 13 reference and replace it
with Fedora 15, as Fedora 13 is no longer supported and Fedora 15 comes
with the power of PostgreSQL 9.0. OH YEAH!
Bill Erickson [Fri, 19 Aug 2011 19:50:22 +0000 (15:50 -0400)]
Vandelay: repair item attr context org selector
1. Prevents resetting the context selector to the workstation org unit
each time it's changed.
2. Prevent the unintentional pileup of dojo.connect() events, which
can lead to exponential growth in the number of server calls to fetch
import-item-attribute-definitions with each change of the context org
selector.
Signed-off-by: Bill Erickson <berick@esilibrary.com>
Ben Shum [Tue, 2 Aug 2011 15:15:57 +0000 (11:15 -0400)]
#LP801961, error when running edi_fetcher.pl
This patch addresses an error encountered when running edi_fetcher.pl.
The method "is_dir" should be just plain "dir" in RemoteAccount.pm file. Signed-off-by: Ben Shum <bshum@biblio.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Dan Wells [Tue, 16 Aug 2011 15:22:36 +0000 (11:22 -0400)]
Improve Vandelay Import/Merge Checkbox Labels
Since these labels are used both for the initial import and also
for imports from the queue, the use of the word "Auto" can be
confusing and misleading. This commit reflects changes already
made in trunk for these labels.
Signed-off-by: Dan Wells <dbw2@calvin.edu> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Dan Wells [Tue, 16 Aug 2011 15:03:16 +0000 (11:03 -0400)]
Fix importing of 'No Match' records from a queue
This small change honors the 'No Match' checkbox when importing
from a queue.
This bug has existed for a while, but was only recently exposed
by 06e4d3370068002a303c9a5a03448ee0e1249fc0. Before that commit,
no-match records always imported, even when you didn't want them.
After that commit, they import when wanted on the initial load,
but could not be imported from the queue.
Signed-off-by: Dan Wells <dbw2@calvin.edu> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Dan Wells [Tue, 16 Aug 2011 21:22:47 +0000 (17:22 -0400)]
Stricter order for actor.org_unit_parent_protect()
actor.org_unit_parent_protect() may not work due to the fact
that 'IF' conditions in PL/pgSQL are not necessarily processed
in the order written. This line:
"IF TG_OP = 'INSERT' OR NEW.parent_ou
IS DISTINCT FROM OLD.parent_ou THEN"
may fail because the 'IS DISTINCT FROM' happens before the
'INSERT' check, and and that fails because there is no 'OLD'
variable for INSERTs.
This commit may not be the optimal style for this circumstance
in this language, but it works. It also appears to change more
than it really does due to a loss of one level of indentation in
the structure.
Signed-off-by: Dan Wells <dbw2@calvin.edu> Signed-off-by: Dan Scott <dscott@laurentian.ca>
Dan Scott [Mon, 15 Aug 2011 17:42:55 +0000 (13:42 -0400)]
LP#790329 org_lasso search is broken
Fix the JavaScript error when we attempt to create a feed for the
shortname of the org_unit_lasso (lassos have no shortname) - which lets
the request hit the backend Perl module, which in turn chokes on a test
for OU that only allows two conditions: either all digits is treated as
a numeric ID for an org unit, or it is a shortname. Of course, lassos
are negative integers, so we have to modify the test slightly to make it
happier.
There was no depth for org lasso copy counts, and this was handled
correctly in the main case by the asset.opac_lasso_record_copy_count()
function and its staff variant, but when a copy was not found at a given
org_unit in the lasso a request was made for the non-existent depth and
the function would error out.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Keep the logging output of the EDI translator by default
There is valuable troubleshooting information there that is otherwise hard to
find. This particularly matters when the output of an EDI
Action/Trigger template (JEDI) doesn't successfully get translated to
EDIFACT for nonobvious reasons.
In production environments, you might instead pipe to logger so that you can
collect output with syslog, rather than in a flat file. As long as
output goes *somewhere.*
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com> Signed-off-by: Jason Etheridge <jason@esilibrary.com>
Galen Charlton [Fri, 12 Aug 2011 20:09:11 +0000 (16:09 -0400)]
return only the one applicable OU setting value
Correct actor.org_unit_ancestor_setting so that it returns
at most one setting value, rather than the entire set
of values defined for the OU and its ancestors.
Signed-off-by: Galen Charlton <gmc@esilibrary.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
In a middle-layer method for returning holdable formats on a metarecord,
Do a better test of copy holdability than we were doing previously.
We can't do a perfect test: we don't really know what patron we're doing
this for, and even if we did, from here it's nontrivial to figure out
whether we're doing indb holds or script-based, much less run the tests.
Still, we can test whether a copy's in a holdable status, a holdable
location, and is itself not explicitly marked unholdable.
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
AKA:
Lang is 3 characters long. Entering 1 character would cause focus to leave.
MARC would also update incorrectly.
This only triggers the update when the full 3 characters are entered.
This not only prevents issues with catalogers editing multi-character fixed
fields but also makes it less likely they accidentally corrupt the records.
Signed-off-by: Thomas Berezansky <tsbere@mvlc.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Dan Wells [Fri, 29 Jul 2011 22:09:19 +0000 (18:09 -0400)]
Vandelay fix for merging without loading new
This fix is derivative of da3a453442050482a419deff91d3dc92fdbf132a
in master, but with new feature code removed for backport to 2.1
and 2.0. It does the following:
- renames 'vlUploadQueueAutoImport' to 'vlUploadQueueImportNoMatch' to
match identical change in master and to increase code clarity
- honors this flag when doing a merge.
Previously, if you checked one of the two auto-merge boxes, any records
which did not merge loaded as new records even if the 'Auto-Import
Non-Colliding Records' box was not checked. You can now do one, the
other, or both together (auto-importing and merging) as needed.
Signed-off-by: Dan Wells <dbw2@calvin.edu> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Deleted a line the removed single quotes (') from search strings
The multiclass_query function replaces single quotes with spaces (') ( ).
This causes a problem when toggling between Advanced and Basic search.
If a search is conducted with a ' in it, that quote appears in the
basic search box displayed above the results. However, if the user
then clicks the 'Advanced' button to toggle to the advanced search
the single quote is missing from the search term. By removing the line
$query =~ /s/'/ /go; from Biblio.pm this problem is resolved.
Signed-off-by: Liam Whalen <lwhalen@evergreen-dev.catalogue.nrcan.gc.ca> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Dan Scott [Thu, 28 Jul 2011 19:49:12 +0000 (15:49 -0400)]
Fix broken builds due to test that can't find its data
LP 817699 reports a problem that began with commit e9cd992fa4dbf1013346336193cb7469ecee10a8, reintroducing a problem that
had previously been resolved with commit f017d1261c369b9b5cc3c9cfc4f50d3cdf12a445. In short, tests can and are
run from different directories, but a new test opened a file without
making any allowance that the test might be run from anything other than
the /test/ directory.
This fix uses the dirname(__FILE__) approach to provide the appropriate
relative directory for the test data, and enables the tests to be
processed without dying.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Make users confirm they really want to delete lineitems from POs...
... when they've already been ordered. There's really no reason to ever
make such a deletion this that I can think of, but I use a confirm()
instead of stricter measures in case I'm missing something.
Dan Wells [Thu, 21 Jul 2011 16:14:02 +0000 (12:14 -0400)]
Prevent control numbers from duplicating
In maintain_control_numbers(), if you have more than one 001 or
003, and at least one is the correct one, you will end up
duplicating the correct number every time the record is saved.
For example, if the incoming record was record ID # 12345, and
the record contained:
001: 12345
001: ocm10202
... then after maintain_control_numbers() ran, the record would
contain:
001: 12345
001: 12345
Also, clean up some leftovers from the refactor I suggested in the
previous commit.
Signed-off-by: Dan Wells <dbw2@calvin.edu> Signed-off-by: Dan Scott <dscott@laurentian.ca>
Dan Scott [Thu, 21 Jul 2011 15:12:36 +0000 (11:12 -0400)]
Add an unwrapped upgrade script for OCLC-aware control numbers
The upgrade script creates the SCN and LCCN search indexes and
populates them using metabib.full_rec as a source; cheating, but
the normalized values will work for non-exact search purposes. Sites can
reingest all of their bibs if they want exact search to work.
Also, refactor maintain_control_numbers() using a suggestion by
Dan Wells to eliminate some duplicate code.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Bill Erickson <berick@esilibrary.com>
Dan Scott [Thu, 21 Jul 2011 14:18:55 +0000 (10:18 -0400)]
Treat OCLC numbers specially in maintain_control_numbers
For some reason, many records that come with OCLC numbers in the 001
field are not populated with a 003 field. This resulted in the OCLC
number being thrown away entirely, rather than being moved into the 035,
as there was no corresponding control number identifier field.
However, given that we know that control numbers starting with "ocm" or
"ocn" are special OCLC numbers, we can generate the 035 accordingly even
in the absence of a 003. This update to maintain_control_numbers()
teaches it to do the right thing for OCLC numbers.
In addition, add an identifier search index so we can easily find
records by their system control numbers (035 $a subfields).
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Bill Erickson <berick@esilibrary.com>
Dan Scott [Tue, 26 Jul 2011 00:09:18 +0000 (20:09 -0400)]
Ubuntu Lucid needs MARC::Record from CPAN
As Ubuntu Lucid ships with MARC::Record 2.0.0, and Serials requires
2.0.1 or greater, we must install MARC::Record from CPAN or face failing
open-ils.search requests.
Michael Peters [Thu, 21 Jul 2011 15:21:34 +0000 (11:21 -0400)]
LP#813151 Copy Location sort order in Advanced Search
This patch addresses the unintuitive copy location sort order in
Advanced Search when searching at a specific branch. Thanks to
Dan Wells for the code suggestion which changes the order in the listbox
to alphabetical sort by asset.copy_location.name.
Tested, and confirmed working in 2.0.4 test and production environments.
Signed-off-by: Michael Peters <mrpeters@library.in.gov> Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Michael Peters [Wed, 20 Jul 2011 15:09:40 +0000 (11:09 -0400)]
LP#647121 Event handling on override abort
Discussed on IRC, phasefx discovered that several events were not being properly
handled when they were empty strings. Tested and working on Evergreen 2.0.4.
Signed-off-by: Michael Peters <mrpeters@library.in.gov> Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Dan Wells [Tue, 19 Jul 2011 16:02:17 +0000 (12:02 -0400)]
MFHD compressed holding fixes
1. Add new utility method to MFHD.pm:
holdings_by_caption(): return all holdings attached to a
given caption
2. Add 'passthru_open_ended' option to get_decompressed_holdings()
Previously, attempts to decompress an open-ended holding
would error out. Now, in the absence of this option,
open-ended holdings are discarded and you get a warning
(since they cannot logically be decompressed), while if
this option is 'true' they are passed back unaffected
3. compressed_to_last() on an open-ended holding now more
correctly returns 'undef' rather than the unaltered holding
4. get_compressed_holdings() will now honor an open-ended holding
by treating it as "infinite", and thus absorbing any holdings
which would follow
5. Overloaded comparison operator now correctly detects "swap"
cases (where only the second operand is a holding)
6. Overloaded comparison operator now consistently treats
open-ended holdings as "greater-than" a single or closed
holding which has the same starting point
7. Fix 2 thinkos in comparison operator for overlapping
compressed holdings
8. Add new compressed_end() method to Holding.pm which can add
or set a new ending to a holding, making compressed if needed
9. Correctly recognize partially compressed holdings
If a holding is defined as:
863 40 $81.1 $a1 $b2-10
this actually means:
863 40 $81.1 $a1-1 $b2-10
so let's make sure to treat it that way.
9. Expand the MFHD test suite to better cover the improvements
in this commit
There is also the beginnings of a _get_truncated_holdings()
method for handling odd cases where an open-ended holding is
followed by a single/closed holding, but it is currently
commented out, pending further design consideration.
Signed-off-by: Dan Wells <dbw2@calvin.edu> Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
James Fournie [Mon, 6 Jun 2011 17:00:22 +0000 (10:00 -0700)]
Spine label editor assumes LC as reported in LP #780665.
This patch encapsulates the LC-assuming code in an IF block which
considers the asset.call_number.volume.label_class. If that is equal to
3, it will use the LC formatting.
Signed-off-by: James Fournie <jfournie@sitka.bclibraries.ca> Signed-off-by: Dan Scott <dan@coffeecode.net>
LP795032 Fix cursor rendering and dropdown position in holdings maintenance OU dropdown Signed-off-by: mrpeters-isl <mrpeters@library.in.gov> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Fixes multiple potential issues:
1 - Bad home ou on patron breaks circ rules
Ex. Patron edited while editor would let you pick bad home ou
2 - Item not allowed to circ at patron home ou
Ex. Patron went to where they were allowed to pick it up
3 - Fines change to patron home ou fine rules
Ex. Patron's home ou doesn't charge fines but circ lib does
Ex. Circ lib doesn't charge fines but Patron's home ou does
Signed-off-by: Thomas Berezansky <tsbere@mvlc.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Corrected the logic of format string building for metarecord holds and...
made hold possiblity checking for metarecord holds respect the format
string (so you can't place holds on formats for which there will never
be anything targetable)
Made possible by much concerted effort from Mike Rylander
Prior to this patch, the order that line items were displayed
in (e.g.) a purchase order view was effetively randomized based
on the amount of time it would take for async calls to fetch
additional line item details to return.
Dan Scott [Tue, 5 Jul 2011 15:08:31 +0000 (11:08 -0400)]
LP805971: Specify UTF8 encoding in password reset templates
As reported by Liam Whalen in Launchpad bug 805971: "The file
/openils/var/template/password-reset/reset-form.tt2 does not display
utf-8 characters. I modified it to include '<meta
http-equiv="Content-Type" content="text/html; charset=UTF-8" />' inside
the <head> tag, and the fr-CA version of the page now displays
correctly."
I duplicated the problem in Firefox 5 and confirmed that the addition of
the META tag corrects the problem.
Michael Peters provided a patch to add some missing labels...
... to a key acquisitions interface. It works. Also fixed
some unclosed tags while I was at it.
Wasn't sure whether to copy and paste Michael's sign-off or what, but
here's the link to his original patch for purists:
https://launchpadlibrarian.net/74191964/0001-LP802578-Acquisitions-Batch-copy-update-missing-head.patch
Dan Scott [Fri, 24 Jun 2011 14:44:43 +0000 (10:44 -0400)]
Fix broken images for items without ISBNs in search results
The search results code happily sets the src attribute of the cover
image to an empty string (as returned by cleanISBN()) if currentISBN has
not been defined (which is generally the case if an item doesn't have an
ISBN, such as a DVD or a thesis or an old book).
Protect against the empty string and set the src attribute to
'/opac/images/blank.png' to avoid broken image indicators in search
results.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Dan Scott <dan@coffeecode.net> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Jason Stephenson [Wed, 22 Jun 2011 14:48:58 +0000 (10:48 -0400)]
Check if hold is really available in Trigger::Validator.
Add checks for shelf time and no fulfillment time in
HoldIsAvailable in OpenILS::Application::Trigger::Validator.
We've had some issues with poorly migrated data and people
messing with holds that causes the original logic to trigger
for unfilled holds. Plus, the extra precaution of checking
more precise conditions of an actually filled hold can't hurt,
can it?
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Michael Peters [Wed, 22 Jun 2011 14:14:55 +0000 (10:14 -0400)]
LP#790639: Provide actual text, rather than id values in patron search results for various columns
Cleaned up some tabs versus spaces and a needless trailing comma from original patch. Not porting to master, hoping to use collab/phasefx/fm_columns instead.
Signed-off-by: Jason Etheridge <jason@esilibrary.com> Signed-off-by: Michael Peters <mrpeters@library.in.gov>