Dan Scott [Tue, 20 Nov 2012 18:55:02 +0000 (13:55 -0500)]
EResource handling improvements
* Add the ability to read (via -F xml) and write (via -T xml) MARCXML
records. Writing XML records will place one per line, making it
ideal for inserting into a database via COPY().
* Make the "Mark ISBN for SFX" functionality optional via the -I flag,
as not all electronic resources have ISBNs. (Hi, journals and music
records).
* Reduce code duplication significantly
Dan Scott [Thu, 25 Oct 2012 14:56:54 +0000 (10:56 -0400)]
Insert fields in order in ebook processing
pymarc 2.8.5 offers the add_ordered_field() method for inserting fields
in the correct numerical order in the record - so use that. Note that
you may have to run "easy_install --upgrade pymarc" to get the latest
version of pymarc installed.
Dan Scott [Thu, 4 Oct 2012 22:17:12 +0000 (18:17 -0400)]
Ebooks: Only output one record, no matter how many dupes
If you specify dupe-checking by TCN, URL, and ISBN, you only want to
generate one output record per input record, no matter how many types of
matches you get - so short-circuit the logic.
Also, handle the case where you're not specifying all dupe checks :)
Dan Scott [Thu, 4 Oct 2012 21:17:04 +0000 (17:17 -0400)]
Ebooks: handle multiple dupe options
process_fields() modifies the base record, and we were inadvertently
running the base record through the ringer every time we checked for
dupes - which would be evidenced by the addition of one 506 and 590 per
consortial member per dupe check we ran.
In the process of cleaning this up, try to dedupe some of our own code
(heh). We can probably go futher but this is a good start.
Dan Scott [Fri, 9 Mar 2012 20:35:36 +0000 (15:35 -0500)]
Carry over the leader from the original record
We iterate over every field of the original record to create the new
record. Except... the leader is not an iterable field. So we were
pushing default leaders onto every new record we were creating. That
is... suboptimal to the max.
Dan Scott [Thu, 11 Aug 2011 20:45:45 +0000 (16:45 -0400)]
Add a few more T&F data uncorruption fixes
Note that we're now seeing conflicting patterns, so some
legitimate characters are getting corrupted by the script,
while others could go either way (l stroke vs modifier prime).
As long as the fix rate is 95%+ then I'm happy.
Dan Scott [Fri, 29 Jul 2011 15:58:36 +0000 (11:58 -0400)]
Begin addressing the specific manglings of the CRKN records
To begin with, correct the mangled macrons and modifier letter half ring
that are popular in the Arabic language. Here's hoping that correcting
these byte sequences doesn't lead to corruption elsewhere.
Dan Scott [Thu, 28 Jul 2011 15:16:42 +0000 (11:16 -0400)]
Check for 020$z, 024$a,$z for ISBNs
Either our MARC record sources are horribly corrupted, or the SFX
knowledge base is questionable, or both, as we're having to search
cancelled/invalid/non-ISBNs to get matches in SFX for our electronic
records.
Also, use 506 $9 to record our institutional ID in authorization notes.
Dan Scott [Wed, 20 Jul 2011 19:23:32 +0000 (15:23 -0400)]
Refine the 506 $3 punctuation decision
From Graham Staffen:
My definitive answer (until I develop a revised definitive answer) is
that a period would always punctuate the end of the subfield except in
two instances: 1) a closing parenthesis, 2) a closing square bracket. I
have this from our MARC coding trainer who could think of no other
instances when a period is not employed.
Dan Scott [Wed, 20 Jul 2011 14:28:30 +0000 (10:28 -0400)]
Include record count in 598 $c, conditional . in 506 $e
We might as well include the record offset in the 598 so that we can
track which record includes a given problem.
Also, according to Shuzhen, we only want to add a period at the end of
the 506 $e subfield in particular cases (like when it ends in a letter
or number; not with punctuation).
Dan Scott [Thu, 23 Jun 2011 17:51:19 +0000 (13:51 -0400)]
Change link text for Windsor to "Available online"
Per proposal #1 of the June 22, 2011 Conifer ebook specification
document, Windsor wanted to change their link text to the simpler
"Available online". Making it so.
Dan Scott [Wed, 22 Jun 2011 18:50:08 +0000 (14:50 -0400)]
Check for a hit in SFX for every library we have enabled
It's possible that one of the libraries has not yet turned on a given
target in SFX, so we don't want any false negatives. And if a library
hasn't opted into a particular package, they shouldn't be one of the
enabled flags passed to this script.
Also, clean up ISBN marking and access note creation, as we were
modifying the wrong MARC record.
Dan Scott [Wed, 22 Jun 2011 16:04:10 +0000 (12:04 -0400)]
Implement ISBN lookup in SFX
Check the SFX knowledgebase for a matching ISBN and mark it via the
magical $9 SFX subfield so that we can key off of that for subsequent
queries via the catalogue.
Given that only one library may be running this script for a set of
ebook records, ensure that we're checking the results.
Dan Scott [Wed, 22 Jun 2011 14:16:55 +0000 (10:16 -0400)]
On closer inspection, 506$e != 710$a
The 710 is being used for the imprint, while the 506$e is being used to
identify the online platform.
It's questionable whether this should be required - for example, a 506
wouldn't be necessary for Project Gutenberg materials - but let's go
with that for now anyway.
Dan Scott [Wed, 22 Jun 2011 14:01:31 +0000 (10:01 -0400)]
Add 506 note handling per Windsor proposal
The 506 note is for access restrictions; we will generate one 506 field
per instutition, with a customized $a message, the consortial license
identified in the $b, and the publisher in $e, along with the library
symbol in $5 to enable the catalogue to control the display of the
message in an appropriate scope.
Galen Charlton [Wed, 1 May 2013 21:34:02 +0000 (17:34 -0400)]
update upgrade instructions for 2.4.0 release
- specify minimum supported PostgreSQL version as 9.1
- specify minimum supported OpenSRF version as 2.2.0
- update schema upgrade instructions and miscellaneous
references to 2.3
Signed-off-by: Galen Charlton <gmc@esilibrary.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Galen Charlton [Wed, 1 May 2013 21:02:57 +0000 (17:02 -0400)]
revisions to installation instructions
- Remove references to PostgreSQL 9.0; 9.1 is recommended
for Evergreen 2.4.
- Clarify that the latest version of OpenSRF now means 2.2
or later.
- Increase chances that somebody following the instructions
precisely doesn't run into a problem during the configure step.
Signed-off-by: Galen Charlton <gmc@esilibrary.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Michael Peters [Mon, 29 Apr 2013 15:14:39 +0000 (11:14 -0400)]
LP#1174359 Need to drop reporter.classic_item_list
ERROR: cannot drop view metabib.full_rec because other objects depend on it
DETAIL: view reporter.classic_item_list depends on view metabib.full_rec
HINT: Use DROP ... CASCADE to drop the dependent objects too.
Beginning at line 55 of the upgrade script, several views and functions are dropped
so metabib.full_rec can be dropped. One of them is missing.
We need to drop reporter.classic_item_list as well, for the script to work.
Signed-off-by: Michael Peters <mpeters@emeralddata.net> Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Jason Stephenson [Tue, 30 Apr 2013 17:23:24 +0000 (13:23 -0400)]
Shutdown added content sockets to prevent hung connections.
We were getting several thousand sockets hanging around in a
CLOSE_WAIT state on our server. The connections were from our
server and to our server. Further investigation showed it to be
caused by the stage2 added content lookup not closing the request
sockets when it was done reading data. This branch fixes that.
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Bill Erickson [Fri, 29 Mar 2013 13:41:44 +0000 (09:41 -0400)]
LP1076411 Return updated circ object from checkin
Retrieve an updated copy of the circulation object to return to the
caller during checkin. This ensures the data in the circ object, in
particular date fields, are consistent with the database.
Signed-off-by: Bill Erickson <berick@esilibrary.com> Signed-off-by: Ben Shum <bshum@biblio.org>
Remington Steed [Thu, 14 Mar 2013 18:37:17 +0000 (14:37 -0400)]
Add accepting_usr to IDL to fix reporter field
In the reporter interface, the view 'Payments: Brick-and-mortar' is
missing the 'Accepting User' field, which is present in the similar view
'Payments: Desk'. This field is already present in the database view and
is simply missing from the IDL. Since it is needed for certain kinds of
reports, this commit adds the missing IDL fields. It also adds the
missing 'reporter:datatype' to an existing instance of the IDL field.
Signed-off-by: Remington Steed <rjs7@calvin.edu> Signed-off-by: Ben Shum <bshum@biblio.org>
Dan Scott [Mon, 22 Apr 2013 17:00:05 +0000 (13:00 -0400)]
Unbreak make install for apache config files
The new install process installs the Apache sample configs into the
DOCDIR for Evergreen, with the expectation that packagers will pick up
the examples from the doc directory and that users will eventually be
expected to copy them from there, rather than from the source tree.
However, currently the Apache 2.2 and 2.4 sample configs have the same
names, and that causes a conflict at "make install" time. Kudos to Jason
Stephenson for catching this. The temporary solution is to rename the
Apache 2.4 files to avoid the conflict; longer term, we need to teach
make install to only make & install the files that are pertinent to the
environment on which it was built (either Apache 2.2, or Apache 2.4).
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
Repair too-timid hold targeter (it misses copies at other org units)
The patch to address bug 1162989 overreached. Whereas before that
patch, the hold targeter was wont to target copies with unholdable
statuses, after the patch the hold targeter got the statuses right but
undesirably filtered out copies whose circ_lib doesn't match the hold
pickup lib. This again probably stems from the differences between
FulfILLment's hold targeter and Evergreen's in the context of merging
the calculated proximity code.
Fix various Traditional and holds-go-home best-hold sort orders
Use copy's call number's owning_lib instead of copy's circ_lib
Should compare checkin lib to copy's (call number's) owning_lib, not
hold request lib.
You might think the comparison should be to acp.circ_lib, but that
doesn't work with floating copies (for non-floaters, acp.circ_lib
should be equal to acp.call_number.owning_lib).
approx is a more correct first determinant to give the behavior sites
are used to.
hprox can cause copies to be too eager to go home when
there are holds with that copy's circ lib as its request lib (if that's
what you want, then you do pick or create a sort-order with hprox near
the top).
Address a problem in the copy_has_not_been_home CTE.
This expression was always meant to provide a TRUE or FALSE value as its
lone result, but would return NULL in cases where copies had no transit
history.
Use pickup_lib, not request_lib, as the determinant of
nearness-to-home. request_lib was used with the thinking that an item's
"owning" patrons should have their wishes favored at holds-go-home time,
even if where they wanted to send the copy was not actually home, but
that's neither necessarily desired nor very intuitive.
Clear up holds-go-home logic with better code AND add TechRef
documentation with diagram in attempt to be as clear as possible.
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Dan Scott [Fri, 19 Apr 2013 15:06:27 +0000 (11:06 -0400)]
Merge changes to Apache 2.4 example config files
Not only do we need the JSPAC->TPAC changes that went into the base
Apache example configs, we should also move to generating these files
instead of having hardcoded values. Longer term, we should probably just
generate the right example configs from one common base until Apache 2.2
is dead and gone, but this improves the Apache 2.4 experience greatly.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Mike Rylander <mrylander@gmail.com>
QP: Limit to deleted records for #deleted modifier at this level
Down in the DB's query_parser_fts procedure, we also know whether we're
in a deleted_search, and in those cases we skip all visibility and
similar testing accordingly.
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Dan Scott [Sun, 7 Apr 2013 22:14:58 +0000 (18:14 -0400)]
TPAC schema.org: Add Organization types for contributors
Given a 110 / 710 field, when generating the record details for authors
and contributors we can declare an http://schema.org/Organization
itemtype rather than just jamming the name under the "contributor"
property. This is more in accordance with schema.org directions.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Dan Scott [Fri, 5 Apr 2013 20:10:01 +0000 (16:10 -0400)]
TPAC: Fix schema.org name / dates for authors
Per http://schema.org/Person, the birth date and death date are not
supposed to be part of the name of a Person. We can separate these out
correctly based on subfield d for 100 fields.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Dan Scott [Fri, 5 Apr 2013 17:21:47 +0000 (13:21 -0400)]
Fix schema.org mapping for MusicAlbum, add Map
We had set LDR[06] = j to MusicRecording, but that is really meant for
individual songs. Use MusicAlbum instead, and per
http://schema.org/MusicAlbum, use a new MusicGroup itemtype with a
'byArtist' property for the primary artist rather than the generic
'accountablePerson'.
Also map LDR[06] = e to Map, because that seems like a safe bet.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Mike Rylander [Tue, 16 Apr 2013 19:08:10 +0000 (15:08 -0400)]
Allow combined search to be optional per class
Relevance is thrown off for, in paticular, the keyword class when combined
search is used. This is because the effect of an opaque blob of data, such
as the keyword|keyword index definition, is to applify the inclusion of spurious
(to the user) data in matching attempts.
This commit adds the ability to specify, per class, whether combined FTS should
be used, and turns this on for only the subject class by default.
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Ben Shum <bshum@biblio.org>
Acq: re-use more code for two ways of creating invoices (EDI and manual)
This solves two problems.
1) With EDI invoices, we had been failing to disencumber fund debits
related to the invoiced lineitems, although that worked for manual
invoices.
2) With manual invoices, we would not automatically uncancel copies
when the user decided to invoice them despite their canceled status.
This was already working in EDI invoices though. This is especially
important since our schema lumps "backordered" in with "canceled,"
and in theory backordered things do show up eventually.
There were earlier version of this commit out there with bugs that
prevented the EDI workflow from working correctly (the manual invoice
flow worked and still should).
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
The number of results listed on the search results page is often an
estimate when working with a large set. Let's add the word "about" to
reflect the fact that it is indeed an estimate.
At the same time, I moved the <strong> tags out of the code, adding a CSS
class in its place, moved the HTML tags out of the translatable
string (as recommended by Pasi Kallinen), and fixed a typo in the
stylesheet.
Signed-off-by: Kathy Lussier <klussier@masslnc.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Jason Stephenson [Thu, 18 Apr 2013 14:49:06 +0000 (10:49 -0400)]
Minor change to chrome/content/util/list.js.
Change the initializer of this.count_for_display from 0 to 1 in
order to match the counting of other lists in the client and to
provide something that staff are likely to prefer.
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
In list.js at start you create obj.columns for lineno, but later
you don`t process this value so it`s return default render
function. This code repairs this.
Signed-off-by: Dmitry Nechai <nechai.dmitry@gmail.com> Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>