[open-ils-commits] [GIT] Evergreen ILS branch tags/rel_2_1_1 created. 488ac1d576f39d859a9e510c5d8762ab5dae9081
Evergreen Git
git at git.evergreen-ils.org
Wed Nov 16 13:36:13 EST 2011
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Evergreen ILS".
The branch, tags/rel_2_1_1 has been created
at 488ac1d576f39d859a9e510c5d8762ab5dae9081 (commit)
- Log -----------------------------------------------------------------
commit 488ac1d576f39d859a9e510c5d8762ab5dae9081
Author: Thomas Berezansky <tsbere at mvlc.org>
Date: Wed Nov 16 12:37:15 2011 -0500
Bumping version numbers, adding Upgrade Script and Changelog
Signed-off-by: Thomas Berezansky <tsbere at mvlc.org>
diff --git a/ChangeLog b/ChangeLog
index 3323187..7eabee9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1 +1,778 @@
-#ChangeLog
+2011-11-16 Mike Rylander <mrylander at gmail.com>
+
+ * Open-ILS/src/sql/Pg/002.schema.config.sql,
+ Open-ILS/src/sql/Pg/upgrade/0650.function.copy_visibility_vs_peer_b
+ ibs.sql, Open-ILS/src/sql/Pg/upgrade/XXXX.temp.sql: Stamping upgrade
+ script for copy visibility vs peer-bibs fix Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+2011-10-24 Thomas Berezansky <tsbere at mvlc.org>
+
+ * Open-ILS/src/sql/Pg/999.functions.global.sql,
+ Open-ILS/src/sql/Pg/upgrade/XXXX.temp.sql: Distinct
+ cache_copy_visibility copy/record Because if you peer bib a copy to the bib it is on things don't like
+ you. Signed-off-by: Thomas Berezansky <tsbere at mvlc.org> Signed-off-by:
+ Mike Rylander <mrylander at gmail.com>
+
+2011-11-15 Mike Rylander <mrylander at gmail.com>
+
+ * Open-ILS/src/sql/Pg/002.schema.config.sql,
+ Open-ILS/src/sql/Pg/upgrade/0649.schema.fix_full_circ_count_view.sq
+ l,
+ Open-ILS/src/sql/Pg/upgrade/XXXX.schema.fix_full_circ_count_view.sq
+ l: Stamped upgrade for full circ count view fix Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+2011-09-29 Thomas Berezansky <tsbere at mvlc.org>
+
+ * Open-ILS/src/sql/Pg/extend-reporter.sql,
+ Open-ILS/src/sql/Pg/upgrade/XXXX.schema.fix_full_circ_count_view.sq
+ l: Use DISTINCT in counts to avoid dupes Otherwise you get: Legacy count + 2(normal count)(aged count) Signed-off-by: Thomas Berezansky <tsbere at mvlc.org> Signed-off-by:
+ Mike Rylander <mrylander at gmail.com>
+
+2011-09-29 Dan Wells <dbw2 at calvin.edu>
+
+ * Open-ILS/src/sql/Pg/extend-reporter.sql,
+ Open-ILS/src/sql/Pg/upgrade/XXXX.schema.fix_full_circ_count_view.sq
+ l: Full Circ Count View Amplifies Legacy Circs The current extend_reported.full_circ_count sums the legacy circ
+ count column, but this results in amplifying the count by the number
+ of current circs in the system. This commit adds the legacy count
+ to the GROUP BY instead of summing it. Signed-off-by: Dan Wells <dbw2 at calvin.edu> Signed-off-by: Mike
+ Rylander <mrylander at gmail.com>
+
+2011-09-28 Lebbeous Fogle-Weekley <lebbeous at esilibrary.com>
+
+ * Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Holds.pm,
+ Open-ILS/web/opac/extras/circ/alt_holds_print.html,
+ Open-ILS/web/opac/extras/circ/alt_holds_print.js: Fix a problem in
+ the clear holds shelf list printer This is a "special" interface that you get to via Admin -> For
+ Developers -> Local Administration in the staff client. The addition features to one "side" of this hackish interface of
+ label affix and parts had caused breakage on the other "side." This
+ fixes that. Also improve document printing, making it less likely the progress
+ dialog itself gets printed. One day this will be replaced with something better. Signed-off-by: Lebbeous Fogle-Weekley <lebbeous at esilibrary.com>
+
+2011-11-15 Mike Rylander <mrylander at gmail.com>
+
+ * Open-ILS/src/sql/Pg/002.schema.config.sql,
+ Open-ILS/src/sql/Pg/upgrade/0648.function.merge_record_assets_meets
+ _acq.sql,
+ Open-ILS/src/sql/Pg/upgrade/XXXX.function.merge_record_assets_meets
+ _acq.sql: Stamped upgrade for asset.merge_record_assets fix Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+2011-09-13 Jason Etheridge <jason at esilibrary.com>
+
+ * Open-ILS/src/sql/Pg/999.functions.global.sql,
+ Open-ILS/src/sql/Pg/upgrade/XXXX.function.merge_record_assets_meets
+ _acq.sql: LP#849143 fix some gaps in bib record merging Tweaks asset.merge_record_assets such that it considers acquisition
+ line items and user requests, serial subscriptions, booking resource
+ types, biblio monograph parts, and biblio peer bib copy maps. I'm
+ not handling vandelay.queued_record.imported_as or any other
+ vandelay tables, but we may wish to do that too. We're also leaving
+ acq.acq_lineitem_history alone. Signed-off-by: Jason Etheridge <jason at esilibrary.com> Signed-off-by:
+ Mike Rylander <mrylander at gmail.com>
+
+2011-11-01 Liam Whalen <lwhalen at evergreen-dev.catalogue.nrcan.gc.ca>
+
+ * Open-ILS/xul/staff_client/server/cat/marcedit.js: Aligned the MARC
+ editor subfields to 'start' fixes long subfield display When viewing a record in the MARC editor that has extremely long
+ entries in a subfield, the output would align in the center of the
+ subfield making the output hard to read. This patch adds an align:
+ 'start' option to both the subfield, and the subfield code elements
+ in the marcSubfield function to make the subfields align in a more
+ readable manner. Signed-off-by: Liam Whalen
+ <lwhalen at evergreen-dev.catalogue.nrcan.gc.ca> Signed-off-by: Mike
+ Rylander <mrylander at gmail.com>
+
+2011-11-15 Mike Rylander <mrylander at gmail.com>
+
+ * Open-ILS/web/js/ui/default/actor/user/register.js: Patch from Jeff
+ Davis (SITKA) fixing cardless patron updates Quoth the bug report
+ (https://bugs.launchpad.net/evergreen/+bug/851110): On our Evergreen 2.0.8 system, it sometimes arises that a patron's
+ card gets deleted. If it was the patron's only card, it becomes
+ impossible to add a new card to the account via the staff client. How to reproduce: 1. Retrieve a patron record for a patron who has no associated
+ card. 2. Click the Edit button. 3. Click Replace Barcode and enter a new barcode. 4. Click Save. This does not work - the process hangs, and if you
+ hit Reload, you will find that your changes were not saved. I believe this happens because some code in register.js assumes
+ the patron has at least one card. I have a potential fix that this
+ comment box is too small to contain ... uh, that is to say, I will
+ post it momentarily. Which he did, and I applied. Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+2011-10-19 Steven Callender <stevecallender at esilibrary.com>
+
+ *
+ Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Publisher/act
+ ion.pm: Reshelving update. Update to the reshelving code to make it faster and utilize the new
+ status change time field on asset.copy. Signed-off-by: Steven Callender <stevecallender at esilibrary.com>
+ Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+2011-10-24 Bill Erickson <berick at esilibrary.com>
+
+ * Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Holds.pm: Clear
+ shelf canceled holds notification fix After cancelling a batch of holds via the clear-shelf process,
+ before we send the holds off to action/trigger for potential
+ notification generation, re-fetch the holds from the DB to pick up
+ the calculated cancel_time value (i.e. get a real value for "now").
+ Otherwise, A/T may die attempting to create a DateTime object by
+ parsing "now". Signed-off-by: Bill Erickson <berick at esilibrary.com> Signed-off-by:
+ Mike Rylander <mrylander at gmail.com>
+
+2011-10-23 Dan Scott <dscott at laurentian.ca>
+
+ * Open-ILS/src/c-apps/Makefile.am, Open-ILS/src/c-apps/idlval.c:
+ Make idlval build, rather than be dead code The tool "idlval" contained in Open-ILS/src/c-apps can be used to
+ check the correctness of fieldmapper definitions in files like
+ Open-ILS/examples/fm_IDL.xml - but currently does not have a build
+ target, nor does it compile cleanly due to the use of unspecified
+ OpenSRF header files. This commit adds a build target, fixes the
+ compile problems, and installs the tool in the bin directory. Signed-off-by: Dan Scott <dscott at laurentian.ca> Signed-off-by: Mike
+ Rylander <mrylander at gmail.com>
+
+2011-11-08 Jason Stephenson <jstephenson at mvlc.org>
+
+ * Open-ILS/examples/fm_IDL.xml: Add link to cbs from bre via
+ bre.source -> cbs.id in fm_IDL.xml. Signed-off-by: Jason Stephenson <jstephenson at mvlc.org>
+ Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+2011-11-08 Jason Etheridge <jason at esilibrary.com>
+
+ * Open-ILS/xul/staff_client/chrome/content/cat/opac.js,
+ Open-ILS/xul/staff_client/server/cat/util.js,
+ Open-ILS/xul/staff_client/server/cat/volume_copy_creator.js:
+ LP887822 mint_condition/Quality not set correctly during item creation. Specifically, the Javascript object for a new item (acp) does not
+ explicitly set the mint_condition field, leaving it null. The item
+ attribute editor treats the null as false (which it displays as
+ "Mediocre" for that field). The database has a not null constraint
+ the corresponding column in asset.copy, and defaults to true. So a
+ new item in the attribute editor will show "Mediocre", but when
+ actually created, will become "Good". This branch just sets mint_condition to true when an item is
+ created. Signed-off-by: Jason Etheridge <jason at esilibrary.com> Signed-off-by:
+ Mike Rylander <mrylander at gmail.com>
+
+2011-11-14 Lebbeous Fogle-Weekley <lebbeous at esilibrary.com>
+
+ * Open-ILS/web/js/dojo/openils/widget/HoldingCode.js: Serials: in
+ the holding code mini-wizard, offer a dropdown for seasons This spares the user from having to remember the MFHD code for the
+ season, when dealing with periodicals issued by season (21 - 24 for
+ Spring - Winter, respectively). This also applies sets the "scrollOnFocus" attribute to false for
+ the dijits within the mini wizard, as the jumpy behavior you get in
+ less-than-fullscreen staff client windows is otherwise maddening. Signed-off-by: Lebbeous Fogle-Weekley <lebbeous at esilibrary.com>
+ Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+2011-10-11 Lebbeous Fogle-Weekley <lebbeous at esilibrary.com>
+
+ * Open-ILS/src/perlmods/lib/OpenILS/Application/Trigger/Reactor.pm,
+ Open-ILS/src/support-scripts/edi_pusher.pl: More filtering of
+ characters that could end up in PO JEDI template output Backslashes cause problems too. Let's JSON encode this thing and
+ get it right once and for all. Signed-off-by: Lebbeous Fogle-Weekley <lebbeous at esilibrary.com>
+ Signed-off-by: Ben Shum <bshum at biblio.org> Signed-off-by: Bill
+ Erickson <berick at esilibrary.com>
+
+2011-11-10 Lebbeous Fogle-Weekley <lebbeous at esilibrary.com>
+
+ * Open-ILS/web/js/dojo/openils/widget/HoldingCode.js,
+ Open-ILS/web/js/ui/default/serial/subscription/issuance.js: Serials:
+ allow freer input in holding code mini-wizard In the Subscription Details interface of the Alternate Serials
+ Control View, under the Issuance tab, if you create a new issuance
+ you can now enter things like "01/02" in (say) the month field to
+ denote a combined January/February issue. All those fields are now
+ free-form, whereas some of them used to be numeric only. Also, avoid an occasional issue where an error message about
+ dijit.form.DateTextBox not being a constructor would appear in the
+ JavaScript console. The problem was in a race condition among some
+ co-dependent JavaScript files that were all being loaded at the same
+ time. Signed-off-by: Lebbeous Fogle-Weekley <lebbeous at esilibrary.com>
+ Signed-off-by: Dan Wells <dbw2 at calvin.edu>
+
+2011-11-10 Jason Etheridge <jason at esilibrary.com>
+
+ * Open-ILS/examples/apache/eg_vhost.conf,
+ Open-ILS/web/opac/common/js/RemoteRequest.js,
+ Open-ILS/xul/staff_client/chrome/content/util/network.js: LP88653
+ force SSL for requests from local XUL Modifies RemoteRequest.js to convert any http:// request URL to
+ https:// if the requesting location has a chrome:// protocol. Modifies util/network.js such that any use of util.network.request
+ (as opposed to util.network.simple_request) will assume "secure" for
+ the resulting request. Adds an example to the bottom of eg_vhost.conf for forcing SSL for
+ an entire site (OPAC and everything), courtesy of Dan Wells. Signed-off-by: Jason Etheridge <jason at esilibrary.com> Signed-off-by:
+ Dan Wells <dbw2 at calvin.edu>
+
+2011-11-09 Thomas Berezansky <tsbere at mvlc.org>
+
+ * Open-ILS/xul/staff_client/server/cat/marcedit.js:
+ XML.ignoreWhitespace causes syntax errors So remove it. Disabling pretty printing appears to be enough to fix the marc
+ editor. Signed-off-by: Thomas Berezansky <tsbere at mvlc.org> Signed-off-by:
+ Jason Etheridge <jason at esilibrary.com>
+
+2011-11-07 Thomas Berezansky <tsbere at mvlc.org>
+
+ * Open-ILS/xul/staff_client/server/cat/marcedit.js: Fix vanishing
+ whitespace in marc editor XML.ignoreWhitespace and XML.prettyPrinting cause whitespace to
+ vanish. So disable them at the top of marcedit.js. Signed-off-by: Thomas Berezansky <tsbere at mvlc.org> Signed-off-by:
+ Jason Etheridge <jason at esilibrary.com>
+
+2011-10-31 Galen Charlton <gmc at esilibrary.com>
+
+ * Open-ILS/src/perlmods/lib/OpenILS/SIP/Patron.pm: lp849447: trival
+ stylistic tweaks - rename variable avoid double-negative - avoid 'Variable declared in conditional statement' perlcritic
+ gripe Signed-off-by: Galen Charlton <gmc at esilibrary.com> Signed-off-by:
+ Mike Rylander <mrylander at gmail.com>
+
+2011-09-14 Sarah E. Chodrow <sarah.chodrow at bibliotheca-itg.com>
+
+ * Open-ILS/src/perlmods/lib/OpenILS/SIP/Patron.pm: Initial patch
+ from Sarah Chodrow on LP bug 849447. Also check for standing penalties and expired cards when checking if
+ it is ok for the patron to checkout, charge_ok. Developer's Certificate of Origin 1.1 By making a contribution to this project, I certify that: (a) The contribution was created in whole or in part by me and I have the right to submit it under the open source license indicated in the file; or (b) The contribution is based upon previous work that, to the best of my knowledge, is covered under an appropriate open source license and I have the right under that license to submit that work with modifications, whether created in whole or in part by me, under the same open source license (unless I am permitted to submit under a different license), as indicated in the file; or (c) The contribution was provided directly to me by some other person who certified (a), (b) or (c) and I have not modified it. (d) I understand and agree that this project and the contribution are public and that a record of the contribution (including all per
sonal information I submit with it, including my sign-off) is maintained indefinitely and may be redistributed consistent with this project or the open source license(s) involved. Signed-off-by: Sarah E. Chodrow (sarah.chodrow at bibliotheca-itg.com) Signed-off-by: Jason Stephenson <jstephenson at mvlc.org>
+ Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+2011-11-08 Mike Rylander <mrylander at gmail.com>
+
+ * : commit ebde03846cfa620ccbf857b7ea82cf68f005e771 Author: Mike
+ Rylander <mrylander at gmail.com> Date: Tue Nov 8 12:43:44 2011 -0500
+
+2011-11-08 Galen Charlton <gmc at esilibrary.com>
+
+ * : Merge remote branch 'working/collab/dbs/rel_2_1-release_notes'
+ into rel_2_1 Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+
+2011-11-07 Dan Scott <dscott at laurentian.ca>
+
+ * README: README: Use consistent endings (none!) for
+ titles/subtitles Most, but not all, of the titles/subtitles had colons appended. This
+ looks really weird in the Table of Contents, so try to be
+ consistently unweird and have no appended colons. Signed-off-by: Dan Scott <dscott at laurentian.ca>
+
+2011-11-07 Dan Scott <dscott at laurentian.ca>
+
+ * README: Backup the existing opensrf config files before copying Per a suggestion from Wolf Halton <wolf.halton at gmail.com>, create
+ backup versions of the opensrf configuration files when we're
+ copying the Evergreen example versions over, so that we can retrieve
+ the Jabber user names and passwords and domains from the backups (if
+ necessary). Signed-off-by: Dan Scott <dscott at laurentian.ca>
+
+2011-11-07 Dan Scott <dscott at laurentian.ca>
+
+ * README: Add tarball download / untar instructions to README Per suggestions from Yamil Suarez <ysuarez at berklee.edu> and Martha
+ Driscoll <driscoll at noblenet.org> and Wolf Halton
+ <wolf.halton at gmail.com>, restore the version-specific wget / untar
+ instructions to the README. Aside: Need to remember to update these links in the repo before
+ tagging a release. Signed-off-by: Dan Scott <dscott at laurentian.ca>
+
+2011-10-27 Jason Etheridge <jason at esilibrary.com>
+
+ * Open-ILS/web/js/ui/default/actor/user/register.js: LP874597
+ password from phone # when cloning users Patron: password from phone # does not work when cloning users Signed-off-by: Jason Etheridge <jason at esilibrary.com> Signed-off-by:
+ Mike Rylander <mrylander at gmail.com>
+
+2011-09-27 Jason Etheridge <jason at esilibrary.com>
+
+ * Open-ILS/web/opac/skin/default/js/holds.js: LP#860845 hold
+ placement UI can break hold placement UI can break and give misleading error on Submit Adds some defensive coding, but since I don't quite grok everything
+ going on here, may not be the best fix. Signed-off-by: Jason Etheridge <jason at esilibrary.com> Signed-off-by:
+ Lebbeous Fogle-Weekley <lebbeous at esilibrary.com>
+
+2011-11-01 James Fournie <jfournie at sitka.bclibraries.ca>
+
+ * Open-ILS/src/perlmods/lib/OpenILS/Application/Acq/Search.pm: This
+ prevents the acq unified_search method from returning anything other
+ than the objects of the expected type. This is to address LP 884991 in which Acq users get a perm error for
+ each result of a search that they don't have access to retrieve.
+ They shouldn't even know about the existence of anything they don't
+ have access to retrieve. Signed-off-by: James Fournie <jfournie at sitka.bclibraries.ca>
+ Signed-off-by: Lebbeous Fogle-Weekley <lebbeous at esilibrary.com>
+
+2011-09-20 James Fournie <jfournie at sitka.bclibraries.ca>
+
+ * Open-ILS/src/sql/Pg/002.schema.config.sql,
+ Open-ILS/src/sql/Pg/040.schema.asset.sql,
+ Open-ILS/src/sql/Pg/upgrade/0646.schema.lp854972_copy_counts_unshad
+ ow.sql: Previously invisible copies showed as beige in the staff
+ client, they stopped doing this in 2.0 This is because in 2.0 the copy counts logic was moved from
+ open-ils.storage.biblio.record_entry.copy_count.staff to an
+ in-database function wrapped in
+ open-ils.search.biblio.record.copy_count.staff. Both methods
+ returned various counts including an 'unshadow' count, however the
+ 'unshadow' in the new database function was not completed and it has
+ only been returning a simple copy count rather than a count of opac
+ visible copies as it should be to replicate the old behaviour. Signed-off-by: James Fournie <jfournie at sitka.bclibraries.ca>
+ Signed-off-by: Lebbeous Fogle-Weekley <lebbeous at esilibrary.com>
+
+2011-10-06 Lebbeous Fogle-Weekley <lebbeous at esilibrary.com>
+
+ * Open-ILS/web/js/dojo/openils/acq/nls/acq.js,
+ Open-ILS/web/js/ui/default/acq/common/li_table.js: Acq: better error
+ message if trying to create PO without provider or agency Before now, if you leave either the provider or ordering agency
+ fields blank in the "Create Purchase Order" dialog, you get a
+ nonsensical warning about prepayment. This fixes that. Signed-off-by: Lebbeous Fogle-Weekley <lebbeous at esilibrary.com>
+ Signed-off-by: Bill Erickson <berick at esilibrary.com>
+
+2011-04-27 dbs <dbs at dcc99617-32d9-48b4-a31d-7c20da2025e4>
+
+ * Open-ILS/src/perlmods/lib/OpenILS/WWW/AddedContent/OpenLibrary.pm:
+ Turn ebooks AC from OpenLibrary into usable HTML Add <a> elements to turn URLs into links, and use the upper case
+ ebook format as the content of the link. "Read online" is the one
+ i18n-unfriendly exception, but this is a good start. Signed-off-by: Dan Scott <dscott at laurentian.ca> git-svn-id: svn://svn.open-ils.org/ILS/trunk@20346
+ dcc99617-32d9-48b4-a31d-7c20da2025e4 Signed-off-by: Lebbeous
+ Fogle-Weekley <lebbeous at esilibrary.com>
+
+2011-04-27 dbs <dbs at dcc99617-32d9-48b4-a31d-7c20da2025e4>
+
+ * Open-ILS/src/perlmods/lib/OpenILS/WWW/AddedContent/OpenLibrary.pm:
+ Teach OpenLibrary.pm how to extract ebook links from OpenLibrary
+ results If the Internet Archive has an available ebook, then OpenLibrary
+ will provide links to it in various formats. For now, we return the
+ results as a plain set of <div> elements with class attributes
+ denoting what kind of ebook was returned; i18n will have to take
+ care of providing an actual label. Oh, and I guess we want to turn
+ these into actual <a> links... Signed-off-by: Dan Scott <dscott at laurentian.ca> Signed-off-by:
+ Lebbeous Fogle-Weekley <lebbeous at esilibrary.com>
+
+2011-11-03 Liam Whalen <lwhalen at nrcan-rncan.gc.ca>
+
+ * Open-ILS/src/sql/Pg/1.6.1-2.0-upgrade-db.sql: Modified
+ authority.indexing_ingest_or_delete to update MARC data The authority.indexing_ingest_or_delete trigger in the update script
+ was missing a call to authority.propagate_changes which is
+ responsible for updating the MARC data of records affected by an
+ auhtority merge. This patch adds the call to
+ authority.propagate_changes as it appears in the
+ authority.indexing_ingest_or_delete trigger from the file
+ 999.functions.global.sql. Signed-off-by: Liam Whalen <lwhalen at nrcan-rncan.gc.ca>
+ Signed-off-by: Dan Scott <dscott at laurentian.ca>
+
+2011-10-06 Lebbeous Fogle-Weekley <lebbeous at esilibrary.com>
+
+ * Open-ILS/web/js/ui/default/acq/common/li_table.js,
+ Open-ILS/web/js/ui/default/acq/search/unified.js: Acq: fix a bug
+ that sometimes prevents the general search page from loading Within Acquisitions General Search, javascript included from one
+ file in the <head> relies on the variable "localeStrings" being
+ initialized by javascript included from a file in <body>. Sometimes
+ the wrong javascript wins the race, you get an error about
+ localeStrings being undefined in the Javascript console, and the
+ page stops loading. Signed-off-by: Lebbeous Fogle-Weekley <lebbeous at esilibrary.com>
+ Signed-off-by: Bill Erickson <berick at esilibrary.com>
+
+2011-11-01 Bill Erickson <berick at esilibrary.com>
+
+ * Open-ILS/src/support-scripts/fine_generator.pl: Fine generator;
+ raise multi-session mode recv timeout When fetching the batch of overdue circ IDs to process for fine
+ generation, wait a little longer for the data to arrive, since it is
+ a longer running DB query than most. Signed-off-by: Bill Erickson <berick at esilibrary.com> Signed-off-by:
+ Lebbeous Fogle-Weekley <lebbeous at esilibrary.com>
+
+2011-11-01 Jason Etheridge <jason at esilibrary.com>
+
+ * Open-ILS/src/sql/Pg/002.schema.config.sql: forgot to update
+ upgrade_log Signed-off-by: Jason Etheridge <jason at esilibrary.com>
+
+2011-11-01 Jason Etheridge <jason at esilibrary.com>
+
+ * Open-ILS/src/sql/Pg/upgrade/0645.schema.null_svf_protection.sql,
+ Open-ILS/src/sql/Pg/upgrade/XXXX.schema.null_svf_protection.sql: pin
+ upgrade script Signed-off-by: Jason Etheridge <jason at esilibrary.com>
+
+2011-11-01 Mike Rylander <mrylander at gmail.com>
+
+ * Open-ILS/src/sql/Pg/030.schema.metabib.sql,
+ Open-ILS/src/sql/Pg/upgrade/XXXX.schema.null_svf_protection.sql:
+ Protect SVF normalizers against NULL values Signed-off-by: Mike Rylander <mrylander at gmail.com> Signed-off-by:
+ Jason Etheridge <jason at esilibrary.com>
+
+2011-11-01 Dan Scott <dscott at laurentian.ca>
+
+ * Open-ILS/src/perlmods/lib/OpenILS/WWW/AddedContent/Amazon.pm:
+ Force Amazon AC requests to use 10-digit ISBNs Inspired by a patch submitted by Ian Bays <ian.bays at ptfs-europe.com>
+ via https://bugs.launchpad.net/evergreen/+bug/870171, this patch
+ takes the incoming key and, if it is longer than 10 characters (a
+ 10-digit ISBN or Amazon ID), attempts to normalize it and return a
+ 10-digit ISBN. We don't normalize all incoming keys because some sites are horribly
+ abusing the 020 MARC field to include an Amazon ID instead of an
+ ISBN - but that works in practice and we'd rather not break working
+ installations if we can avoid it. Signed-off-by: Dan Scott <dscott at laurentian.ca>
+
+2011-10-19 Jason Stephenson <jstephenson at mvlc.org>
+
+ * Open-ILS/src/perlmods/lib/OpenILS/Application/Actor.pm: Use ne on
+ line 631 of Actor.pm. This is so that we stop getting errors like Argument "1319057146.8881216485.4819607085" isn't numeric in numeric
+ ne (!=) at /usr/local/share/perl/5.10.1/OpenILS/Application/Actor.pm
+ line 630. in /openils/var/log/open-ils.actor_stderr.log Signed-off-by: Jason Stephenson <jstephenson at mvlc.org>
+ Signed-off-by: Dan Scott <dscott at laurentian.ca>
+
+2011-10-27 Michael Peters <mrpeters at library.in.gov>
+
+ * Open-ILS/examples/apache/eg.conf: A tweak to eg.conf to prevent
+ against the BEAST exploit in TLS/SSL Based on recommedation from
+
+ https://community.qualys.com/blogs/securitylabs/2011/10/17/mitigating-the-beast-attack-on-tlsSigned-off-by: Michael Peters <mrpeters at library.in.gov>
+ Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+
+2011-09-27 Jason Etheridge <jason at esilibrary.com>
+
+ * Open-ILS/xul/staff_client/server/circ/checkin.js: LP#860685 List
+ Actions and Print List fix List Actions and Print List broken in Check In interface when not
+ using "Fast Entry (Asynchronous)", due to the way we're using
+ list.refresh_row. This fixes the internal list state for tracking
+ retrieved versus un-retrieved list rows. Signed-off-by: Jason Etheridge <jason at esilibrary.com> Signed-off-by:
+ Mike Rylander <mrylander at gmail.com>
+
+2011-10-05 Bill Erickson <berick at esilibrary.com>
+
+ * Open-ILS/src/perlmods/lib/OpenILS/Application/Search/Biblio.pm:
+ Z39.50 local catalog fetch-more repairs Fixes the following problem: When paging through local catalog results in the Z39.50 interface,
+ paging off then end of the local results would result in an unknown
+ server error caused by trying to retrieve an empty list of records. $list->{count} in this context is the overall hit count, not the
+ counts in the current page of results. Note also if {count} is
+ zero, the list of IDs will be undef, so we use both. Signed-off-by: Bill Erickson <berick at esilibrary.com> Signed-off-by:
+ Jason Etheridge <jason at esilibrary.com>
+
+2011-10-06 Lebbeous Fogle-Weekley <lebbeous at esilibrary.com>
+
+ * Open-ILS/src/perlmods/lib/OpenILS/Application/Acq/Order.pm: Avoid
+ a possible bug in selection list deletion This particularly matters for the "ephemeral," unnamed selection
+ list that Acquisitions General Search uses to hold bib records
+ represented as lineitems, as that list is deleted for the next run
+ of that kind of search. It's possible to get lineitems onto that list that are in a state
+ other than "new". Code that deletes this list first deletes the
+ lineitems that belong to it, but that code formerly assumed that
+ there are two types of lineitems. "new" ones (that should be
+ deleted) and ones that belong to purchase orders (that should be
+ deatched). That doesn't necessarily cover all possible lineitems on
+ the picklist, so deletion ultimately fails. This fixes that. [update: now this bugfix incorporates a bugfix, the need for which
+ was detected by Ben Shum. See LP #869581] Signed-off-by: Lebbeous Fogle-Weekley <lebbeous at esilibrary.com>
+ Signed-off-by: Bill Erickson <berick at esilibrary.com>
+
+2011-10-16 Dan Scott <dscott at laurentian.ca>
+
+ * Open-ILS/src/perlmods/lib/OpenILS/WWW/SuperCat.pm: LP875819: Fix
+ SRU and Z39.50 default search index failures Per http://www.loc.gov/standards/sru/specs/cql.html : All parts of CQL are case insensitive [...] If any case insensitive
+ part of CQL is specified with both upper and lower case, it is for
+ aesthetic purposes only. So fold the SRU qualifier and relation to lower case. This then
+ matches the srw.serverchoice entry that we already have in
+ config.metabib_search_alias so that default searches will
+ successfully point to the keyword index. Signed-off-by: Dan Scott <dscott at laurentian.ca> Signed-off-by:
+ Lebbeous Fogle-Weekley <lebbeous at esilibrary.com>
+
+2011-10-19 Dan Scott <dscott at laurentian.ca>
+
+ * README: README: createunderscoredatabase.sql Fix another typo noted by Martha Driscoll Signed-off-by: Dan Scott <dscott at laurentian.ca>
+
+2011-10-19 Dan Scott <dscott at laurentian.ca>
+
+ * README: README: Use rel_2_1_x for the staff client build ID Per a suggestion from Martha Driscoll <driscoll at noblenet.org> to
+ have it match the release number - go halfway and at least match the
+ release numbering pattern. Signed-off-by: Dan Scott <dscott at laurentian.ca>
+
+2011-10-19 Dan Scott <dscott at laurentian.ca>
+
+ * README: Fix README issues Martha Driscoll <driscoll at noblenet.org> noted that the
+ create_database.sql script wasn't actually targeted by the psql
+ command, and also that there was an extraneous <code> tag in the
+ OpenSRF start command. Signed-off-by: Dan Scott <dscott at laurentian.ca>
+
+2011-10-19 Bill Erickson <berick at esilibrary.com>
+
+ * Open-ILS/src/perlmods/lib/OpenILS/Utils/CStoreEditor.pm:
+ CStoreEditor batch_retrieve repairs 1. If the caller provides additional cstore params, like flesh,
+ flesh_fields, etc. make sure we only use the first component of the
+ search (the list of identifier values) for the cstore search. 2. Determine the identifier field from the class being retrieved
+ instead of hard-coding it to be "id" Signed-off-by: Bill Erickson <berick at esilibrary.com> Signed-off-by:
+ Lebbeous Fogle-Weekley <lebbeous at esilibrary.com>
+
+2011-10-18 Galen Charlton <gmc at esilibrary.com>
+
+ * Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Holds.pm: add a
+ couple semicolons Not strictly required, but may as well save a picosecond of grief
+ for the next person who adds to this code. Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+
+2011-09-15 Bill Erickson <berick at esilibrary.com>
+
+ * Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Holds.pm:
+ Create events for hold_request.cancel.patron When a patron cancels his/her own hold, create events for the (already-existing) hold_request.cancel.patron A/T hook. Signed-off-by: Bill Erickson <berick at esilibrary.com> Signed-off-by:
+ Galen Charlton <gmc at esilibrary.com>
+
+2011-10-18 Bill Erickson <berick at esilibrary.com>
+
+ * Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Holds.pm:
+ Re-fetch hold for cancel notify to correct timestamp Re-fetch the cancelled hold from the DB before passing it off to
+ action/trigger for notification processing. Otherwise, A/T attempts
+ to perform date math on "now" instead of a valid timestamp and
+ subsequently croaks. Signed-off-by: Bill Erickson <berick at esilibrary.com> Signed-off-by:
+ Lebbeous Fogle-Weekley <lebbeous at esilibrary.com>
+
+2011-10-16 Dan Scott <dscott at laurentian.ca>
+
+ * Open-ILS/src/perlmods/lib/OpenILS/Application/Fielder.pm: Cache
+ open-ils.fielder results by locale The problem was particularly visible in search facets, but existed
+ before: the cache key used for fielder results did not take locale
+ into account, so on a multi-locale system the first locale won and
+ populated the cache for all other locales. Use a session locale if provided, otherwise default to the locale
+ set in opensrf.xml Signed-off-by: Dan Scott <dscott at laurentian.ca> Signed-off-by:
+ Thomas Berezansky <tsbere at mvlc.org>
+
+2011-10-13 Jason Etheridge <jason at esilibrary.com>
+
+ * Open-ILS/xul/staff_client/server/patron/display.js: Fix print_init
+ error in checkout interface Signed-off-by: Jason Etheridge <jason at esilibrary.com> Signed-off-by:
+ Thomas Berezansky <tsbere at mvlc.org>
+
+2011-10-17 Dan Scott <dscott at laurentian.ca>
+
+ * Open-ILS/web/opac/locale/en-US/lang.dtd: Typo: It's MARC, not
+ Marc. Sheesh. Signed-off-by: Dan Scott <dscott at laurentian.ca>
+
+2011-10-04 Thomas Berezansky <tsbere at mvlc.org>
+
+ * Open-ILS/web/opac/skin/default/js/adv_global.js: Add "submit on
+ enter" to all advanced search boxes Instead of just the one with an ID specified. Signed-off-by: Thomas Berezansky <tsbere at mvlc.org> Signed-off-by:
+ Dan Scott <dscott at laurentian.ca>
+
+2011-10-14 Jason Etheridge <jason at esilibrary.com>
+
+ * Open-ILS/xul/staff_client/server/patron/bill2.js: LP873614
+ print_init error printing bill history xulG.url_prefix needs to be present for anything using util/print.js
+ and the Mozilla print strategy. Alternately, we could duplicate the
+ logic behind url_prefix and bundle it into print.js :-/ Signed-off-by: Jason Etheridge <jason at esilibrary.com> Signed-off-by:
+ Jason Stephenson <jstephenson at mvlc.org> Signed-off-by: Dan Scott
+ <dscott at laurentian.ca>
+
+2011-10-13 Dan Scott <dscott at laurentian.ca>
+
+ * Open-ILS/src/support-scripts/settings-tester.pl: Add MARC::Record
+ 2.0.1 minimum test to settings-tester.pl Wrap the use_ok() tests in a BEGIN block, per the recommendation of
+ the Test::More perldoc. Signed-off-by: Dan Scott <dscott at laurentian.ca>
+
+2011-10-13 Dan Scott <dscott at laurentian.ca>
+
+ * Open-ILS/src/support-scripts/settings-tester.pl:
+ Settings-tester.pl whitespace Might as well complete the conversion of the file into modernity. Signed-off-by: Dan Scott <dscott at laurentian.ca>
+
+2011-10-13 Dan Scott <dscott at laurentian.ca>
+
+ * Open-ILS/src/support-scripts/settings-tester.pl: Modernize
+ settings-tester.pl a bit * Add a section that checks for Evergreen services in
+ opensrf_core.xml * Ignore the qstore database credentials, as qstore is unused
+ currently * Split things off into subroutines for easier reading Signed-off-by: Dan Scott <dscott at laurentian.ca>
+
+2011-10-13 Mike Rylander <mrylander at gmail.com>
+
+ * Open-ILS/src/sql/Pg/002.schema.config.sql,
+ Open-ILS/src/sql/Pg/upgrade/0639.schema.asset_merge_record_assets.s
+ ql,
+ Open-ILS/src/sql/Pg/upgrade/XXXX.schema.asset_merge_record_assets.s
+ ql: Stamping upgrade for asset.merge_record_assets fix from dbs Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+2011-10-13 Dan Scott <dscott at laurentian.ca>
+
+ * Open-ILS/src/sql/Pg/999.functions.global.sql,
+ Open-ILS/src/sql/Pg/upgrade/XXXX.schema.asset_merge_record_assets.s
+ ql: Fix located URI merging in action.merge_record_assets() Perhaps due to the unexpected results of the XPath expression, which
+ returns a count of nodes for subfields, etc, rather than just a
+ count of the number of 856 datafields, NULL was being concatenated
+ onto a string - which of course made the string NULL. Use COALESCE() to prevent the NULLness from spreading and enable
+ action.merge_record_assets() to do the right thing. Signed-off-by: Dan Scott <dscott at laurentian.ca> Signed-off-by: Mike
+ Rylander <mrylander at gmail.com>
+
+2011-10-12 Dan Scott <dscott at laurentian.ca>
+
+ * Open-ILS/xul/staff_client/server/index.xhtml: Give OrgTree.js a
+ locale, always We started generating locale-specific OrgTree.js files many moons
+ ago, and now no longer provide a "default" locale in the root of the
+ common/js directory. The result was that the index.xhtml page for
+ the staff client was throwing an "_l is undefined" exception;
+ largely meaningless, as it seems that the OrgTree isn't even used on
+ that page, but noise that doesn't need to be in the JavaScript
+ console. Here we correct that exception by providing a locale, and hopefully
+ prevent any further copy/paste mistakes. Signed-off-by: Dan Scott <dscott at laurentian.ca>
+
+2011-10-11 Bill Erickson <berick at esilibrary.com>
+
+ * Open-ILS/src/c-apps/oils_auth.c: Authentication block logging * Login too-many-auth-failures message at Info level instead of
+ Internal * Log the username getting blocked Signed-off-by: Bill Erickson <berick at esilibrary.com> Signed-off-by:
+ Galen Charlton <gmc at esilibrary.com>
+
+2011-10-12 Mike Rylander <mrylander at gmail.com>
+
+ * Open-ILS/src/sql/Pg/002.schema.config.sql,
+ Open-ILS/src/sql/Pg/990.schema.unapi.sql,
+ Open-ILS/src/sql/Pg/upgrade/0638.schema.unapi.sitem-fix.sql: Fix
+ cut-paste-o in unapi.sitem, re stream and unit subobjects Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+2011-09-16 Jason Stephenson <jstephenson at mvlc.org>
+
+ * Open-ILS/src/perlmods/lib/OpenILS/Application/Search/Biblio.pm:
+ Fix z39.50 import isbn and issn searches on local catalog. Make cat_search_z_style_wrapper do identifier searches for isbn and
+ issn. Modify the_quest_for_knowledge to accept identifier searches for
+ isbn and issn. Signed-off-by: Jason Stephenson <jstephenson at mvlc.org>
+ Signed-off-by: Dan Scott <dscott at laurentian.ca>
+
+2011-10-11 Dan Scott <dscott at laurentian.ca>
+
+ * README: README: Minor whitespace cleanup Just to get the indentation standardized on second and subsequent
+ lines of bullets. No big whoop. Signed-off-by: Dan Scott <dscott at laurentian.ca>
+
+2011-10-11 Ben Shum <bshum at biblio.org>
+
+ * README: Change PostgreSQL 9 source for Ubuntu Lucid users. Currently, Ubuntu Lucid does not have backport options for
+ PostgreSQL 9. Instead, most community members who use Lucid have
+ been using Martin Pitt's PPA as an external repository source.
+ Signed-off-by: Ben Shum <bshum at biblio.org> Signed-off-by: Dan Scott <dscott at laurentian.ca>
+
+2011-09-27 Bill Erickson <berick at esilibrary.com>
+
+ * Open-ILS/src/support-scripts/marc_stream_importer.pl: Read STDIN
+ up to record separator then stop The initial (and only known) target for the importer is OCLC
+ Connexion exports, which export 1 record at a time, with each record
+ ending with the standard record separator. There is no end-of-file
+ / end-of-transmission indicator, so the while() loop always blocks
+ and fails on the timeout alarm after the first record is read. Until a more flexible solution is in place, roll back support for
+ reading multiple records via STDIN. The original commit was 679506975f0efb6e2f6f17b0c19e3c53c5bfda44 Note, the feature being rolled back was not actually necessary to
+ implement the feature in the commit (file-based imports). It was
+ just an added bonus. Signed-off-by: Bill Erickson <berick at esilibrary.com> Signed-off-by:
+ Galen Charlton <gmc at esilibrary.com>
+
+2011-10-10 Dan Scott <dscott at laurentian.ca>
+
+ * Open-ILS/src/extras/Makefile.install: Give CentOS / RHEL a chance
+ at installing PostgreSQL 9.0 Evergreen 2.1 requires PostgreSQL 9.0, and we accordingly updated
+ the package names back in the summer to point at PostgreSQL 9.0, but
+ nobody running CentOS / RHEL brought to our attention that the repo
+ target needed to be updated as well. This, although untested, at
+ least gives CentOS / RHEL users a fighting chance of installing
+ Evergreen master / 2.1 on their system. Signed-off-by: Dan Scott <dscott at laurentian.ca> Signed-off-by: Galen
+ Charlton <gmc at esilibrary.com>
+
+2011-10-10 Dan Scott <dscott at laurentian.ca>
+
+ * Open-ILS/src/extras/Makefile.install: Fix broken
+ Net::Z3950::SimpleServer 1.14 install Pin the install of Net::Z3950::SimpleServer to the
+ known-to-work-with yaz 3.0.x version, 1.12. 1.14 introduced
+ dependencies on yaz 4.1.x that can't be easily worked around. Signed-off-by: Dan Scott <dscott at laurentian.ca> Signed-off-by: Galen
+ Charlton <gmc at esilibrary.com>
+
+2011-10-10 Mike Rylander <mrylander at gmail.com>
+
+ * Open-ILS/src/sql/Pg/002.schema.config.sql,
+ Open-ILS/src/sql/Pg/100.circ_matrix.sql,
+ Open-ILS/src/sql/Pg/upgrade/0637.schema.renewal_checkout_counting.s
+ ql: Fix, as provided by Doug Kyle, for LP#822918 Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+2011-10-10 Galen Charlton <gmc at esilibrary.com>
+
+ * RELEASE_NOTES.txt: additional serial enhancements for 2.1 release
+ notes Credit: Lebbeous Fogle-Weekley Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+
+2011-10-10 Galen Charlton <gmc at esilibrary.com>
+
+ * RELEASE_NOTES.txt: add table of new permissions in 2.1 Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+
+2011-10-10 Galen Charlton <gmc at esilibrary.com>
+
+ * RELEASE_NOTES.txt: tweaks to the serials enhancements release
+ notes Thanks to Dan Wells for the input. Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+
+2011-10-10 Galen Charlton <gmc at esilibrary.com>
+
+ * RELEASE_NOTES.txt: serials enhancements for 2.1 release notes Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+
+2011-10-07 Galen Charlton <gmc at esilibrary.com>
+
+ * RELEASE_NOTES.txt: remove trailing colons from headings Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+
+2011-10-07 Dan Scott <dscott at laurentian.ca>
+
+ * : commit d1daa4452d8839313d13b8326762893b77019a9c Author: Dan
+ Scott <dscott at laurentian.ca> Date: Fri Oct 7 15:07:28 2011 -0400
+
+2011-10-07 Galen Charlton <gmc at esilibrary.com>
+
+ * RELEASE_NOTES.txt: start expanding list of new configuration
+ settings Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+
+2011-10-07 Galen Charlton <gmc at esilibrary.com>
+
+ * RELEASE_NOTES.txt: update release notes re: perl module install
+ destination Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+
+2011-10-07 Galen Charlton <gmc at esilibrary.com>
+
+ * RELEASE_NOTES.txt: add list of new library settings to release
+ notes Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+
+2011-10-06 Galen Charlton <gmc at esilibrary.com>
+
+ * Open-ILS/src/c-apps/oils_auth.c: fix authentication failure Ensure that the auth_limit values are read when open-ils.auth
+ initializes, not during oilsAuthInit(). This solves a problem
+ observed on brick-based setups where authentication could
+ incorrectly fail because the drone that processes
+ open-ils.auth.authenticate.complete didn't have the the block count
+ value initialized yet. Also fixed type nit when compare the fail count to the block limit. Signed-off-by: Galen Charlton <gmc at esilibrary.com> Signed-off-by:
+ Bill Erickson <berick at esilibrary.com>
+
+2011-10-04 Lebbeous Fogle-Weekley <lebbeous at esilibrary.com>
+
+ * Open-ILS/web/js/ui/default/acq/common/li_table.js,
+ Open-ILS/web/js/ui/default/acq/common/li_table_pager.js,
+ Open-ILS/web/js/ui/default/acq/search/unified.js: Really add
+ *entire* selection list to a purchase order, when desired, and generally do what a user would expect when, in Acq, the user
+ executes an operation on "all items". This addresses LaunchPad bug #810030. The fundamental issue is that an AcqLiTable, which is used in
+ several different ways in different interfaces, may be representing
+ items on a selection list (for example), but it doesn't necessarily
+ know all of the items that belong to that selection list. It only
+ knows what it has drawn. This addresses that deficiency by teaching the getSelected() method
+ some new tricks so that it can consult the server in the various
+ ways appropriate to getting a list of /all/ the items on a selection
+ list, a purchase order, a virtual PO, a set of search results, etc. Signed-off-by: Lebbeous Fogle-Weekley <lebbeous at esilibrary.com>
+ Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+2011-10-05 Dan Scott <dscott at laurentian.ca>
+
+ * README: Fix copy-paste-o: "su - postgres" to become postgres Thanks to sal_ in IRC who caught this nugget! Signed-off-by: Dan Scott <dscott at laurentian.ca>
+
+2011-10-05 Dan Scott <dscott at laurentian.ca>
+
+ * RELEASE_NOTES.txt: Document hold-driven recalls Signed-off-by: Dan Scott <dscott at laurentian.ca>
+
+2011-10-05 Dan Scott <dscott at laurentian.ca>
+
+ * RELEASE_NOTES.txt: Add basic Release Notes in AsciiDoc format Basically, walked through the commit log since the git era to try
+ and isolate changes of interest. I'm sure there's plenty more to
+ cover! Signed-off-by: Dan Scott <dscott at laurentian.ca>
+
+2011-10-05 Dan Scott <dscott at laurentian.ca>
+
+ * README: README: Explicitly identify accounts for commands Add a preamble to the beginning listing all of the accounts
+ referenced in the instructions (Linux accounts, PostgreSQL accounts,
+ Evergreen administrator accounts). Also move the Developer
+ Instructions to the start to follow the natural order of operations. Signed-off-by: Dan Scott <dscott at laurentian.ca>
+
+2011-10-05 Bill Erickson <berick at esilibrary.com>
+
+ * Open-ILS/src/perlmods/lib/OpenILS/Application/Search/Biblio.pm:
+ Avoid collecting facet data for non-facet fields If a config.metabib_field (Admin -> Server Admin -> MARC
+ Search/Facet Fields) starts out as a facet field but is later
+ changed, data for that facet can still bubble up since it has
+ already been extracted. This patch prevents facets for
+ config.metabib_field entries whose facet_field=false from getting
+ collected/cached for search results. Signed-off-by: Bill Erickson <berick at esilibrary.com> Signed-off-by:
+ Lebbeous Fogle-Weekley <lebbeous at esilibrary.com>
+
+2011-09-07 Dan Wells <dbw2 at calvin.edu>
+
+ * Open-ILS/src/perlmods/lib/OpenILS/Utils/Configure.pm: Clear
+ org_unit cache fix for autogen.sh autogen.sh is not properly clearing the org_tree cache. It is
+ unclear how this hasn't caused a problem before, but this fix works
+ for me and should be at least harmless in other enviroments. Signed-off-by: Dan Wells <dbw2 at calvin.edu> Signed-off-by: Lebbeous
+ Fogle-Weekley <lebbeous at esilibrary.com>
+
+2011-10-04 Dan Scott <dscott at laurentian.ca>
+
+ * Open-ILS/web/opac/locale/en-US/lang.dtd: Fix typo in lang.dtd:
+ "instantenous" Signed-off-by: Dan Scott <dscott at laurentian.ca>
+
+2011-10-04 Dan Scott <dscott at laurentian.ca>
+
+ * build/i18n/po/lang.dtd/es-ES.po: i18n: Fix es-ES illegal use of
+ '%' in lang.dtd The '%' character is used to include previously defined blocks in
+ DTD files; would be nice if translate-toolkit gave a more obvious
+ error to alert us to this rather than saying the en-US doesn't
+ validate and dying. Signed-off-by: Dan Scott <dscott at laurentian.ca>
+
+2011-08-20 Dan Scott <dan at coffeecode.net>
+
+ * Remove cache-generator.sh from Makefile.am In a previous commit, we removed cache-generator.sh. Now we remove
+ the remaining reference to it in the Makefile.am that was generating
+ an error (reported by Ben Webb). Signed-off-by: Dan Scott <dan at coffeecode.net>
+
diff --git a/Open-ILS/src/perlmods/lib/OpenILS/Application.pm b/Open-ILS/src/perlmods/lib/OpenILS/Application.pm
index cd4dbbf..5028d62 100644
--- a/Open-ILS/src/perlmods/lib/OpenILS/Application.pm
+++ b/Open-ILS/src/perlmods/lib/OpenILS/Application.pm
@@ -6,7 +6,7 @@ use base qw/OpenSRF::Application/;
sub ils_version {
# version format is "x-y-z", for example "2-0-0" for Evergreen 2.0.0
# For branches, format is "x-y"
- return "HEAD";
+ return "2-1-1";
}
__PACKAGE__->register_method(
diff --git a/Open-ILS/src/sql/Pg/002.schema.config.sql b/Open-ILS/src/sql/Pg/002.schema.config.sql
index 37b6713..e8f7cbb 100644
--- a/Open-ILS/src/sql/Pg/002.schema.config.sql
+++ b/Open-ILS/src/sql/Pg/002.schema.config.sql
@@ -58,6 +58,7 @@ CREATE TABLE config.upgrade_log (
);
INSERT INTO config.upgrade_log (version) VALUES ('0650'); -- tsbere/miker
+INSERT INTO config.upgrade_log (version) VALUES ('2.1.1');
CREATE TABLE config.bib_source (
id SERIAL PRIMARY KEY,
diff --git a/Open-ILS/src/sql/Pg/2.1.0-2.1.1.sql b/Open-ILS/src/sql/Pg/2.1.0-2.1.1.sql
new file mode 100644
index 0000000..87ef6b5
--- /dev/null
+++ b/Open-ILS/src/sql/Pg/2.1.0-2.1.1.sql
@@ -0,0 +1,951 @@
+--Upgrade Script for 2.1.0 to 2.1.1
+BEGIN;
+INSERT INTO config.upgrade_log (version) VALUES ('2.1.1');
+-- Patch from Doug Kyle re: https://bugs.launchpad.net/evergreen/+bug/822918
+
+INSERT INTO config.upgrade_log (version) VALUES ('0637');
+
+CREATE OR REPLACE FUNCTION action.item_user_circ_test( circ_ou INT, match_item BIGINT, match_user INT, renewal BOOL ) RETURNS SETOF action.circ_matrix_test_result AS $func$
+DECLARE
+ user_object actor.usr%ROWTYPE;
+ standing_penalty config.standing_penalty%ROWTYPE;
+ item_object asset.copy%ROWTYPE;
+ item_status_object config.copy_status%ROWTYPE;
+ item_location_object asset.copy_location%ROWTYPE;
+ result action.circ_matrix_test_result;
+ circ_test action.found_circ_matrix_matchpoint;
+ circ_matchpoint config.circ_matrix_matchpoint%ROWTYPE;
+ out_by_circ_mod config.circ_matrix_circ_mod_test%ROWTYPE;
+ circ_mod_map config.circ_matrix_circ_mod_test_map%ROWTYPE;
+ hold_ratio action.hold_stats%ROWTYPE;
+ penalty_type TEXT;
+ items_out INT;
+ context_org_list INT[];
+ done BOOL := FALSE;
+BEGIN
+ -- Assume success unless we hit a failure condition
+ result.success := TRUE;
+
+ -- Need user info to look up matchpoints
+ SELECT INTO user_object * FROM actor.usr WHERE id = match_user AND NOT deleted;
+
+ -- (Insta)Fail if we couldn't find the user
+ IF user_object.id IS NULL THEN
+ result.fail_part := 'no_user';
+ result.success := FALSE;
+ done := TRUE;
+ RETURN NEXT result;
+ RETURN;
+ END IF;
+
+ -- Need item info to look up matchpoints
+ SELECT INTO item_object * FROM asset.copy WHERE id = match_item AND NOT deleted;
+
+ -- (Insta)Fail if we couldn't find the item
+ IF item_object.id IS NULL THEN
+ result.fail_part := 'no_item';
+ result.success := FALSE;
+ done := TRUE;
+ RETURN NEXT result;
+ RETURN;
+ END IF;
+
+ SELECT INTO circ_test * FROM action.find_circ_matrix_matchpoint(circ_ou, item_object, user_object, renewal);
+
+ circ_matchpoint := circ_test.matchpoint;
+ result.matchpoint := circ_matchpoint.id;
+ result.circulate := circ_matchpoint.circulate;
+ result.duration_rule := circ_matchpoint.duration_rule;
+ result.recurring_fine_rule := circ_matchpoint.recurring_fine_rule;
+ result.max_fine_rule := circ_matchpoint.max_fine_rule;
+ result.hard_due_date := circ_matchpoint.hard_due_date;
+ result.renewals := circ_matchpoint.renewals;
+ result.grace_period := circ_matchpoint.grace_period;
+ result.buildrows := circ_test.buildrows;
+
+ -- (Insta)Fail if we couldn't find a matchpoint
+ IF circ_test.success = false THEN
+ result.fail_part := 'no_matchpoint';
+ result.success := FALSE;
+ done := TRUE;
+ RETURN NEXT result;
+ RETURN;
+ END IF;
+
+ -- All failures before this point are non-recoverable
+ -- Below this point are possibly overridable failures
+
+ -- Fail if the user is barred
+ IF user_object.barred IS TRUE THEN
+ result.fail_part := 'actor.usr.barred';
+ result.success := FALSE;
+ done := TRUE;
+ RETURN NEXT result;
+ END IF;
+
+ -- Fail if the item can't circulate
+ IF item_object.circulate IS FALSE THEN
+ result.fail_part := 'asset.copy.circulate';
+ result.success := FALSE;
+ done := TRUE;
+ RETURN NEXT result;
+ END IF;
+
+ -- Fail if the item isn't in a circulateable status on a non-renewal
+ IF NOT renewal AND item_object.status NOT IN ( 0, 7, 8 ) THEN
+ result.fail_part := 'asset.copy.status';
+ result.success := FALSE;
+ done := TRUE;
+ RETURN NEXT result;
+ -- Alternately, fail if the item isn't checked out on a renewal
+ ELSIF renewal AND item_object.status <> 1 THEN
+ result.fail_part := 'asset.copy.status';
+ result.success := FALSE;
+ done := TRUE;
+ RETURN NEXT result;
+ END IF;
+
+ -- Fail if the item can't circulate because of the shelving location
+ SELECT INTO item_location_object * FROM asset.copy_location WHERE id = item_object.location;
+ IF item_location_object.circulate IS FALSE THEN
+ result.fail_part := 'asset.copy_location.circulate';
+ result.success := FALSE;
+ done := TRUE;
+ RETURN NEXT result;
+ END IF;
+
+ -- Use Circ OU for penalties and such
+ SELECT INTO context_org_list ARRAY_ACCUM(id) FROM actor.org_unit_full_path( circ_ou );
+
+ IF renewal THEN
+ penalty_type = '%RENEW%';
+ ELSE
+ penalty_type = '%CIRC%';
+ END IF;
+
+ FOR standing_penalty IN
+ SELECT DISTINCT csp.*
+ FROM actor.usr_standing_penalty usp
+ JOIN config.standing_penalty csp ON (csp.id = usp.standing_penalty)
+ WHERE usr = match_user
+ AND usp.org_unit IN ( SELECT * FROM unnest(context_org_list) )
+ AND (usp.stop_date IS NULL or usp.stop_date > NOW())
+ AND csp.block_list LIKE penalty_type LOOP
+
+ result.fail_part := standing_penalty.name;
+ result.success := FALSE;
+ done := TRUE;
+ RETURN NEXT result;
+ END LOOP;
+
+ -- Fail if the test is set to hard non-circulating
+ IF circ_matchpoint.circulate IS FALSE THEN
+ result.fail_part := 'config.circ_matrix_test.circulate';
+ result.success := FALSE;
+ done := TRUE;
+ RETURN NEXT result;
+ END IF;
+
+ -- Fail if the total copy-hold ratio is too low
+ IF circ_matchpoint.total_copy_hold_ratio IS NOT NULL THEN
+ SELECT INTO hold_ratio * FROM action.copy_related_hold_stats(match_item);
+ IF hold_ratio.total_copy_ratio IS NOT NULL AND hold_ratio.total_copy_ratio < circ_matchpoint.total_copy_hold_ratio THEN
+ result.fail_part := 'config.circ_matrix_test.total_copy_hold_ratio';
+ result.success := FALSE;
+ done := TRUE;
+ RETURN NEXT result;
+ END IF;
+ END IF;
+
+ -- Fail if the available copy-hold ratio is too low
+ IF circ_matchpoint.available_copy_hold_ratio IS NOT NULL THEN
+ IF hold_ratio.hold_count IS NULL THEN
+ SELECT INTO hold_ratio * FROM action.copy_related_hold_stats(match_item);
+ END IF;
+ IF hold_ratio.available_copy_ratio IS NOT NULL AND hold_ratio.available_copy_ratio < circ_matchpoint.available_copy_hold_ratio THEN
+ result.fail_part := 'config.circ_matrix_test.available_copy_hold_ratio';
+ result.success := FALSE;
+ done := TRUE;
+ RETURN NEXT result;
+ END IF;
+ END IF;
+
+ -- Fail if the user has too many items with specific circ_modifiers checked out
+ IF NOT renewal THEN
+ FOR out_by_circ_mod IN SELECT * FROM config.circ_matrix_circ_mod_test WHERE matchpoint = circ_matchpoint.id LOOP
+ SELECT INTO items_out COUNT(*)
+ FROM action.circulation circ
+ JOIN asset.copy cp ON (cp.id = circ.target_copy)
+ WHERE circ.usr = match_user
+ AND circ.circ_lib IN ( SELECT * FROM unnest(context_org_list) )
+ AND circ.checkin_time IS NULL
+ AND (circ.stop_fines IN ('MAXFINES','LONGOVERDUE') OR circ.stop_fines IS NULL)
+ AND cp.circ_modifier IN (SELECT circ_mod FROM config.circ_matrix_circ_mod_test_map WHERE circ_mod_test = out_by_circ_mod.id);
+ IF items_out >= out_by_circ_mod.items_out THEN
+ result.fail_part := 'config.circ_matrix_circ_mod_test';
+ result.success := FALSE;
+ done := TRUE;
+ RETURN NEXT result;
+ END IF;
+ END LOOP;
+ END IF;
+
+ -- If we passed everything, return the successful matchpoint
+ IF NOT done THEN
+ RETURN NEXT result;
+ END IF;
+
+ RETURN;
+END;
+$func$ LANGUAGE plpgsql;
+
+
+
+INSERT INTO config.upgrade_log (version) VALUES ('0638'); -- miker
+
+CREATE OR REPLACE FUNCTION unapi.sitem ( obj_id BIGINT, format TEXT, ename TEXT, includes TEXT[], org TEXT, depth INT DEFAULT NULL, slimit INT DEFAULT NULL, soffset INT DEFAULT NULL, include_xmlns BOOL DEFAULT TRUE ) RETURNS XML AS $F$
+ SELECT XMLELEMENT(
+ name serial_item,
+ XMLATTRIBUTES(
+ CASE WHEN $9 THEN 'http://open-ils.org/spec/holdings/v1' ELSE NULL END AS xmlns,
+ 'tag:open-ils.org:U2 at sitem/' || id AS id,
+ 'tag:open-ils.org:U2 at siss/' || issuance AS issuance,
+ date_expected, date_received
+ ),
+ CASE WHEN issuance IS NOT NULL AND ('siss' = ANY ($4)) THEN unapi.siss( issuance, $2, 'issuance', evergreen.array_remove_item_by_value($4,'sitem'), $5, $6, $7, $8, FALSE) ELSE NULL END,
+ CASE WHEN stream IS NOT NULL AND ('sstr' = ANY ($4)) THEN unapi.sstr( stream, $2, 'stream', evergreen.array_remove_item_by_value($4,'sitem'), $5, $6, $7, $8, FALSE) ELSE NULL END,
+ CASE WHEN unit IS NOT NULL AND ('sunit' = ANY ($4)) THEN unapi.sunit( unit, $2, 'serial_unit', evergreen.array_remove_item_by_value($4,'sitem'), $5, $6, $7, $8, FALSE) ELSE NULL END,
+ CASE WHEN uri IS NOT NULL AND ('auri' = ANY ($4)) THEN unapi.auri( uri, $2, 'uri', evergreen.array_remove_item_by_value($4,'sitem'), $5, $6, $7, $8, FALSE) ELSE NULL END
+-- XMLELEMENT( name notes,
+-- CASE
+-- WHEN ('acpn' = ANY ($4)) THEN
+-- (SELECT XMLAGG(acpn) FROM (
+-- SELECT unapi.acpn( id, 'xml', 'copy_note', evergreen.array_remove_item_by_value($4,'acp'), $5, $6, $7, $8)
+-- FROM asset.copy_note
+-- WHERE owning_copy = cp.id AND pub
+-- )x)
+-- ELSE NULL
+-- END
+-- )
+ )
+ FROM serial.item sitem
+ WHERE id = $1;
+$F$ LANGUAGE SQL;
+
+
+-- Evergreen DB patch XXXX.schema.asset_merge_record_assets.sql
+--
+--
+
+INSERT INTO config.upgrade_log (version) VALUES ('0639');
+
+-- Dupe function replace removed
+
+INSERT INTO config.upgrade_log (version) VALUES ('0645');
+
+CREATE OR REPLACE FUNCTION biblio.indexing_ingest_or_delete () RETURNS TRIGGER AS $func$
+DECLARE
+ transformed_xml TEXT;
+ prev_xfrm TEXT;
+ normalizer RECORD;
+ xfrm config.xml_transform%ROWTYPE;
+ attr_value TEXT;
+ new_attrs HSTORE := ''::HSTORE;
+ attr_def config.record_attr_definition%ROWTYPE;
+BEGIN
+
+ IF NEW.deleted IS TRUE THEN -- If this bib is deleted
+ DELETE FROM metabib.metarecord_source_map WHERE source = NEW.id; -- Rid ourselves of the search-estimate-killing linkage
+ DELETE FROM metabib.record_attr WHERE id = NEW.id; -- Kill the attrs hash, useless on deleted records
+ DELETE FROM authority.bib_linking WHERE bib = NEW.id; -- Avoid updating fields in bibs that are no longer visible
+ DELETE FROM biblio.peer_bib_copy_map WHERE peer_record = NEW.id; -- Separate any multi-homed items
+ RETURN NEW; -- and we're done
+ END IF;
+
+ IF TG_OP = 'UPDATE' THEN -- re-ingest?
+ PERFORM * FROM config.internal_flag WHERE name = 'ingest.reingest.force_on_same_marc' AND enabled;
+
+ IF NOT FOUND AND OLD.marc = NEW.marc THEN -- don't do anything if the MARC didn't change
+ RETURN NEW;
+ END IF;
+ END IF;
+
+ -- Record authority linking
+ PERFORM * FROM config.internal_flag WHERE name = 'ingest.disable_authority_linking' AND enabled;
+ IF NOT FOUND THEN
+ PERFORM biblio.map_authority_linking( NEW.id, NEW.marc );
+ END IF;
+
+ -- Flatten and insert the mfr data
+ PERFORM * FROM config.internal_flag WHERE name = 'ingest.disable_metabib_full_rec' AND enabled;
+ IF NOT FOUND THEN
+ PERFORM metabib.reingest_metabib_full_rec(NEW.id);
+
+ -- Now we pull out attribute data, which is dependent on the mfr for all but XPath-based fields
+ PERFORM * FROM config.internal_flag WHERE name = 'ingest.disable_metabib_rec_descriptor' AND enabled;
+ IF NOT FOUND THEN
+ FOR attr_def IN SELECT * FROM config.record_attr_definition ORDER BY format LOOP
+
+ IF attr_def.tag IS NOT NULL THEN -- tag (and optional subfield list) selection
+ SELECT ARRAY_TO_STRING(ARRAY_ACCUM(value), COALESCE(attr_def.joiner,' ')) INTO attr_value
+ FROM (SELECT * FROM metabib.full_rec ORDER BY tag, subfield) AS x
+ WHERE record = NEW.id
+ AND tag LIKE attr_def.tag
+ AND CASE
+ WHEN attr_def.sf_list IS NOT NULL
+ THEN POSITION(subfield IN attr_def.sf_list) > 0
+ ELSE TRUE
+ END
+ GROUP BY tag
+ ORDER BY tag
+ LIMIT 1;
+
+ ELSIF attr_def.fixed_field IS NOT NULL THEN -- a named fixed field, see config.marc21_ff_pos_map.fixed_field
+ attr_value := biblio.marc21_extract_fixed_field(NEW.id, attr_def.fixed_field);
+
+ ELSIF attr_def.xpath IS NOT NULL THEN -- and xpath expression
+
+ SELECT INTO xfrm * FROM config.xml_transform WHERE name = attr_def.format;
+
+ -- See if we can skip the XSLT ... it's expensive
+ IF prev_xfrm IS NULL OR prev_xfrm <> xfrm.name THEN
+ -- Can't skip the transform
+ IF xfrm.xslt <> '---' THEN
+ transformed_xml := oils_xslt_process(NEW.marc,xfrm.xslt);
+ ELSE
+ transformed_xml := NEW.marc;
+ END IF;
+
+ prev_xfrm := xfrm.name;
+ END IF;
+
+ IF xfrm.name IS NULL THEN
+ -- just grab the marcxml (empty) transform
+ SELECT INTO xfrm * FROM config.xml_transform WHERE xslt = '---' LIMIT 1;
+ prev_xfrm := xfrm.name;
+ END IF;
+
+ attr_value := oils_xpath_string(attr_def.xpath, transformed_xml, COALESCE(attr_def.joiner,' '), ARRAY[ARRAY[xfrm.prefix, xfrm.namespace_uri]]);
+
+ ELSIF attr_def.phys_char_sf IS NOT NULL THEN -- a named Physical Characteristic, see config.marc21_physical_characteristic_*_map
+ SELECT m.value INTO attr_value
+ FROM biblio.marc21_physical_characteristics(NEW.id) v
+ JOIN config.marc21_physical_characteristic_value_map m ON (m.id = v.value)
+ WHERE v.subfield = attr_def.phys_char_sf
+ LIMIT 1; -- Just in case ...
+
+ END IF;
+
+ -- apply index normalizers to attr_value
+ FOR normalizer IN
+ SELECT n.func AS func,
+ n.param_count AS param_count,
+ m.params AS params
+ FROM config.index_normalizer n
+ JOIN config.record_attr_index_norm_map m ON (m.norm = n.id)
+ WHERE attr = attr_def.name
+ ORDER BY m.pos LOOP
+ EXECUTE 'SELECT ' || normalizer.func || '(' ||
+ COALESCE( quote_literal( attr_value ), 'NULL' ) ||
+ CASE
+ WHEN normalizer.param_count > 0
+ THEN ',' || REPLACE(REPLACE(BTRIM(normalizer.params,'[]'),E'\'',E'\\\''),E'"',E'\'')
+ ELSE ''
+ END ||
+ ')' INTO attr_value;
+
+ END LOOP;
+
+ -- Add the new value to the hstore
+ new_attrs := new_attrs || hstore( attr_def.name, attr_value );
+
+ END LOOP;
+
+ IF TG_OP = 'INSERT' OR OLD.deleted THEN -- initial insert OR revivication
+ INSERT INTO metabib.record_attr (id, attrs) VALUES (NEW.id, new_attrs);
+ ELSE
+ UPDATE metabib.record_attr SET attrs = attrs || new_attrs WHERE id = NEW.id;
+ END IF;
+
+ END IF;
+ END IF;
+
+ -- Gather and insert the field entry data
+ PERFORM metabib.reingest_metabib_field_entries(NEW.id);
+
+ -- Located URI magic
+ IF TG_OP = 'INSERT' THEN
+ PERFORM * FROM config.internal_flag WHERE name = 'ingest.disable_located_uri' AND enabled;
+ IF NOT FOUND THEN
+ PERFORM biblio.extract_located_uris( NEW.id, NEW.marc, NEW.editor );
+ END IF;
+ ELSE
+ PERFORM * FROM config.internal_flag WHERE name = 'ingest.disable_located_uri' AND enabled;
+ IF NOT FOUND THEN
+ PERFORM biblio.extract_located_uris( NEW.id, NEW.marc, NEW.editor );
+ END IF;
+ END IF;
+
+ -- (re)map metarecord-bib linking
+ IF TG_OP = 'INSERT' THEN -- if not deleted and performing an insert, check for the flag
+ PERFORM * FROM config.internal_flag WHERE name = 'ingest.metarecord_mapping.skip_on_insert' AND enabled;
+ IF NOT FOUND THEN
+ PERFORM metabib.remap_metarecord_for_bib( NEW.id, NEW.fingerprint );
+ END IF;
+ ELSE -- we're doing an update, and we're not deleted, remap
+ PERFORM * FROM config.internal_flag WHERE name = 'ingest.metarecord_mapping.skip_on_update' AND enabled;
+ IF NOT FOUND THEN
+ PERFORM metabib.remap_metarecord_for_bib( NEW.id, NEW.fingerprint );
+ END IF;
+ END IF;
+
+ RETURN NEW;
+END;
+$func$ LANGUAGE PLPGSQL;
+
+
+INSERT INTO config.upgrade_log (version) VALUES ('0646');
+
+CREATE OR REPLACE FUNCTION asset.staff_ou_record_copy_count (org INT, rid BIGINT) RETURNS TABLE (depth INT, org_unit INT, visible BIGINT, available BIGINT, unshadow BIGINT, transcendant INT) AS $f$
+DECLARE
+ ans RECORD;
+ trans INT;
+BEGIN
+ SELECT 1 INTO trans FROM biblio.record_entry b JOIN config.bib_source src ON (b.source = src.id) WHERE src.transcendant AND b.id = rid;
+
+ FOR ans IN SELECT u.id, t.depth FROM actor.org_unit_ancestors(org) AS u JOIN actor.org_unit_type t ON (u.ou_type = t.id) LOOP
+ RETURN QUERY
+ SELECT ans.depth,
+ ans.id,
+ COUNT( cp.id ),
+ SUM( CASE WHEN cp.status IN (0,7,12) THEN 1 ELSE 0 END ),
+ SUM( CASE WHEN cl.opac_visible AND cp.opac_visible THEN 1 ELSE 0 END),
+ trans
+ FROM
+ actor.org_unit_descendants(ans.id) d
+ JOIN asset.copy cp ON (cp.circ_lib = d.id AND NOT cp.deleted)
+ JOIN asset.copy_location cl ON (cp.location = cl.id)
+ JOIN asset.call_number cn ON (cn.record = rid AND cn.id = cp.call_number AND NOT cn.deleted)
+ GROUP BY 1,2,6;
+
+ IF NOT FOUND THEN
+ RETURN QUERY SELECT ans.depth, ans.id, 0::BIGINT, 0::BIGINT, 0::BIGINT, trans;
+ END IF;
+
+ END LOOP;
+
+ RETURN;
+END;
+$f$ LANGUAGE PLPGSQL;
+
+CREATE OR REPLACE FUNCTION asset.staff_lasso_record_copy_count (i_lasso INT, rid BIGINT) RETURNS TABLE (depth INT, org_unit INT, visible BIGINT, available BIGINT, unshadow BIGINT, transcendant INT) AS $f$
+DECLARE
+ ans RECORD;
+ trans INT;
+BEGIN
+ SELECT 1 INTO trans FROM biblio.record_entry b JOIN config.bib_source src ON (b.source = src.id) WHERE src.transcendant AND b.id = rid;
+
+ FOR ans IN SELECT u.org_unit AS id FROM actor.org_lasso_map AS u WHERE lasso = i_lasso LOOP
+ RETURN QUERY
+ SELECT -1,
+ ans.id,
+ COUNT( cp.id ),
+ SUM( CASE WHEN cp.status IN (0,7,12) THEN 1 ELSE 0 END ),
+ SUM( CASE WHEN cl.opac_visible AND cp.opac_visible THEN 1 ELSE 0 END),
+ trans
+ FROM
+ actor.org_unit_descendants(ans.id) d
+ JOIN asset.copy cp ON (cp.circ_lib = d.id AND NOT cp.deleted)
+ JOIN asset.copy_location cl ON (cp.location = cl.id)
+ JOIN asset.call_number cn ON (cn.record = rid AND cn.id = cp.call_number AND NOT cn.deleted)
+ GROUP BY 1,2,6;
+
+ IF NOT FOUND THEN
+ RETURN QUERY SELECT ans.depth, ans.id, 0::BIGINT, 0::BIGINT, 0::BIGINT, trans;
+ END IF;
+
+ END LOOP;
+
+ RETURN;
+END;
+$f$ LANGUAGE PLPGSQL;
+
+
+INSERT INTO config.upgrade_log (version) VALUES ('0648');
+
+CREATE OR REPLACE FUNCTION asset.merge_record_assets( target_record BIGINT, source_record BIGINT ) RETURNS INT AS $func$
+DECLARE
+ moved_objects INT := 0;
+ source_cn asset.call_number%ROWTYPE;
+ target_cn asset.call_number%ROWTYPE;
+ metarec metabib.metarecord%ROWTYPE;
+ hold action.hold_request%ROWTYPE;
+ ser_rec serial.record_entry%ROWTYPE;
+ ser_sub serial.subscription%ROWTYPE;
+ acq_lineitem acq.lineitem%ROWTYPE;
+ acq_request acq.user_request%ROWTYPE;
+ booking booking.resource_type%ROWTYPE;
+ source_part biblio.monograph_part%ROWTYPE;
+ target_part biblio.monograph_part%ROWTYPE;
+ multi_home biblio.peer_bib_copy_map%ROWTYPE;
+ uri_count INT := 0;
+ counter INT := 0;
+ uri_datafield TEXT;
+ uri_text TEXT := '';
+BEGIN
+
+ -- move any 856 entries on records that have at least one MARC-mapped URI entry
+ SELECT INTO uri_count COUNT(*)
+ FROM asset.uri_call_number_map m
+ JOIN asset.call_number cn ON (m.call_number = cn.id)
+ WHERE cn.record = source_record;
+
+ IF uri_count > 0 THEN
+
+ SELECT COUNT(*) INTO counter
+ FROM oils_xpath_table(
+ 'id',
+ 'marc',
+ 'biblio.record_entry',
+ '//*[@tag="856"]',
+ 'id=' || source_record
+ ) as t(i int,c text);
+
+ FOR i IN 1 .. counter LOOP
+ SELECT '<datafield xmlns="http://www.loc.gov/MARC21/slim"' ||
+ ' tag="856"' ||
+ ' ind1="' || FIRST(ind1) || '"' ||
+ ' ind2="' || FIRST(ind2) || '">' ||
+ array_to_string(
+ array_accum(
+ '<subfield code="' || subfield || '">' ||
+ regexp_replace(
+ regexp_replace(
+ regexp_replace(data,'&','&','g'),
+ '>', '>', 'g'
+ ),
+ '<', '<', 'g'
+ ) || '</subfield>'
+ ), ''
+ ) || '</datafield>' INTO uri_datafield
+ FROM oils_xpath_table(
+ 'id',
+ 'marc',
+ 'biblio.record_entry',
+ '//*[@tag="856"][position()=' || i || ']/@ind1|' ||
+ '//*[@tag="856"][position()=' || i || ']/@ind2|' ||
+ '//*[@tag="856"][position()=' || i || ']/*/@code|' ||
+ '//*[@tag="856"][position()=' || i || ']/*[@code]',
+ 'id=' || source_record
+ ) as t(id int,ind1 text, ind2 text,subfield text,data text);
+
+ uri_text := uri_text || uri_datafield;
+ END LOOP;
+
+ IF uri_text <> '' THEN
+ UPDATE biblio.record_entry
+ SET marc = regexp_replace(marc,'(</[^>]*record>)', uri_text || E'\\1')
+ WHERE id = target_record;
+ END IF;
+
+ END IF;
+
+ -- Find and move metarecords to the target record
+ SELECT INTO metarec *
+ FROM metabib.metarecord
+ WHERE master_record = source_record;
+
+ IF FOUND THEN
+ UPDATE metabib.metarecord
+ SET master_record = target_record,
+ mods = NULL
+ WHERE id = metarec.id;
+
+ moved_objects := moved_objects + 1;
+ END IF;
+
+ -- Find call numbers attached to the source ...
+ FOR source_cn IN SELECT * FROM asset.call_number WHERE record = source_record LOOP
+
+ SELECT INTO target_cn *
+ FROM asset.call_number
+ WHERE label = source_cn.label
+ AND owning_lib = source_cn.owning_lib
+ AND record = target_record;
+
+ -- ... and if there's a conflicting one on the target ...
+ IF FOUND THEN
+
+ -- ... move the copies to that, and ...
+ UPDATE asset.copy
+ SET call_number = target_cn.id
+ WHERE call_number = source_cn.id;
+
+ -- ... move V holds to the move-target call number
+ FOR hold IN SELECT * FROM action.hold_request WHERE target = source_cn.id AND hold_type = 'V' LOOP
+
+ UPDATE action.hold_request
+ SET target = target_cn.id
+ WHERE id = hold.id;
+
+ moved_objects := moved_objects + 1;
+ END LOOP;
+
+ -- ... if not ...
+ ELSE
+ -- ... just move the call number to the target record
+ UPDATE asset.call_number
+ SET record = target_record
+ WHERE id = source_cn.id;
+ END IF;
+
+ moved_objects := moved_objects + 1;
+ END LOOP;
+
+ -- Find T holds targeting the source record ...
+ FOR hold IN SELECT * FROM action.hold_request WHERE target = source_record AND hold_type = 'T' LOOP
+
+ -- ... and move them to the target record
+ UPDATE action.hold_request
+ SET target = target_record
+ WHERE id = hold.id;
+
+ moved_objects := moved_objects + 1;
+ END LOOP;
+
+ -- Find serial records targeting the source record ...
+ FOR ser_rec IN SELECT * FROM serial.record_entry WHERE record = source_record LOOP
+ -- ... and move them to the target record
+ UPDATE serial.record_entry
+ SET record = target_record
+ WHERE id = ser_rec.id;
+
+ moved_objects := moved_objects + 1;
+ END LOOP;
+
+ -- Find serial subscriptions targeting the source record ...
+ FOR ser_sub IN SELECT * FROM serial.subscription WHERE record_entry = source_record LOOP
+ -- ... and move them to the target record
+ UPDATE serial.subscription
+ SET record_entry = target_record
+ WHERE id = ser_sub.id;
+
+ moved_objects := moved_objects + 1;
+ END LOOP;
+
+ -- Find booking resource types targeting the source record ...
+ FOR booking IN SELECT * FROM booking.resource_type WHERE record = source_record LOOP
+ -- ... and move them to the target record
+ UPDATE booking.resource_type
+ SET record = target_record
+ WHERE id = booking.id;
+
+ moved_objects := moved_objects + 1;
+ END LOOP;
+
+ -- Find acq lineitems targeting the source record ...
+ FOR acq_lineitem IN SELECT * FROM acq.lineitem WHERE eg_bib_id = source_record LOOP
+ -- ... and move them to the target record
+ UPDATE acq.lineitem
+ SET eg_bib_id = target_record
+ WHERE id = acq_lineitem.id;
+
+ moved_objects := moved_objects + 1;
+ END LOOP;
+
+ -- Find acq user purchase requests targeting the source record ...
+ FOR acq_request IN SELECT * FROM acq.user_request WHERE eg_bib = source_record LOOP
+ -- ... and move them to the target record
+ UPDATE acq.user_request
+ SET eg_bib = target_record
+ WHERE id = acq_request.id;
+
+ moved_objects := moved_objects + 1;
+ END LOOP;
+
+ -- Find parts attached to the source ...
+ FOR source_part IN SELECT * FROM biblio.monograph_part WHERE record = source_record LOOP
+
+ SELECT INTO target_part *
+ FROM biblio.monograph_part
+ WHERE label = source_part.label
+ AND record = target_record;
+
+ -- ... and if there's a conflicting one on the target ...
+ IF FOUND THEN
+
+ -- ... move the copy-part maps to that, and ...
+ UPDATE asset.copy_part_map
+ SET part = target_part.id
+ WHERE part = source_part.id;
+
+ -- ... move P holds to the move-target part
+ FOR hold IN SELECT * FROM action.hold_request WHERE target = source_part.id AND hold_type = 'P' LOOP
+
+ UPDATE action.hold_request
+ SET target = target_part.id
+ WHERE id = hold.id;
+
+ moved_objects := moved_objects + 1;
+ END LOOP;
+
+ -- ... if not ...
+ ELSE
+ -- ... just move the part to the target record
+ UPDATE biblio.monograph_part
+ SET record = target_record
+ WHERE id = source_part.id;
+ END IF;
+
+ moved_objects := moved_objects + 1;
+ END LOOP;
+
+ -- Find multi_home items attached to the source ...
+ FOR multi_home IN SELECT * FROM biblio.peer_bib_copy_map WHERE peer_record = source_record LOOP
+ -- ... and move them to the target record
+ UPDATE biblio.peer_bib_copy_map
+ SET peer_record = target_record
+ WHERE id = multi_home.id;
+
+ moved_objects := moved_objects + 1;
+ END LOOP;
+
+ -- And delete mappings where the item's home bib was merged with the peer bib
+ DELETE FROM biblio.peer_bib_copy_map WHERE peer_record = (
+ SELECT (SELECT record FROM asset.call_number WHERE id = call_number)
+ FROM asset.copy WHERE id = target_copy
+ );
+
+ -- Finally, "delete" the source record
+ DELETE FROM biblio.record_entry WHERE id = source_record;
+
+ -- That's all, folks!
+ RETURN moved_objects;
+END;
+$func$ LANGUAGE plpgsql;
+
+
+
+INSERT INTO config.upgrade_log (version) VALUES ('0649');
+
+CREATE OR REPLACE VIEW extend_reporter.full_circ_count AS
+ SELECT cp.id, COALESCE(c.circ_count, 0::bigint) + COALESCE(count(DISTINCT circ.id), 0::bigint) + COALESCE(count(DISTINCT acirc.id), 0::bigint) AS circ_count
+ FROM asset."copy" cp
+ LEFT JOIN extend_reporter.legacy_circ_count c USING (id)
+ LEFT JOIN "action".circulation circ ON circ.target_copy = cp.id
+ LEFT JOIN "action".aged_circulation acirc ON acirc.target_copy = cp.id
+ GROUP BY cp.id, c.circ_count;
+
+
+
+INSERT INTO config.upgrade_log (version) VALUES ('0650');
+
+CREATE OR REPLACE FUNCTION asset.cache_copy_visibility () RETURNS TRIGGER as $func$
+DECLARE
+ add_front TEXT;
+ add_back TEXT;
+ add_base_query TEXT;
+ add_peer_query TEXT;
+ remove_query TEXT;
+ do_add BOOLEAN := false;
+ do_remove BOOLEAN := false;
+BEGIN
+ add_base_query := $$
+ SELECT cp.id, cp.circ_lib, cn.record, cn.id AS call_number, cp.location, cp.status
+ FROM asset.copy cp
+ JOIN asset.call_number cn ON (cn.id = cp.call_number)
+ JOIN actor.org_unit a ON (cp.circ_lib = a.id)
+ JOIN asset.copy_location cl ON (cp.location = cl.id)
+ JOIN config.copy_status cs ON (cp.status = cs.id)
+ JOIN biblio.record_entry b ON (cn.record = b.id)
+ WHERE NOT cp.deleted
+ AND NOT cn.deleted
+ AND NOT b.deleted
+ AND cs.opac_visible
+ AND cl.opac_visible
+ AND cp.opac_visible
+ AND a.opac_visible
+ $$;
+ add_peer_query := $$
+ SELECT cp.id, cp.circ_lib, pbcm.peer_record AS record, NULL AS call_number, cp.location, cp.status
+ FROM asset.copy cp
+ JOIN biblio.peer_bib_copy_map pbcm ON (pbcm.target_copy = cp.id)
+ JOIN actor.org_unit a ON (cp.circ_lib = a.id)
+ JOIN asset.copy_location cl ON (cp.location = cl.id)
+ JOIN config.copy_status cs ON (cp.status = cs.id)
+ WHERE NOT cp.deleted
+ AND cs.opac_visible
+ AND cl.opac_visible
+ AND cp.opac_visible
+ AND a.opac_visible
+ $$;
+ add_front := $$
+ INSERT INTO asset.opac_visible_copies (copy_id, circ_lib, record)
+ SELECT DISTINCT ON (id, record) id, circ_lib, record FROM (
+ $$;
+ add_back := $$
+ ) AS x
+ $$;
+
+ remove_query := $$ DELETE FROM asset.opac_visible_copies WHERE copy_id IN ( SELECT id FROM asset.copy WHERE $$;
+
+ IF TG_TABLE_NAME = 'peer_bib_copy_map' THEN
+ IF TG_OP = 'INSERT' THEN
+ add_peer_query := add_peer_query || ' AND cp.id = ' || NEW.target_copy || ' AND pbcm.peer_record = ' || NEW.peer_record;
+ EXECUTE add_front || add_peer_query || add_back;
+ RETURN NEW;
+ ELSE
+ remove_query := 'DELETE FROM asset.opac_visible_copies WHERE copy_id = ' || OLD.target_copy || ' AND record = ' || OLD.peer_record || ';';
+ EXECUTE remove_query;
+ RETURN OLD;
+ END IF;
+ END IF;
+
+ IF TG_OP = 'INSERT' THEN
+
+ IF TG_TABLE_NAME IN ('copy', 'unit') THEN
+ add_base_query := add_base_query || ' AND cp.id = ' || NEW.id;
+ EXECUTE add_front || add_base_query || add_back;
+ END IF;
+
+ RETURN NEW;
+
+ END IF;
+
+ -- handle items first, since with circulation activity
+ -- their statuses change frequently
+ IF TG_TABLE_NAME IN ('copy', 'unit') THEN
+
+ IF OLD.location <> NEW.location OR
+ OLD.call_number <> NEW.call_number OR
+ OLD.status <> NEW.status OR
+ OLD.circ_lib <> NEW.circ_lib THEN
+ -- any of these could change visibility, but
+ -- we'll save some queries and not try to calculate
+ -- the change directly
+ do_remove := true;
+ do_add := true;
+ ELSE
+
+ IF OLD.deleted <> NEW.deleted THEN
+ IF NEW.deleted THEN
+ do_remove := true;
+ ELSE
+ do_add := true;
+ END IF;
+ END IF;
+
+ IF OLD.opac_visible <> NEW.opac_visible THEN
+ IF OLD.opac_visible THEN
+ do_remove := true;
+ ELSIF NOT do_remove THEN -- handle edge case where deleted item
+ -- is also marked opac_visible
+ do_add := true;
+ END IF;
+ END IF;
+
+ END IF;
+
+ IF do_remove THEN
+ DELETE FROM asset.opac_visible_copies WHERE copy_id = NEW.id;
+ END IF;
+ IF do_add THEN
+ add_base_query := add_base_query || ' AND cp.id = ' || NEW.id;
+ add_peer_query := add_peer_query || ' AND cp.id = ' || NEW.id;
+ EXECUTE add_front || add_base_query || ' UNION ' || add_peer_query || add_back;
+ END IF;
+
+ RETURN NEW;
+
+ END IF;
+
+ IF TG_TABLE_NAME IN ('call_number', 'record_entry') THEN -- these have a 'deleted' column
+
+ IF OLD.deleted AND NEW.deleted THEN -- do nothing
+
+ RETURN NEW;
+
+ ELSIF NEW.deleted THEN -- remove rows
+
+ IF TG_TABLE_NAME = 'call_number' THEN
+ DELETE FROM asset.opac_visible_copies WHERE copy_id IN (SELECT id FROM asset.copy WHERE call_number = NEW.id);
+ ELSIF TG_TABLE_NAME = 'record_entry' THEN
+ DELETE FROM asset.opac_visible_copies WHERE record = NEW.id;
+ END IF;
+
+ RETURN NEW;
+
+ ELSIF OLD.deleted THEN -- add rows
+
+ IF TG_TABLE_NAME = 'call_number' THEN
+ add_base_query := add_base_query || ' AND cn.id = ' || NEW.id;
+ EXECUTE add_front || add_base_query || add_back;
+ ELSIF TG_TABLE_NAME = 'record_entry' THEN
+ add_base_query := add_base_query || ' AND cn.record = ' || NEW.id;
+ add_peer_query := add_peer_query || ' AND pbcm.peer_record = ' || NEW.id;
+ EXECUTE add_front || add_base_query || ' UNION ' || add_peer_query || add_back;
+ END IF;
+
+ RETURN NEW;
+
+ END IF;
+
+ END IF;
+
+ IF TG_TABLE_NAME = 'call_number' THEN
+
+ IF OLD.record <> NEW.record THEN
+ -- call number is linked to different bib
+ remove_query := remove_query || 'call_number = ' || NEW.id || ');';
+ EXECUTE remove_query;
+ add_base_query := add_base_query || ' AND cn.id = ' || NEW.id;
+ EXECUTE add_front || add_base_query || add_back;
+ END IF;
+
+ RETURN NEW;
+
+ END IF;
+
+ IF TG_TABLE_NAME IN ('record_entry') THEN
+ RETURN NEW; -- don't have 'opac_visible'
+ END IF;
+
+ -- actor.org_unit, asset.copy_location, asset.copy_status
+ IF NEW.opac_visible = OLD.opac_visible THEN -- do nothing
+
+ RETURN NEW;
+
+ ELSIF NEW.opac_visible THEN -- add rows
+
+ IF TG_TABLE_NAME = 'org_unit' THEN
+ add_base_query := add_base_query || ' AND cp.circ_lib = ' || NEW.id;
+ add_peer_query := add_peer_query || ' AND cp.circ_lib = ' || NEW.id;
+ ELSIF TG_TABLE_NAME = 'copy_location' THEN
+ add_base_query := add_base_query || ' AND cp.location = ' || NEW.id;
+ add_peer_query := add_peer_query || ' AND cp.location = ' || NEW.id;
+ ELSIF TG_TABLE_NAME = 'copy_status' THEN
+ add_base_query := add_base_query || ' AND cp.status = ' || NEW.id;
+ add_peer_query := add_peer_query || ' AND cp.status = ' || NEW.id;
+ END IF;
+
+ EXECUTE add_front || add_base_query || ' UNION ' || add_peer_query || add_back;
+
+ ELSE -- delete rows
+
+ IF TG_TABLE_NAME = 'org_unit' THEN
+ remove_query := 'DELETE FROM asset.opac_visible_copies WHERE circ_lib = ' || NEW.id || ';';
+ ELSIF TG_TABLE_NAME = 'copy_location' THEN
+ remove_query := remove_query || 'location = ' || NEW.id || ');';
+ ELSIF TG_TABLE_NAME = 'copy_status' THEN
+ remove_query := remove_query || 'status = ' || NEW.id || ');';
+ END IF;
+
+ EXECUTE remove_query;
+
+ END IF;
+
+ RETURN NEW;
+END;
+$func$ LANGUAGE PLPGSQL;
+
+COMMIT;
diff --git a/Open-ILS/xul/staff_client/chrome/content/main/about.html b/Open-ILS/xul/staff_client/chrome/content/main/about.html
index 2609bb6..82c95f8 100644
--- a/Open-ILS/xul/staff_client/chrome/content/main/about.html
+++ b/Open-ILS/xul/staff_client/chrome/content/main/about.html
@@ -1,7 +1,7 @@
<html><head><script></script></head><body onload="var x = document.getElementById('version'); var version ='/xul/server/'.split(/\//)[2]; if (version == 'server') { version = 'versionless debug build'; } x.appendChild(document.createTextNode(version));">
<h1 style="text-decoration: underline">Evergreen</h1>
<p>Target Server ID: <span id="version"></span></p>
-<p>$HeadURL$</p>
+<p>http://git.evergreen-ils.org/Evergreen.git?h=refs/heads/rel_2_1_1</p>
<h2>What is Evergreen?</h2>
<blockquote>
<p>
diff --git a/Open-ILS/xul/staff_client/defaults/preferences/prefs.js b/Open-ILS/xul/staff_client/defaults/preferences/prefs.js
index 19dcd2a..f11517b 100644
--- a/Open-ILS/xul/staff_client/defaults/preferences/prefs.js
+++ b/Open-ILS/xul/staff_client/defaults/preferences/prefs.js
@@ -11,7 +11,7 @@ pref("toolkit.singletonWindowType", "eg_main");
pref("open-ils.enable_join_tabs", true);
// We'll use this one to help brand some build information into the client, and rely on subversion keywords
-pref("open-ils.repository.headURL","$HeadURL$");
+pref("open-ils.repository.headURL","http://git.evergreen-ils.org/Evergreen.git?h=refs/heads/rel_2_1_1");
pref("open-ils.repository.author","$Author$");
pref("open-ils.repository.revision","$Revision$");
pref("open-ils.repository.date","$Date$");
diff --git a/README b/README
index 95621e5..8a4a541 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-README for Evergreen 2.1.0a
+README for Evergreen 2.1.1
===========================
Preamble: referenced user accounts
@@ -38,8 +38,8 @@ the following commands as the *user* Linux account:
[source, bash]
------------------------------------------------------------------------------
-wget -c http://evergreen-ils.org/downloads/Evergreen-ILS-2.1.0a.tar.gz
-tar xzf Evergreen-ILS-2.1.0a.tar.gz
+wget -c http://evergreen-ils.org/downloads/Evergreen-ILS-2.1.1.tar.gz
+tar xzf Evergreen-ILS-2.1.1.tar.gz
------------------------------------------------------------------------------
Preamble: Developer instructions
@@ -172,7 +172,7 @@ Installation instructions
+
[source, bash]
------------------------------------------------------------------------------
-make STAFF_CLIENT_STAMP_ID=rel_2_1_0 install
+make STAFF_CLIENT_STAMP_ID=rel_2_1_1 install
------------------------------------------------------------------------------
+
2. The server portion of the staff client expects `http://hostname/xul/server`
diff --git a/configure.ac b/configure.ac
index dd0b098..56663b5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -20,8 +20,8 @@
export PATH=${PATH}:/usr/sbin
AC_PREREQ(2.61)
-AC_INIT(Open-ILS, trunk, open-ils-dev at list.georgialibraries.org)
-AM_INIT_AUTOMAKE([OpenILS], [trunk])
+AC_INIT(Open-ILS, 2.1.1, open-ils-dev at list.georgialibraries.org)
+AM_INIT_AUTOMAKE([OpenILS], [2.1.1])
AC_REVISION($Revision: 0.1 $)
AC_CONFIG_SRCDIR([configure.ac])
AC_PREFIX_DEFAULT([/openils/])
-----------------------------------------------------------------------
hooks/post-receive
--
Evergreen ILS
More information about the open-ils-commits
mailing list