[open-ils-commits] [GIT] Evergreen ILS branch tags/rel_2_11_0 created. abc597f0ea8a060342dfe2145f67f48eea79e565

Evergreen Git git at git.evergreen-ils.org
Fri Sep 23 16:20:54 EDT 2016


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_11_0 has been created
        at  abc597f0ea8a060342dfe2145f67f48eea79e565 (commit)

- Log -----------------------------------------------------------------
commit abc597f0ea8a060342dfe2145f67f48eea79e565
Author: Dan Wells <dbw2 at calvin.edu>
Date:   Wed Sep 21 16:11:41 2016 -0400

    Bumping version numbers, adding Upgrade Script and Changelog
    
    Signed-off-by: Dan Wells <dbw2 at calvin.edu>

diff --git a/ChangeLog b/ChangeLog
index 1f72b2c..5e809b2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,3981 @@
-Evergreen doesn't keep a GNU-style ChangeLog except in release tarballs.
-Those seeking a change log are encouraged to run 'git log -v', or read
-it online at: http://git.evergreen-ils.org/?p=Evergreen.git;a=log
+commit d5ccc21e2ace9fe14e9c0549d39e487b3138bd57
+Author: Dan Wells <dbw2 at calvin.edu>
+Date:   Thu Aug 25 18:08:07 2016 -0400
+
+    Update release notes
+    
+    Signed-off-by: Dan Wells <dbw2 at calvin.edu>
+
+536	0	docs/RELEASE_NOTES_2_11.adoc
+0	16	docs/RELEASE_NOTES_NEXT/Administration/Action_Trigger_Email_Headers.adoc
+0	15	docs/RELEASE_NOTES_NEXT/Administration/lp1568046-tablefunc-extension-removed.adoc
+0	29	docs/RELEASE_NOTES_NEXT/Administration/user-activity-purge.adoc
+0	6	docs/RELEASE_NOTES_NEXT/Cataloging/auth_bib_update.adoc
+0	16	docs/RELEASE_NOTES_NEXT/Cataloging/auth_prop_bib_update.adoc
+0	6	docs/RELEASE_NOTES_NEXT/Cataloging/bib_source_in_901s.txt
+0	12	docs/RELEASE_NOTES_NEXT/Cataloging/marc_bib_update.adoc
+0	21	docs/RELEASE_NOTES_NEXT/Circulation/aged-circs-see-light-of-day.adoc
+0	26	docs/RELEASE_NOTES_NEXT/Circulation/canceled-transit-copy-status.adoc
+0	18	docs/RELEASE_NOTES_NEXT/Circulation/copy-status-is-avail.adoc
+0	20	docs/RELEASE_NOTES_NEXT/Circulation/email_cko_receipts.adoc
+0	18	docs/RELEASE_NOTES_NEXT/Circulation/limit_payment_amounts_accepted.txt
+0	17	docs/RELEASE_NOTES_NEXT/Client/added-fields-for-client-interfaces.adoc
+0	7	docs/RELEASE_NOTES_NEXT/OPAC/combine_notice_prefs_tables.adoc
+0	14	docs/RELEASE_NOTES_NEXT/OPAC/improved-myopac-holds-screens.adoc
+0	74	docs/RELEASE_NOTES_NEXT/OPAC/popularity-rating.txt
+0	9	docs/RELEASE_NOTES_NEXT/OPAC/remove_advanced_hold_options_for_parts.adoc
+0	8	docs/RELEASE_NOTES_NEXT/SIP/SIP_Workstation_Name.adoc
+0	7	docs/RELEASE_NOTES_NEXT/SIP/SIP_renewal_blocks.adoc
+0	7	docs/RELEASE_NOTES_NEXT/Translations/Updates.adoc
+21	41	docs/installation/server_upgrade.txt
+ create mode 100644 docs/RELEASE_NOTES_2_11.adoc
+ delete mode 100644 docs/RELEASE_NOTES_NEXT/Administration/Action_Trigger_Email_Headers.adoc
+ delete mode 100644 docs/RELEASE_NOTES_NEXT/Administration/lp1568046-tablefunc-extension-removed.adoc
+ delete mode 100644 docs/RELEASE_NOTES_NEXT/Administration/user-activity-purge.adoc
+ delete mode 100644 docs/RELEASE_NOTES_NEXT/Cataloging/auth_bib_update.adoc
+ delete mode 100644 docs/RELEASE_NOTES_NEXT/Cataloging/auth_prop_bib_update.adoc
+ delete mode 100644 docs/RELEASE_NOTES_NEXT/Cataloging/bib_source_in_901s.txt
+ delete mode 100644 docs/RELEASE_NOTES_NEXT/Cataloging/marc_bib_update.adoc
+ delete mode 100644 docs/RELEASE_NOTES_NEXT/Circulation/aged-circs-see-light-of-day.adoc
+ delete mode 100644 docs/RELEASE_NOTES_NEXT/Circulation/canceled-transit-copy-status.adoc
+ delete mode 100644 docs/RELEASE_NOTES_NEXT/Circulation/copy-status-is-avail.adoc
+ delete mode 100644 docs/RELEASE_NOTES_NEXT/Circulation/email_cko_receipts.adoc
+ delete mode 100644 docs/RELEASE_NOTES_NEXT/Circulation/limit_payment_amounts_accepted.txt
+ delete mode 100644 docs/RELEASE_NOTES_NEXT/Client/added-fields-for-client-interfaces.adoc
+ delete mode 100644 docs/RELEASE_NOTES_NEXT/OPAC/combine_notice_prefs_tables.adoc
+ delete mode 100644 docs/RELEASE_NOTES_NEXT/OPAC/improved-myopac-holds-screens.adoc
+ delete mode 100644 docs/RELEASE_NOTES_NEXT/OPAC/popularity-rating.txt
+ delete mode 100644 docs/RELEASE_NOTES_NEXT/OPAC/remove_advanced_hold_options_for_parts.adoc
+ delete mode 100644 docs/RELEASE_NOTES_NEXT/SIP/SIP_Workstation_Name.adoc
+ delete mode 100644 docs/RELEASE_NOTES_NEXT/SIP/SIP_renewal_blocks.adoc
+ delete mode 100644 docs/RELEASE_NOTES_NEXT/Translations/Updates.adoc
+
+commit ccceb089a6011894aa174c1b7895933dd1e9fdb6
+Author: Dan Wells <dbw2 at calvin.edu>
+Date:   Thu Jul 28 18:51:35 2016 -0400
+
+    Bumping Perl version string for 2.11.0
+    
+    Signed-off-by: Dan Wells <dbw2 at calvin.edu>
+
+1	1	Open-ILS/src/perlmods/lib/OpenILS.pm
+
+commit 0c156fa06433c7b97ac7277a13dbc918dec4bb7e
+Author: Dan Wells <dbw2 at calvin.edu>
+Date:   Wed Sep 21 16:08:05 2016 -0400
+
+    Translation updates - po files
+    
+    Signed-off-by: Dan Wells <dbw2 at calvin.edu>
+
+77	77	build/i18n/po/acq/cs-CZ.po
+1853	0	build/i18n/po/acq/es-ES.po
+1633	0	build/i18n/po/conify/cs-CZ.po
+23	9	build/i18n/po/db.seed/es-ES.po
+5	5	build/i18n/po/fm_IDL.dtd/cs-CZ.po
+5	5	build/i18n/po/tpac/cs-CZ.po
+4	4	build/i18n/po/webstaff/cs-CZ.po
+178	166	build/i18n/po/webstaff/es-ES.po
+ create mode 100644 build/i18n/po/acq/es-ES.po
+ create mode 100644 build/i18n/po/conify/cs-CZ.po
+
+commit c487a8f751911848d118432a45c27c8e7c3c5aa2
+Author: Kathy Lussier <klussier at masslnc.org>
+Date:   Wed Sep 21 12:42:42 2016 -0400
+
+    Docs: 2.11 Release Notes updates
+    
+    Updates to the 2.11, including: adding a note about Ubuntu Xenial support,
+    adding acknowledgements for translators and for some who were missed in the
+    first iteration of Release Notes, slimming down the activity metric release
+    notes entry and moving the original, detail-rich entry to the TechRef directory.
+    
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+4	0	docs/RELEASE_NOTES_NEXT/Administration/ubuntu-xenial-support.adoc
+52	79	docs/RELEASE_NOTES_NEXT/OPAC/popularity-rating.txt
+14	2	docs/RELEASE_NOTES_NEXT/_acknowledgments
+101	0	docs/TechRef/popularity-rating.txt
+ create mode 100644 docs/RELEASE_NOTES_NEXT/Administration/ubuntu-xenial-support.adoc
+ create mode 100644 docs/TechRef/popularity-rating.txt
+
+commit 6bd672af7d6c755c36b65f8efa336002a8a36d5a
+Author: Chris Sharp <csharp at georgialibraries.org>
+Date:   Thu Sep 15 14:28:09 2016 -0400
+
+    LP#1624025 - Add 'is_available' field to config::copy_status
+    
+    The fix to bug 1464709 overlooked a necessary place to define
+    the newly added 'is_available' column to the config.copy_status
+    table.
+    
+    Signed-off-by: Chris Sharp <csharp at georgialibraries.org>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+1	1	Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/CDBI/config.pm
+
+commit 2a7a6e81bea10340638629a2dee24ce4ee3d0c68
+Author: Kathy Lussier <klussier at masslnc.org>
+Date:   Wed Sep 14 12:47:16 2016 -0400
+
+    Docs: 2.11 release note fixes
+    
+    2.11 release note entries edited for clarity, grammar, spelling and style.
+    
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+1	1	docs/RELEASE_NOTES_NEXT/Cataloging/bib_source_in_901s.txt
+10	13	docs/RELEASE_NOTES_NEXT/Cataloging/marc_bib_update.adoc
+1	1	docs/RELEASE_NOTES_NEXT/Circulation/aged-circs-see-light-of-day.adoc
+3	2	docs/RELEASE_NOTES_NEXT/Circulation/copy-status-is-avail.adoc
+2	2	docs/RELEASE_NOTES_NEXT/Circulation/email_cko_receipts.adoc
+10	8	docs/RELEASE_NOTES_NEXT/Circulation/limit_payment_amounts_accepted.txt
+1	1	docs/RELEASE_NOTES_NEXT/OPAC/improved-myopac-holds-screens.adoc
+2	2	docs/RELEASE_NOTES_NEXT/OPAC/remove_advanced_hold_options_for_parts.adoc
+
+commit b6da36c9684017c2b1e4855d5188cf844c02ee85
+Author: Kathy Lussier <klussier at masslnc.org>
+Date:   Wed Sep 14 10:53:30 2016 -0400
+
+    Docs: Adding acknowledgements to the 2.11 release notes
+    
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+24	5	docs/RELEASE_NOTES_NEXT/_acknowledgments
+
+commit 8284edcdd3de5392b4265f3ee2e806dda761cdc1
+Author: Dan Wells <dbw2 at calvin.edu>
+Date:   Fri Sep 9 09:37:31 2016 -0400
+
+    Translation updates - po files
+    
+    Signed-off-by: Dan Wells <dbw2 at calvin.edu>
+
+9	9	build/i18n/po/acq.js/es-ES.po
+1853	0	build/i18n/po/acq/cs-CZ.po
+198	0	build/i18n/po/actor/cs-CZ.po
+54	0	build/i18n/po/booking/cs-CZ.po
+8	4	build/i18n/po/cat.properties/cs-CZ.po
+7	3	build/i18n/po/cat.properties/de-DE.po
+7	3	build/i18n/po/cat.properties/en-CA.po
+7	3	build/i18n/po/cat.properties/en-GB.po
+7	3	build/i18n/po/cat.properties/es-ES.po
+7	3	build/i18n/po/cat.properties/fi-FI.po
+7	3	build/i18n/po/cat.properties/fr-CA.po
+7	3	build/i18n/po/cat.properties/hy-AM.po
+7	3	build/i18n/po/cat.properties/oc-FR.po
+7	3	build/i18n/po/cat.properties/pt-BR.po
+7	3	build/i18n/po/cat.properties/ru-RU.po
+7	3	build/i18n/po/cat.properties/tr-TR.po
+58	0	build/i18n/po/cat/cs-CZ.po
+16	4	build/i18n/po/circ.properties/cs-CZ.po
+16	4	build/i18n/po/circ.properties/de-DE.po
+15	3	build/i18n/po/circ.properties/en-CA.po
+15	3	build/i18n/po/circ.properties/en-GB.po
+15	3	build/i18n/po/circ.properties/es-ES.po
+15	3	build/i18n/po/circ.properties/fi-FI.po
+15	3	build/i18n/po/circ.properties/fr-CA.po
+15	3	build/i18n/po/circ.properties/hy-AM.po
+15	3	build/i18n/po/circ.properties/oc-FR.po
+15	3	build/i18n/po/circ.properties/pt-BR.po
+15	3	build/i18n/po/circ.properties/ru-RU.po
+15	3	build/i18n/po/circ.properties/tr-TR.po
+335	0	build/i18n/po/circ/cs-CZ.po
+12	4	build/i18n/po/common.properties/cs-CZ.po
+11	3	build/i18n/po/common.properties/de-DE.po
+11	3	build/i18n/po/common.properties/en-CA.po
+11	3	build/i18n/po/common.properties/en-GB.po
+11	3	build/i18n/po/common.properties/es-ES.po
+11	3	build/i18n/po/common.properties/fi-FI.po
+11	3	build/i18n/po/common.properties/fr-CA.po
+11	3	build/i18n/po/common.properties/hy-AM.po
+11	3	build/i18n/po/common.properties/oc-FR.po
+11	3	build/i18n/po/common.properties/pt-BR.po
+11	3	build/i18n/po/common.properties/ru-RU.po
+23	10	build/i18n/po/conify.js/cs-CZ.po
+17	7	build/i18n/po/conify.js/de-DE.po
+19	9	build/i18n/po/conify.js/en-CA.po
+19	9	build/i18n/po/conify.js/en-GB.po
+19	9	build/i18n/po/conify.js/es-ES.po
+19	9	build/i18n/po/conify.js/fi-FI.po
+19	9	build/i18n/po/conify.js/fr-CA.po
+19	9	build/i18n/po/conify.js/hy-AM.po
+17	7	build/i18n/po/conify.js/oc-FR.po
+19	9	build/i18n/po/conify.js/pt-BR.po
+19	9	build/i18n/po/conify.js/ru-RU.po
+17	7	build/i18n/po/conify.js/tr-TR.po
+3290	3222	build/i18n/po/db.seed/cs-CZ.po
+3278	3217	build/i18n/po/db.seed/de-DE.po
+3283	3219	build/i18n/po/db.seed/en-CA.po
+3283	3219	build/i18n/po/db.seed/en-GB.po
+3284	3220	build/i18n/po/db.seed/es-ES.po
+3285	3221	build/i18n/po/db.seed/fi-FI.po
+3284	3220	build/i18n/po/db.seed/fr-CA.po
+3285	3221	build/i18n/po/db.seed/hy-AM.po
+3283	3219	build/i18n/po/db.seed/oc-FR.po
+3283	3219	build/i18n/po/db.seed/pt-BR.po
+3283	3219	build/i18n/po/db.seed/ru-RU.po
+3283	3219	build/i18n/po/db.seed/tr-TR.po
+2857	2720	build/i18n/po/fm_IDL.dtd/cs-CZ.po
+2829	2699	build/i18n/po/fm_IDL.dtd/de-DE.po
+2839	2709	build/i18n/po/fm_IDL.dtd/en-CA.po
+2836	2706	build/i18n/po/fm_IDL.dtd/en-GB.po
+2839	2709	build/i18n/po/fm_IDL.dtd/es-ES.po
+2839	2709	build/i18n/po/fm_IDL.dtd/fi-FI.po
+2831	2701	build/i18n/po/fm_IDL.dtd/fr-CA.po
+2839	2709	build/i18n/po/fm_IDL.dtd/hy-AM.po
+2829	2699	build/i18n/po/fm_IDL.dtd/oc-FR.po
+2834	2704	build/i18n/po/fm_IDL.dtd/pt-BR.po
+2834	2704	build/i18n/po/fm_IDL.dtd/ru-RU.po
+2829	2699	build/i18n/po/fm_IDL.dtd/tr-TR.po
+58	42	build/i18n/po/ils_events.xml/cs-CZ.po
+55	39	build/i18n/po/ils_events.xml/de-DE.po
+57	41	build/i18n/po/ils_events.xml/en-CA.po
+57	41	build/i18n/po/ils_events.xml/en-GB.po
+57	41	build/i18n/po/ils_events.xml/es-ES.po
+57	41	build/i18n/po/ils_events.xml/fi-FI.po
+58	42	build/i18n/po/ils_events.xml/fr-CA.po
+57	41	build/i18n/po/ils_events.xml/hy-AM.po
+57	41	build/i18n/po/ils_events.xml/pt-BR.po
+56	40	build/i18n/po/ils_events.xml/ru-RU.po
+385	0	build/i18n/po/kpac/cs-CZ.po
+11	3	build/i18n/po/lang.dtd/ar-AR.po
+16	8	build/i18n/po/lang.dtd/cs-CZ.po
+11	3	build/i18n/po/lang.dtd/de-DE.po
+11	3	build/i18n/po/lang.dtd/en-CA.po
+11	3	build/i18n/po/lang.dtd/en-GB.po
+11	3	build/i18n/po/lang.dtd/es-ES.po
+11	3	build/i18n/po/lang.dtd/fi-FI.po
+11	3	build/i18n/po/lang.dtd/fr-CA.po
+11	3	build/i18n/po/lang.dtd/hy-AM.po
+11	3	build/i18n/po/lang.dtd/oc-FR.po
+11	3	build/i18n/po/lang.dtd/pt-BR.po
+11	3	build/i18n/po/lang.dtd/ru-RU.po
+11	3	build/i18n/po/lang.dtd/tr-TR.po
+4	4	build/i18n/po/offline.properties/cs-CZ.po
+16	4	build/i18n/po/patron.properties/cs-CZ.po
+15	3	build/i18n/po/patron.properties/de-DE.po
+15	3	build/i18n/po/patron.properties/en-CA.po
+15	3	build/i18n/po/patron.properties/en-GB.po
+15	3	build/i18n/po/patron.properties/es-ES.po
+15	3	build/i18n/po/patron.properties/fi-FI.po
+15	3	build/i18n/po/patron.properties/fr-CA.po
+15	3	build/i18n/po/patron.properties/hy-AM.po
+15	3	build/i18n/po/patron.properties/oc-FR.po
+15	3	build/i18n/po/patron.properties/pt-BR.po
+15	3	build/i18n/po/patron.properties/ru-RU.po
+15	3	build/i18n/po/patron.properties/tr-TR.po
+6	6	build/i18n/po/reports.js/cs-CZ.po
+413	0	build/i18n/po/serial/cs-CZ.po
+188	159	build/i18n/po/tpac/ar-AR.po
+196	165	build/i18n/po/tpac/cs-CZ.po
+189	160	build/i18n/po/tpac/de-DE.po
+192	163	build/i18n/po/tpac/en-CA.po
+192	163	build/i18n/po/tpac/en-GB.po
+196	164	build/i18n/po/tpac/es-ES.po
+192	163	build/i18n/po/tpac/fi-FI.po
+244	215	build/i18n/po/tpac/fr-CA.po
+192	163	build/i18n/po/tpac/hy-AM.po
+189	160	build/i18n/po/tpac/oc-FR.po
+192	163	build/i18n/po/tpac/pt-BR.po
+189	160	build/i18n/po/tpac/tr-TR.po
+146	0	build/i18n/po/urlverify/cs-CZ.po
+1409	290	build/i18n/po/webstaff/cs-CZ.po
+1395	289	build/i18n/po/webstaff/es-ES.po
+ create mode 100644 build/i18n/po/acq/cs-CZ.po
+ create mode 100644 build/i18n/po/actor/cs-CZ.po
+ create mode 100644 build/i18n/po/booking/cs-CZ.po
+ create mode 100644 build/i18n/po/cat/cs-CZ.po
+ create mode 100644 build/i18n/po/circ/cs-CZ.po
+ create mode 100644 build/i18n/po/kpac/cs-CZ.po
+ create mode 100644 build/i18n/po/serial/cs-CZ.po
+ create mode 100644 build/i18n/po/urlverify/cs-CZ.po
+
+commit ee711968b69b8e4a6613f630d975965d28162e27
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Mon Mar 7 12:42:51 2016 -0500
+
+    LP#1436987: webstaff - fix patron search form
+    
+    This patch ensures that the patron profile and
+    search OU values are retained when going from a patron
+    search to a single record and back to the patron search.
+    
+    To test the fix for this bug:
+    
+    [1] Search for a patron using the expanded patron search fields,
+        making sure to select values for the profile and search
+        OU dropdowns.
+    [2] Open a record, then click "Patron Search" to return to the
+        search form.
+    [3] Verify that the profile and search library are set and
+        that the same patron records are retrieved.
+    
+    This patch includes elements from a patch originally written
+    by Victoria Lewis <vlewis at catalystitservices.com>
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+6	1	Open-ILS/web/js/ui/default/staff/circ/patron/app.js
+
+commit e1a555e3d1d1c2a079a0fd6294e8d1fafa3f8818
+Author: Dan Scott <dscott at laurentian.ca>
+Date:   Mon Sep 5 21:34:20 2016 -0400
+
+    SIP manual testing formatting cleanup
+    
+    The extra ** in the sample SIP lines was distracting. Also, it wasn't clear
+    which password to use when $password was used twice, so disambiguate it to
+    identify user vs. SIP password.
+    
+    Signed-off-by: Dan Scott <dscott at laurentian.ca>
+
+27	14	docs/admin/sip_server.txt
+
+commit 43bf9d219862d45668cf2229b7b181350cd3ce65
+Author: Chris Sharp <csharp at georgialibraries.org>
+Date:   Wed Aug 31 07:14:49 2016 -0400
+
+    LP1613374: Release notes formatting fix.
+    
+    Signed-off-by: Chris Sharp <csharp at georgialibraries.org>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+9	9	docs/RELEASE_NOTES_NEXT/Circulation/canceled-transit-copy-status.adoc
+
+commit 9b47089fd67daa7041161a9c71a02320797055d6
+Author: Dan Wells <dbw2 at calvin.edu>
+Date:   Mon Aug 29 17:38:10 2016 -0400
+
+    Stamping upgrade script for Spanish locale seed data
+    
+    Signed-off-by: Dan Wells <dbw2 at calvin.edu>
+
+1	1	Open-ILS/src/sql/Pg/002.schema.config.sql
+11	0	Open-ILS/src/sql/Pg/upgrade/1000.data.add-spanish-to-i18n-locale.sql
+0	11	Open-ILS/src/sql/Pg/upgrade/XXXX.data.add-spanish-to-i18n-locale.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/1000.data.add-spanish-to-i18n-locale.sql
+ delete mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.data.add-spanish-to-i18n-locale.sql
+
+commit dddb70dff3d508b673d12b169fb41ca0473c6f9e
+Author: Ben Shum <ben at evergreener.net>
+Date:   Mon Aug 29 15:37:48 2016 -0400
+
+    LP#1618183: Add Spanish to config.i18n_locale
+    
+    Add Spanish to this table so that it is an option for supported translations.
+    
+    Signed-off-by: Ben Shum <ben at evergreener.net>
+    Signed-off-by: Dan Wells <dbw2 at calvin.edu>
+
+3	0	Open-ILS/src/sql/Pg/950.data.seed-values.sql
+11	0	Open-ILS/src/sql/Pg/upgrade/XXXX.data.add-spanish-to-i18n-locale.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.data.add-spanish-to-i18n-locale.sql
+
+commit 6bc0bc2fb3f405ad4609a9be2992374c57bf0328
+Author: Jeff Godin <jgodin at tadl.org>
+Date:   Mon Aug 29 12:58:27 2016 -0400
+
+    LP#1618136 Fix webstaff IDL2js.js test failures
+    
+    Fix webstaff test failures due to an invalid IDL2js.js file by adding
+    newly-required preprocessing to the support script that generates that
+    file when running tests.
+    
+    Signed-off-by: Jeff Godin <jgodin at tadl.org>
+    Signed-off-by: Ben Shum <ben at evergreener.net>
+    Signed-off-by: Dan Wells <dbw2 at calvin.edu>
+
+15	1	Open-ILS/web/js/ui/default/staff/test/data/idl2js.pl
+
+commit e07ac6c32679a87ecf2dcc5c4c11a01347871313
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Fri Aug 26 17:00:20 2016 -0400
+
+    Stamp 0999 upgrade; remove merge conflict markers
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Dan Wells <dbw2 at calvin.edu>
+
+1	1	Open-ILS/src/sql/Pg/002.schema.config.sql
+0	3	Open-ILS/src/sql/Pg/950.data.seed-values.sql
+14	0	Open-ILS/src/sql/Pg/upgrade/0999.schema.staging-user-setting.sql
+0	12	Open-ILS/src/sql/Pg/upgrade/YYYY.schema.staging-user-setting.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/0999.schema.staging-user-setting.sql
+ delete mode 100644 Open-ILS/src/sql/Pg/upgrade/YYYY.schema.staging-user-setting.sql
+
+commit ec802af48798087d8fda770fff67d9e2ebcffc40
+Author: Dan Wells <dbw2 at calvin.edu>
+Date:   Thu Aug 25 17:55:36 2016 -0400
+
+    Translation updates - newpot
+    
+    Signed-off-by: Dan Wells <dbw2 at calvin.edu>
+
+1835	0	build/i18n/po/acq/acq.pot
+192	0	build/i18n/po/actor/actor.pot
+52	0	build/i18n/po/booking/booking.pot
+5	1	build/i18n/po/cat.properties/cat.properties.pot
+56	0	build/i18n/po/cat/cat.pot
+13	1	build/i18n/po/circ.properties/circ.properties.pot
+333	0	build/i18n/po/circ/circ.pot
+9	1	build/i18n/po/common.properties/common.properties.pot
+16	5	build/i18n/po/conify.js/conify.js.pot
+1592	0	build/i18n/po/conify/conify.pot
+3293	3219	build/i18n/po/db.seed/db.seed.pot
+2827	2697	build/i18n/po/fm_IDL.dtd/fm_IDL.dtd.pot
+51	40	build/i18n/po/ils_events.xml/ils_events.xml.pot
+365	0	build/i18n/po/kpac/kpac.pot
+9	1	build/i18n/po/lang.dtd/lang.dtd.pot
+13	1	build/i18n/po/patron.properties/patron.properties.pot
+406	0	build/i18n/po/serial/serial.pot
+183	156	build/i18n/po/tpac/tpac.pot
+132	0	build/i18n/po/urlverify/urlverify.pot
+620	0	build/i18n/po/vandelay/vandelay.pot
+1380	284	build/i18n/po/webstaff/webstaff.pot
+ create mode 100644 build/i18n/po/acq/acq.pot
+ create mode 100644 build/i18n/po/actor/actor.pot
+ create mode 100644 build/i18n/po/booking/booking.pot
+ create mode 100644 build/i18n/po/cat/cat.pot
+ create mode 100644 build/i18n/po/circ/circ.pot
+ create mode 100644 build/i18n/po/conify/conify.pot
+ create mode 100644 build/i18n/po/kpac/kpac.pot
+ create mode 100644 build/i18n/po/serial/serial.pot
+ create mode 100644 build/i18n/po/urlverify/urlverify.pot
+ create mode 100644 build/i18n/po/vandelay/vandelay.pot
+
+commit b54e57616d0659975e250faa1fa069d16a6bd598
+Author: Ben Shum <ben at evergreener.net>
+Date:   Wed Aug 24 16:33:18 2016 -0400
+
+    LP#1095280: i18n - Add templates to update_pofiles
+    
+    Signed-off-by: Ben Shum <ben at evergreener.net>
+    Signed-off-by: Dan Wells <dbw2 at calvin.edu>
+
+10	0	build/i18n/scripts/update_pofiles
+
+commit df174c20829437634a7a4377420af88e1e057757
+Author: Ben Shum <ben at evergreener.net>
+Date:   Wed Aug 24 09:32:47 2016 -0400
+
+    LP#1095280: i18n - Add new templates for translation to Makefile
+    
+    Add various source and output files for new templates directories for i18n
+    along with make targets and other copy commands.
+    
+    Signed-off-by: Ben Shum <ben at evergreener.net>
+    Signed-off-by: Dan Wells <dbw2 at calvin.edu>
+
+93	1	build/i18n/Makefile
+
+commit a66cccae9cd9a76356437bce06ffd155e05276ab
+Author: Ben Shum <ben at evergreener.net>
+Date:   Wed Aug 24 09:25:27 2016 -0400
+
+    LP#1095280: i18n - Move existing templates closer together in Makefile
+    
+    In the interest of making it easier to edit, move all the lines
+    for generating i18n translation files for Open-ILS/src/templates/*
+    closer together.
+    
+    Signed-off-by: Ben Shum <ben at evergreener.net>
+    Signed-off-by: Dan Wells <dbw2 at calvin.edu>
+
+2	2	build/i18n/Makefile
+
+commit 18c769a8441e9728007c59ae88c6965f3655cc56
+Author: Chris Sharp <csharp at georgialibraries.org>
+Date:   Thu Aug 25 07:15:11 2016 -0400
+
+    LP#1613374 - Canceled Transit status Release Notes
+    
+    Signed-off-by: Chris Sharp <csharp at georgialibraries.org>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+26	0	docs/RELEASE_NOTES_NEXT/Circulation/canceled-transit-copy-status.adoc
+ create mode 100644 docs/RELEASE_NOTES_NEXT/Circulation/canceled-transit-copy-status.adoc
+
+commit b2af4872895e860abd8b48cc5cb2cf06c68bb852
+Author: Kathy Lussier <klussier at masslnc.org>
+Date:   Wed Aug 24 19:43:44 2016 -0400
+
+    Docs: Some missing release notes for 2.11
+    
+    We were missing release notes for some of the new fields added to client
+    interfaces as well as one of the new SIP features.
+    
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+17	0	docs/RELEASE_NOTES_NEXT/Client/added-fields-for-client-interfaces.adoc
+7	0	docs/RELEASE_NOTES_NEXT/SIP/SIP_renewal_blocks.adoc
+ create mode 100644 docs/RELEASE_NOTES_NEXT/Client/added-fields-for-client-interfaces.adoc
+ create mode 100644 docs/RELEASE_NOTES_NEXT/SIP/SIP_renewal_blocks.adoc
+
+commit 15ad6d45c3066c3e88c6d6e0c28b2f445a3132b0
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Wed Aug 24 18:32:02 2016 -0400
+
+    Stamping upgrade scripts for aged circs display branch
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+1	1	Open-ILS/src/sql/Pg/002.schema.config.sql
+141	0	Open-ILS/src/sql/Pg/upgrade/0998.schema.aged-circ-chains.sql
+0	141	Open-ILS/src/sql/Pg/upgrade/XXXX.schema.aged-circ-chains.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/0998.schema.aged-circ-chains.sql
+ delete mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.schema.aged-circ-chains.sql
+
+commit 3f2d3a0335fe935e4ec3a310b018b76cdd9f7e3f
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Wed Aug 24 17:01:01 2016 -0400
+
+    LP#1497335 Show Last Few Circs patron retrieve options
+    
+    In the Show Last Few Circulations window (XUL), disable the "Retrieve
+    Last Patron" button when the most recent circulation is aged.  Disable
+    the "Retrieve All These Patrons" button when all circulations displayed
+    are aged.
+    
+    Fixes a sort bug in open-ils.circ.copy_checkout_history.retrieve.
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+1	1	Open-ILS/src/perlmods/lib/OpenILS/Application/Circ.pm
+14	0	Open-ILS/xul/staff_client/server/circ/circ_summary.xul
+
+commit 57697077ec3a4431c16d043d1d9270c3e18c1fba
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Wed Aug 3 15:18:59 2016 -0400
+
+    LP#1497335 Aged circ display release notes
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+21	0	docs/RELEASE_NOTES_NEXT/Circulation/aged-circs-see-light-of-day.adoc
+ create mode 100644 docs/RELEASE_NOTES_NEXT/Circulation/aged-circs-see-light-of-day.adoc
+
+commit b9e5c623f2cde86b1b87d07ba9e4a637f1b3ac5e
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Wed Aug 3 14:45:39 2016 -0400
+
+    LP#1497335 Item details shows aged circs (XUL edition)
+    
+    * Item Status -> Circulation History now displays aged circulations as
+      appropriate, showing "<Aged Circulation>" in lieu the patron's name.
+    
+    * Item Status (and others) -> Show Last Few Circulations, ditto above.
+      Also, the 'Add Billing' button is disabled when displayed with an aged
+      circulation row.
+    
+    * Copy -> Retrieve Last Patron action now includes aged circulations
+      when looking for the most recent circulation.  When the most recent
+      circ is an aged circ, the UI reports "Item XXX circulation is an aged
+      circulation and has no linked user".  Among other things, this means
+      the 3rd from last circ will not be confused as the 2nd to last circ
+      when the 2nd to last is aged.
+    
+    * Mark Item Damaged will warn if the circ in question is aged.  This is
+      just a sanity check and should never happen in reality, since the UI
+      only supports this option on checked out items (i.e. active circs).
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+14	0	Open-ILS/xul/staff_client/server/cat/util.js
+34	19	Open-ILS/xul/staff_client/server/circ/alternate_copy_summary.js
+10	1	Open-ILS/xul/staff_client/server/circ/checkin.js
+17	9	Open-ILS/xul/staff_client/server/circ/circ_brief.xul
+10	1	Open-ILS/xul/staff_client/server/circ/renew.js
+4	0	Open-ILS/xul/staff_client/server/circ/util.js
+2	0	Open-ILS/xul/staff_client/server/locale/en-US/circ.properties
+
+commit 11d7f2206e4583db64626f9761c00c7746242cbe
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Wed Aug 3 13:52:33 2016 -0400
+
+    LP#1497335 Browser client item details aged circs
+    
+    1. Use all_circulation (combcirc) class (now accessible via pcrud) to
+    render the item Circ History List tab.  In cases where a combcirc object
+    has no 'usr' value, the interface displays <Aged Circulation> where
+    the patron's name would normally be and disables the 'Add Billing'
+    button.
+    
+    2. Handle null 'usr' values in the item status Recent Circ History tab.
+    When a renewal chain summary has no 'usr' value, the interface displays
+    <Aged Circulation> where the patron's name would normally be.
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+5	2	Open-ILS/src/templates/staff/cat/item/t_circ_list_pane.tt2
+8	5	Open-ILS/src/templates/staff/cat/item/t_circs_pane.tt2
+11	9	Open-ILS/web/js/ui/default/staff/cat/item/app.js
+
+commit 52bf3fe8e791c43448c49fa9818f5790625c724c
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Wed Aug 3 13:34:29 2016 -0400
+
+    LP#1497335 Aged/All circulation API access
+    
+    Various SQL, IDL, and API changes for accessing aged circulations,
+    primarily via all_circulation objects, for imporoved staff client
+    integration.
+    
+    *. Support open-ils.pcrud access to the action.all_circulation DB view /
+       'combcirc' class.
+    
+    *. Add missing parent_circ, checkin_scan_time, checkin_workstation to
+       combcirc class.
+    
+    *. Add 'usr' field to combcirc.  The action.all_circulation VIEW will
+       return NULL as the 'usr' column value when returning data for an
+       aged_circulation.
+    
+    *. Add virtual 'active_circ' and 'aged_circ' fields to combcirc for
+       fleshing the related action.circulation or action.aged_circulation
+       object.
+    
+    * Adds SQL functions for action.all_circ_chain and
+      action.summarize_all_circ_chain, which pull data from
+      aged_circulation.
+    
+    *. API calls
+    open-ils.circ.[prev_]renewal_chain.retrieve_by_circ[.summary] now return
+    data for active and aged circulations by using action.all_circ_chain and
+    action.summarize_all_circ_chain.  When using these APIs, a null value
+    in the 'usr' column is the indication that a given circulation or circ
+    chain summary represents an aged circulation.
+    
+    * API open-ils.circ.copy_details.retrieve will now optionally return
+      aged circ data within the copy circ history.
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+17	1	Open-ILS/examples/fm_IDL.xml
+1	1	Open-ILS/src/perlmods/lib/OpenILS/Application/AppUtils.pm
+75	71	Open-ILS/src/perlmods/lib/OpenILS/Application/Circ.pm
+92	2	Open-ILS/src/sql/Pg/090.schema.action.sql
+141	0	Open-ILS/src/sql/Pg/upgrade/XXXX.schema.aged-circ-chains.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.schema.aged-circ-chains.sql
+
+commit 8decad6183c9c3786377bd59eae8c55472ab35c4
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Wed Aug 24 18:07:13 2016 -0400
+
+    Stamping upgrade script for Canceled Transit status branch
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+1	1	Open-ILS/src/sql/Pg/002.schema.config.sql
+7	0	Open-ILS/src/sql/Pg/upgrade/0997.data.canceled-transit-item-status.sql
+0	7	Open-ILS/src/sql/Pg/upgrade/XXXX.data.canceled-transit-item-status.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/0997.data.canceled-transit-item-status.sql
+ delete mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.data.canceled-transit-item-status.sql
+
+commit a5f6a489ea0436b085831fcf033ca176c61204f9
+Author: Chris Sharp <csharp at georgialibraries.org>
+Date:   Wed Aug 24 14:23:09 2016 -0400
+
+    LP#1613374 - Check stored copy status before clobbering it.
+    
+    Some transit.copy_statuses would result in some other behavior
+    upon checkin, so we check all that would go into 'Reshelving'
+    status, otherwise, restore the stored status.
+    
+    Signed-off-by: Chris Sharp <csharp at georgialibraries.org>
+    Signed-off-by: Michele Morgan <mmorgan at noblenet.org>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+15	2	Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Transit.pm
+
+commit 58cd99ec3a4f83fd2d68b2e732069587c70b1459
+Author: Chris Sharp <csharp at georgialibraries.org>
+Date:   Tue Aug 23 09:32:59 2016 -0400
+
+    LP#1613374 - Add 'Canceled Transit' to non-'BAD' copy statuses.
+    
+    During checkin, Circulate.pm checks the copy status and if it
+    isn't listed as an okay status, the event COPY_BAD_STATUS is
+    returned, which requires an override.  This change makes copies
+    in 'Canceled Transit' status check in without an alert.
+    
+    Signed-off-by: Chris Sharp <csharp at georgialibraries.org>
+    Signed-off-by: Michele Morgan <mmorgan at noblenet.org>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+1	0	Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Circulate.pm
+
+commit 49ea249d5f7d315aa7bf1980edb4c7ea961f7833
+Author: Chris Sharp <csharp at georgialibraries.org>
+Date:   Tue Aug 16 07:11:24 2016 -0400
+
+    LP#1613374 - Add 'Canceled Transit' to "magical statuses"
+    
+    Signed-off-by: Chris Sharp <csharp at georgialibraries.org>
+    Signed-off-by: Michele Morgan <mmorgan at noblenet.org>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+2	1	Open-ILS/xul/staff_client/chrome/content/main/constants.js
+
+commit fcc46ccaa72260f8dc970df156985c983f1e19f4
+Author: Chris Sharp <csharp at georgialibraries.org>
+Date:   Mon Aug 22 08:58:24 2016 -0400
+
+    LP#1613374 - Make 'Canceled Transit' status holdable and OPAC-visible.
+    
+    Signed-off-by: Chris Sharp <csharp at georgialibraries.org>
+    Signed-off-by: Michele Morgan <mmorgan at noblenet.org>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+1	1	Open-ILS/src/sql/Pg/950.data.seed-values.sql
+1	1	Open-ILS/src/sql/Pg/upgrade/XXXX.data.canceled-transit-item-status.sql
+
+commit 6c27a324d4665b7c64d37784ac339037bdb31423
+Author: Chris Sharp <csharp at georgialibraries.org>
+Date:   Wed Aug 24 14:12:04 2016 -0400
+
+    LP#1613374 - Set item status to 'Canceled Transit' when transit is canceled.
+    
+    I opened a separate bug report on this issue (bug 1613374) before realizing
+    bug 1306666 was reported.  This commit creates a new 'Canceled Transit' status
+    that signals to staff what happened to an item when a transit is aborted/canceled.
+    
+    Signed-off-by: Chris Sharp <csharp at georgialibraries.org>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    
+    Conflicts:
+    	Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Transit.pm
+    
+    Signed-off-by: Michele Morgan <mmorgan at noblenet.org>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+1	6	Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Transit.pm
+1	1	Open-ILS/src/perlmods/lib/OpenILS/Const.pm
+1	0	Open-ILS/src/sql/Pg/950.data.seed-values.sql
+7	0	Open-ILS/src/sql/Pg/upgrade/XXXX.data.canceled-transit-item-status.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.data.canceled-transit-item-status.sql
+
+commit c820aa492739c544e09a7b646a09b8507ae3993b
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Wed Aug 24 18:01:33 2016 -0400
+
+    Stamping upgrade for email receipts
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+1	1	Open-ILS/src/sql/Pg/002.schema.config.sql
+105	0	Open-ILS/src/sql/Pg/upgrade/0996.data.email-checkout-receipt.sql
+0	103	Open-ILS/src/sql/Pg/upgrade/XXXX.data.email-checkout-receipt.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/0996.data.email-checkout-receipt.sql
+ delete mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.data.email-checkout-receipt.sql
+
+commit 33746b32ffab1c7d5e530df8acc9336c2b15859f
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Mon Aug 22 18:08:37 2016 -0400
+
+    LP#1356477: release notes for email checkout receipts
+    
+    A portion of the text was written by Angela Kilsdonk.
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+20	0	docs/RELEASE_NOTES_NEXT/Circulation/email_cko_receipts.adoc
+ create mode 100644 docs/RELEASE_NOTES_NEXT/Circulation/email_cko_receipts.adoc
+
+commit 92f1bdb26d0027b52b3b3db84ff3d52104d6b1fe
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Thu Aug 4 10:38:48 2016 -0400
+
+    LP#1356477: update selfcheck interface
+    
+    This patch replaces the Logout and Logout with Receipt buttons in
+    the selfcheck interface with a single Logout button and a set of radio
+    buttons (whose labels are clickable) that allow the user to specify
+    whether they want an email receipt, a print receipt, or no receipt upon
+    logging out.
+    
+    If the user has no email address, the option to select email receipts
+    will not be presented to them.
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+
+7	2	Open-ILS/src/templates/circ/selfcheck/summary.tt2
+70	7	Open-ILS/web/js/ui/default/circ/selfcheck/selfcheck.js
+
+commit 4d512bfac53dfdc94696f1731bbae6e50542bccc
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Thu Aug 4 12:07:14 2016 -0400
+
+    LP#1356477: move email receipt checkbox on patron editor
+    
+    This patch updates the patron editor so that the checkbox
+    for setting whether the user wishes to get email checkout
+    receipts by default is moved next to the email address
+    input.
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+13	2	Open-ILS/src/templates/staff/circ/patron/t_edit.tt2
+
+commit f8422d9abd41f9b10b1b1cc4cc824e0eaef5b84e
+Author: Mike Rylander <miker at esilibrary.com>
+Date:   Wed Aug 3 16:51:54 2016 -0400
+
+    LP#1356477: add quick receipt button
+    
+    This patch adds a new button to the webstaff checkout page
+    called Quick Receipt. If the button itself is pushed, a
+    receipt containing the current checkouts is either printed
+    or emailed, depending on the user's preference. If the
+    drop-down portion of the button is used, staff members can
+    override the user's default preference to print or email
+    the receipt.
+    
+    The Quick Receipt button is enabled only if at least one
+    checkout has been made during the current session.
+    
+    Note that email receipts is an option only when the patron
+    has an email address supplied.
+    
+    An icon next to the Quick Receipt button will be either a
+    printer or an envelope depending on the user's preferred
+    receipt setting.
+    
+    This patch also modifies the "Done" button. If pressed, the session
+    is ended and the receipt is generated according to the user's
+    preferences, but the drop-down portion can be used to end
+    the session while letting the staff member choose how the
+    receipt is emitted.
+    
+    If a receipt is emailed, a toast is displayed saying so.
+    
+    Signed-off-by: Mike Rylander <miker at esilibrary.com>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+
+2	0	Open-ILS/src/perlmods/lib/OpenILS/Application/Actor.pm
+25	4	Open-ILS/src/templates/staff/circ/patron/t_checkout.tt2
+2	0	Open-ILS/src/templates/staff/circ/share/circ_strings.tt2
+8	1	Open-ILS/web/js/ui/default/staff/circ/patron/app.js
+83	10	Open-ILS/web/js/ui/default/staff/circ/patron/checkout.js
+1	0	Open-ILS/web/js/ui/default/staff/services/user.js
+2	0	Open-ILS/web/js/ui/default/staff/test/karma.conf.js
+
+commit 9d1d36d3d56dcbe46d462ce8e431911df7b7166b
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Wed Aug 3 15:38:49 2016 -0400
+
+    LP#1356477: teach OPAC patron registration form about staged user (opt-in) settings
+    
+    This patch causes a checkbox to be added for each user setting
+    that controls opt-in for active Action/Trigger event definitions. In
+    the specific context of email checkout receipts, this means that
+    a patron who is self-registering can elect to get email checkout
+    receipts by default.
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+52	2	Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Register.pm
+15	0	Open-ILS/src/templates/opac/register.tt2
+
+commit aa47fc5fdc1a5a9f3889fc3f67588739ba9e1700
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Wed Aug 3 15:36:18 2016 -0400
+
+    LP#1356477: teach webstaff patron editor about staged user settings
+    
+    This patch also fixes a bug that preferred the webstaff patron editor
+    from successfully removing a staged patron upon completing the
+    registration of the patron.
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+5	1	Open-ILS/web/js/ui/default/staff/circ/patron/regctl.js
+
+commit f3d2d070e8ca3a8b12a820489ee6caff8dc1c7e9
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Wed Aug 3 15:37:39 2016 -0400
+
+    LP#1356477: create new staging table for user settings
+    
+    This patch creates a new table called staging.setting_stage
+    that allows for storing user settings when a patron uses
+    (for example) the self-registration page.
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+11	0	Open-ILS/examples/fm_IDL.xml
+17	3	Open-ILS/src/perlmods/lib/OpenILS/Application/Actor/Stage.pm
+9	0	Open-ILS/src/sql/Pg/015.schema.staging.sql
+12	0	Open-ILS/src/sql/Pg/upgrade/YYYY.schema.staging-user-setting.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/YYYY.schema.staging-user-setting.sql
+
+commit 7e3a8e2c61f4ee24317d11d478930851671b1c1d
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Mon Aug 8 16:50:08 2016 -0400
+
+    LP#1356477: add ability to unconditionally send email
+    
+    This patch defines and uses an
+    open-ils.trigger.event.autocreate.ignore_opt_in method that does what
+    it says on the tin; the caller is reponsible for not abusing this.
+    
+    This supports a use case in the webstaff checkout interface where staff
+    can choose to have the receipt be emailed, provided that the patron
+    record has an email address defined, even if the user setting to
+    email receipts by default is not set. (It is assumed that the staff
+    member would have gotten permission from the patron on the spot.)
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+1	1	Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/CircNotify.pm
+9	1	Open-ILS/src/perlmods/lib/OpenILS/Application/Trigger.pm
+
+commit 53fc56475feedb6433a28f5c49096de7a46d87a9
+Author: Mike Rylander <miker at esilibrary.com>
+Date:   Wed Aug 3 12:45:10 2016 -0400
+
+    LP#1356477: business logic for email checking receipts
+    
+    This patch adds two methods, open-ils.circ.checkout.batch_notify
+    and open-ils.circ.checkout.batch_notify.session, that when passed
+    a set of circulation IDs, creates A/T events for the
+    checkout notification hooks. In the specific case of the email
+    checkout receipts feature, the seed data contains a stock
+    event that would send out emails, but it is conceivable
+    that other forms of notification could be done by defining
+    A/T events appropriately.
+    
+    Signed-off-by: Mike Rylander <miker at esilibrary.com>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+
+3	0	Open-ILS/src/extras/ils_events.xml
+1	0	Open-ILS/src/perlmods/lib/OpenILS/Application/Circ.pm
+145	0	Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/CircNotify.pm
+ create mode 100644 Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/CircNotify.pm
+
+commit b09ad8fd9ccf37b374ddf9840cf20fc63f45a624
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Wed Aug 3 12:18:19 2016 -0400
+
+    LP#1356477: seed data for email checkout receipts
+    
+    This patch adds seed data for email checkout receipts,
+    including:
+    
+    - The action/trigger hooks circ.checkout.batch_notify
+      and circ.checkout.batch_notify.session.
+    - The default event definition
+    - The circ.send_email_checkout_receipts (Email checkout receipts by
+      default?) user setting.
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    
+    Conflicts:
+    	Open-ILS/src/sql/Pg/950.data.seed-values.sql
+
+102	0	Open-ILS/src/sql/Pg/950.data.seed-values.sql
+103	0	Open-ILS/src/sql/Pg/upgrade/XXXX.data.email-checkout-receipt.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.data.email-checkout-receipt.sql
+
+commit be0ed357743e8b36f13fe38a9127dc8bd0f4172e
+Author: Ben Shum <ben at evergreener.net>
+Date:   Tue Jul 5 13:03:57 2016 -0400
+
+    LP#1603708: Remove support for Ubuntu 12.04 Precise
+    
+    With support for Ubuntu 16.04 Xenial in place, remove the oldest LTS, which is
+    Ubuntu 12.04 Precise.
+    
+    Signed-off-by: Ben Shum <ben at evergreener.net>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+1	11	Open-ILS/src/extras/Makefile.install
+1	1	Open-ILS/src/extras/install/Makefile.common
+0	148	Open-ILS/src/extras/install/Makefile.ubuntu-precise
+7	14	docs/installation/server_installation.txt
+1	2	docs/installation/server_upgrade.txt
+ delete mode 100644 Open-ILS/src/extras/install/Makefile.ubuntu-precise
+
+commit 7bdfe9f5a2e8771c481bf8e15ad7da350b654533
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Wed Aug 24 14:55:29 2016 -0400
+
+    Stamping upgrade script for badge seed data
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+1	1	Open-ILS/src/sql/Pg/002.schema.config.sql
+8	0	Open-ILS/src/sql/Pg/upgrade/0995.data.popularity-badge-seed-data.sql
+0	8	Open-ILS/src/sql/Pg/upgrade/XXXX.data.popularity-badge-seed-data.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/0995.data.popularity-badge-seed-data.sql
+ delete mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.data.popularity-badge-seed-data.sql
+
+commit 6d176feb4e4bbfc67e9c4179cd7e446fd148fd4d
+Author: Kathy Lussier <klussier at masslnc.org>
+Date:   Tue Aug 23 16:01:35 2016 -0400
+
+    LP#1614237: Popularity badge seed data
+    
+    Adding popularity badge seed data for a badge based on Holds Requested over the
+    past 5 years.
+    
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+4	0	Open-ILS/src/sql/Pg/950.data.seed-values.sql
+8	0	Open-ILS/src/sql/Pg/upgrade/XXXX.data.popularity-badge-seed-data.sql
+3	0	docs/RELEASE_NOTES_NEXT/OPAC/popularity-rating.txt
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.data.popularity-badge-seed-data.sql
+
+commit fd725a7eb939fedb31f6eb13066f45b35baabb9c
+Author: Kathy Lussier <klussier at masslnc.org>
+Date:   Wed Aug 17 18:29:09 2016 -0400
+
+    LP#1614290: Add badge_score_generator to example crontab
+    
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+3	0	Open-ILS/examples/crontab.example
+
+commit 9fc06033c0805b3f1832e74c0953d243d1a9465d
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Wed Aug 24 14:51:32 2016 -0400
+
+    Moving function creation to later in the schema def, where its deps exist.
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+0	20	Open-ILS/src/sql/Pg/002.schema.config.sql
+20	0	Open-ILS/src/sql/Pg/005.schema.actors.sql
+
+commit 12159383d46bf76db3e710a689ad8b5140436007
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Wed Aug 24 12:56:28 2016 -0400
+
+    Stamping upgrade script for authority edit changes and propagation improvement
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+1	1	Open-ILS/src/sql/Pg/002.schema.config.sql
+144	0	Open-ILS/src/sql/Pg/upgrade/0994.schema.authority-propage-edit-date.sql
+0	142	Open-ILS/src/sql/Pg/upgrade/XXXX.schema.authority-propage-edit-date.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/0994.schema.authority-propage-edit-date.sql
+ delete mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.schema.authority-propage-edit-date.sql
+
+commit 84bed711249098679ae25f83eeb588871022ed19
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Wed Aug 24 11:38:49 2016 -0400
+
+    LP#1588948: Only attempt a bib update if the heading changes
+    
+    This should significantly reduce the churn on bibs and the time to save
+    an authority where the heading that would propagate to bibs has not changed.
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+2	2	Open-ILS/src/sql/Pg/999.functions.global.sql
+82	2	Open-ILS/src/sql/Pg/upgrade/XXXX.schema.authority-propage-edit-date.sql
+
+commit d61a652d97339961fd4a65bf27c77f4bc1314ffb
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Mon Jun 13 13:57:30 2016 -0400
+
+    LP#1588948 Auth propagate bib meta on change only
+    
+    Only update bib record editor and edit_date if an authority record
+    change propagation resulted in a modified bib record.
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+9	2	Open-ILS/src/sql/Pg/999.functions.global.sql
+20	1	Open-ILS/src/sql/Pg/t/authority-update-bib-propagation.pg
+9	2	Open-ILS/src/sql/Pg/upgrade/XXXX.schema.authority-propage-edit-date.sql
+
+commit 8e959742b7751403e942694d1123a3f38cbbb239
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Mon Jun 6 10:19:30 2016 -0400
+
+    LP#1588948 Release notes (auth prop. bib edit[or|_date])
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+16	0	docs/RELEASE_NOTES_NEXT/Cataloging/auth_prop_bib_update.adoc
+ create mode 100644 docs/RELEASE_NOTES_NEXT/Cataloging/auth_prop_bib_update.adoc
+
+commit 7605ed8a65a2151e42a3e8c20cd8640f81fab962
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Mon Jun 6 11:14:47 2016 -0400
+
+    LP#1588948 Authority propagation PGTAP test
+    
+    Adds a new general purpose authority->bib propagation pgtap test,
+    covering basic propagation and editor / edit_date propagation.
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+105	0	Open-ILS/src/sql/Pg/t/authority-update-bib-propagation.pg
+ create mode 100644 Open-ILS/src/sql/Pg/t/authority-update-bib-propagation.pg
+
+commit 28d9ccf8df4cd3e9989d91e3053c26aca6a48e76
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Fri Jun 3 15:16:58 2016 -0400
+
+    LP#1588948 Propagate authority->bib edit[or|_date]
+    
+    Adds a new global flag 'ingest.disable_authority_auto_update_bib_meta',
+    which is disabled by default.
+    
+    When disabled, the 'editor' and 'edit_date' columns on bib records
+    updated via authority field propagation are updated to the value of the
+    editor on the authority record and NOW(), respectively.
+    
+    When enabled, editor and edit_date are not modified.
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+12	0	Open-ILS/src/sql/Pg/950.data.seed-values.sql
+32	6	Open-ILS/src/sql/Pg/999.functions.global.sql
+55	0	Open-ILS/src/sql/Pg/upgrade/XXXX.schema.authority-propage-edit-date.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.schema.authority-propage-edit-date.sql
+
+commit 95ea3d5223963777f8d76d11ab0dd7e4eeeeceff
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Wed Aug 24 12:38:58 2016 -0400
+
+    Stamping upgrade script for transient usr_activity
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+1	1	Open-ILS/src/sql/Pg/002.schema.config.sql
+35	0	Open-ILS/src/sql/Pg/upgrade/0993.schema.usr_activity_transient.sql
+0	35	Open-ILS/src/sql/Pg/upgrade/XXXX.schema.usr_activity_transient.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/0993.schema.usr_activity_transient.sql
+ delete mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.schema.usr_activity_transient.sql
+
+commit cfad22b42c2b3bbe04697a31644c925eff8e6a1a
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Fri Apr 15 17:07:02 2016 -0400
+
+    LP#1570909 User activity purge release notes
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Chris Sharp <csharp at georgialibraries.org>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+29	0	docs/RELEASE_NOTES_NEXT/Administration/user-activity-purge.adoc
+ create mode 100644 docs/RELEASE_NOTES_NEXT/Administration/user-activity-purge.adoc
+
+commit fc5b3ec873215363be00ca4ff51ccd4a42403280
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Fri Apr 15 16:54:48 2016 -0400
+
+    LP#1570909 User activity purge pgtap test
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Chris Sharp <csharp at georgialibraries.org>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+68	0	Open-ILS/src/sql/Pg/live_t/purge-user-activity.pg
+ create mode 100644 Open-ILS/src/sql/Pg/live_t/purge-user-activity.pg
+
+commit ea8b2ae34dee14d15f4958ced3dadbdc4ea8ebbe
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Fri Apr 15 16:26:57 2016 -0400
+
+    LP#1570909 User activity purge function
+    
+    Utility function for removing all activity entries by activity type,
+    except for the most recent entry per user.  This is primarily useful
+    when cleaning up rows prior to setting the transient flag on an
+    activity type to true.  It allows for immediate cleanup of data (e.g.
+    for patron privacy) and lets admins control when the data is deleted,
+    which could be useful for huge activity tables.
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Chris Sharp <csharp at georgialibraries.org>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+20	0	Open-ILS/src/sql/Pg/002.schema.config.sql
+25	0	Open-ILS/src/sql/Pg/upgrade/XXXX.schema.usr_activity_transient.sql
+
+commit b1f4d599b87a375ab43b7439dcc2ba1208c7c5be
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Fri Apr 15 11:23:33 2016 -0400
+
+    LP#1570909 User activity transient default
+    
+    Only retain the most recent user activity entry (per activity type) by
+    default.
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Chris Sharp <csharp at georgialibraries.org>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+1	1	Open-ILS/src/sql/Pg/002.schema.config.sql
+10	0	Open-ILS/src/sql/Pg/upgrade/XXXX.schema.usr_activity_transient.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.schema.usr_activity_transient.sql
+
+commit 40e20683c5d2aa78a128ed019be163349545a4d7
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Wed Aug 24 12:17:11 2016 -0400
+
+    Stamping upgrade of is_available branch
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+1	1	Open-ILS/src/sql/Pg/002.schema.config.sql
+231	0	Open-ILS/src/sql/Pg/upgrade/0992.schema.copy_status_co_allowed.sql
+0	229	Open-ILS/src/sql/Pg/upgrade/XXXX.schema.copy_status_co_allowed.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/0992.schema.copy_status_co_allowed.sql
+ delete mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.schema.copy_status_co_allowed.sql
+
+commit d60ea525afa3e4318f474f481e9c8b911ff39e99
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Wed Aug 24 10:26:28 2016 -0400
+
+    LP#1464709 Copy status is_available release notes
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+17	0	docs/RELEASE_NOTES_NEXT/Circulation/copy-status-is-avail.adoc
+ create mode 100644 docs/RELEASE_NOTES_NEXT/Circulation/copy-status-is-avail.adoc
+
+commit f0aa5d587467a42e61669f1d3e417489e57813d3
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Tue Aug 23 16:59:33 2016 -0400
+
+    LP#1464709: Disentangle on-holds-shelf from is_available
+    
+    Avoid treating On-Holds-Shelf items as is_available so they do not
+    appear in the catalog as #available.
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+1	1	Open-ILS/src/sql/Pg/100.circ_matrix.sql
+1	1	Open-ILS/src/sql/Pg/950.data.seed-values.sql
+2	2	Open-ILS/src/sql/Pg/upgrade/XXXX.schema.copy_status_co_allowed.sql
+
+commit fed65df3c669e1337f187d533e9033a697d6b263
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Thu Aug 18 09:52:20 2016 -0400
+
+    LP#1464709: teach QP about is_available statuses
+    
+    We look them up, cache them, and use them for the #available modifier.
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+11	2	Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Publisher/metabib.pm
+
+commit 2c40b84273316525de7ef65ca6ceca9f939c7052
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Thu Aug 27 17:24:38 2015 -0400
+
+    LP#1464709 Rename checkout_ok to is_available
+    
+    And update pgptap to check for only 2 is_available statuses (not
+    on-holds shelf).
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+1	1	Open-ILS/examples/fm_IDL.xml
+1	1	Open-ILS/src/sql/Pg/002.schema.config.sql
+1	1	Open-ILS/src/sql/Pg/100.circ_matrix.sql
+3	3	Open-ILS/src/sql/Pg/950.data.seed-values.sql
+4	4	Open-ILS/src/sql/Pg/live_t/lp1464709-copy-stat-co-ok.live.pg
+3	3	Open-ILS/src/sql/Pg/t/lp1464709-copy-stat-co-ok.pg
+3	3	Open-ILS/src/sql/Pg/upgrade/XXXX.schema.copy_status_co_allowed.sql
+3	3	Open-ILS/web/conify/global/config/copy_status.html
+1	1	Open-ILS/web/js/dojo/openils/conify/nls/conify.js
+
+commit 3c37c14663fbf9eea99e2bcd82773a229d02bf1c
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Mon Jun 15 18:09:01 2015 -0400
+
+    LP#1464709 Non-standard copy status pgtap tests
+    
+    Includes unit test plus a set of live tests.
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+48	0	Open-ILS/src/sql/Pg/live_t/lp1464709-copy-stat-co-ok.live.pg
+29	0	Open-ILS/src/sql/Pg/t/lp1464709-copy-stat-co-ok.pg
+ create mode 100644 Open-ILS/src/sql/Pg/live_t/lp1464709-copy-stat-co-ok.live.pg
+ create mode 100644 Open-ILS/src/sql/Pg/t/lp1464709-copy-stat-co-ok.pg
+
+commit 31480730b2458e8915660f4fb78893418ccdf9cb
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Wed Jun 3 19:30:40 2015 -0400
+
+    LP#1464709 Seamless non-standard copy status checkout
+    
+    Add a new boolean configuration option to copy statuses which allow such
+    copies to be checked out without requiring an alert or override.
+    
+    New column is config.copy_status.checkout_ok.  Any status with this
+    boolean enabled will be treated the same as Available, Reshelving, and
+    Holds Shelf status copies in that the status will be considered
+    checkout-able.
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+2	1	Open-ILS/examples/fm_IDL.xml
+2	1	Open-ILS/src/sql/Pg/002.schema.config.sql
+2	1	Open-ILS/src/sql/Pg/100.circ_matrix.sql
+3	3	Open-ILS/src/sql/Pg/950.data.seed-values.sql
+229	0	Open-ILS/src/sql/Pg/upgrade/XXXX.schema.copy_status_co_allowed.sql
+12	0	Open-ILS/web/conify/global/config/copy_status.html
+1	0	Open-ILS/web/js/dojo/openils/conify/nls/conify.js
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.schema.copy_status_co_allowed.sql
+
+commit 51759b283ca19b15a252faa830c2e4b4a3199695
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Wed Aug 24 11:58:56 2016 -0400
+
+    Stamping upgrade script for ranked-volumes update
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+1	1	Open-ILS/src/sql/Pg/002.schema.config.sql
+98	0	Open-ILS/src/sql/Pg/upgrade/0991.function.unapi.ranked_volumes.sql
+0	98	Open-ILS/src/sql/Pg/upgrade/XXXX.function.unapi.ranked_volumes.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/0991.function.unapi.ranked_volumes.sql
+ delete mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.function.unapi.ranked_volumes.sql
+
+commit db9a0bb41e4bd569fbbdc7e4a57778da98f69604
+Author: Dan Wells <dbw2 at calvin.edu>
+Date:   Tue May 10 15:41:54 2016 -0400
+
+    LP#1315552 Don't use circ_lib name in ranked_volumes
+    
+    ranked_volumes() is supposed to return only volume info, but the name
+    returned was from copy.circ_lib, not acn.owning_lib, so it could result
+    in duplicate rows if circ_lib's varied across a single acn.
+    
+    Let's just use the owning_lib name instead.  Note: the circ_lib join
+    is left undisturbed to keep the current sorting behavior
+    (necessary?).
+    
+    Signed-off-by: Dan Wells <dbw2 at calvin.edu>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+3	2	Open-ILS/src/sql/Pg/990.schema.unapi.sql
+98	0	Open-ILS/src/sql/Pg/upgrade/XXXX.function.unapi.ranked_volumes.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.function.unapi.ranked_volumes.sql
+
+commit f5867b209304ecaf25ce94bf538299d9d15cc34e
+Author: Jason Boyer <jboyer at library.in.gov>
+Date:   Fri May 6 14:08:48 2016 -0400
+
+    LP1259196: Use Location as Workstation on Login
+    
+    When using a SIPServer with LP1579144 applied, use the
+    Location (CP) field of the Login (93) message as a
+    workstation name. This allows you to determine which
+    selfcheck performed which circulation.
+    
+    Signed-off-by: Jason Boyer <jboyer at library.in.gov>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+16	8	Open-ILS/src/perlmods/lib/OpenILS/SIP.pm
+8	0	docs/RELEASE_NOTES_NEXT/SIP/SIP_Workstation_Name.adoc
+ create mode 100644 docs/RELEASE_NOTES_NEXT/SIP/SIP_Workstation_Name.adoc
+
+commit 58fc8f0c8383c60299186debb54730f8883394ac
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Wed Aug 24 10:49:41 2016 -0400
+
+    Correct upgrade script
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+1	1	Open-ILS/src/sql/Pg/upgrade/0990.data.copy-count-badge.sql
+
+commit 36f331390345e05e264e96a0d70d598e1f2bc263
+Author: Kathy Lussier <klussier at masslnc.org>
+Date:   Thu Aug 18 21:10:43 2016 -0400
+
+    LP#1612274: Release notes for improved holds interfaces
+    
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+14	0	docs/RELEASE_NOTES_NEXT/OPAC/improved-myopac-holds-screens.adoc
+ create mode 100644 docs/RELEASE_NOTES_NEXT/OPAC/improved-myopac-holds-screens.adoc
+
+commit 504076521062d6b52842e137e79877b1abf8f2a5
+Author: Kathy Lussier <klussier at masslnc.org>
+Date:   Thu Aug 11 13:24:00 2016 -0400
+
+    LP#1612274: Add distinct classes for hold statuses
+    
+    With more data in the My Account hold status field, libraries may want to
+    style some statuses or dates differently so that they pop out to the user. Each
+    hold status and date now has its own class for more flexible styling.
+    
+    The available status also now has a green, bold font and the suspended status
+    has a red, bold font.
+    
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+10	0	Open-ILS/src/templates/opac/css/style.css.tt2
+51	39	Open-ILS/src/templates/opac/parts/hold_status.tt2
+
+commit b39eaf4328563a8965a2fabfdad52b898795d116
+Author: Kathy Lussier <klussier at masslnc.org>
+Date:   Wed Aug 10 23:41:51 2016 -0400
+
+    LP#1612274: Improve display of holds status in My Account
+    
+    Collapse the data contained in the Activate, Active, and Date Fulfilled columns
+    into the status filed on the My Account holds and holds history interfaces.
+    This change cleans up the display and removes extraneous information that the
+    user doesn't need to see.
+    
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+4	0	Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Holds.pm
+2	7	Open-ILS/src/templates/opac/css/style.css.tt2
+5	27	Open-ILS/src/templates/opac/myopac/hold_history.tt2
+0	10	Open-ILS/src/templates/opac/myopac/holds.tt2
+26	5	Open-ILS/src/templates/opac/parts/hold_status.tt2
+
+commit 2888b409b32cfe541247cc2e39ba23d0e19170c6
+Author: Kathy Lussier <klussier at masslnc.org>
+Date:   Mon Aug 22 14:02:58 2016 -0400
+
+    LP#1613730: Stamping upgrade script for copy count badge
+    
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+1	1	Open-ILS/src/sql/Pg/002.schema.config.sql
+36	0	Open-ILS/src/sql/Pg/upgrade/0990.data.copy-count-badge.sql
+0	34	Open-ILS/src/sql/Pg/upgrade/XXXX.data.copy-count-badge.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/0990.data.copy-count-badge.sql
+ delete mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.data.copy-count-badge.sql
+
+commit da240e76b8a16cf7e079ab09b1fd8571a4d68818
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Thu Aug 18 12:58:25 2016 -0400
+
+    LP#1613730: Add a "Copy Count" rating function for badges
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+31	1	Open-ILS/src/sql/Pg/220.schema.rating.sql
+34	0	Open-ILS/src/sql/Pg/upgrade/XXXX.data.copy-count-badge.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.data.copy-count-badge.sql
+
+commit c597e8f644afc216f7ed86e01765da12a79f6780
+Author: Chris Sharp <csharp at georgialibraries.org>
+Date:   Sat Aug 20 14:52:15 2016 -0400
+
+    LP#1586221 - Remove "no spaces" message from login form.
+    
+    Since the fix to bug 1086064 removes any spaces entered into
+    the login form, it is now inaccurate to require the user to type
+    their cards with no spaces (since most library cards have spaces
+    in the number on the physical card).
+    
+    Signed-off-by: Chris Sharp <csharp at georgialibraries.org>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+1	1	Open-ILS/src/templates/opac/parts/login/form.tt2
+
+commit 079d0ed5f08da74201b79f53275f559aba8a19f2
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Mon Aug 15 14:07:21 2016 -0400
+
+    LP#1613381: combine two tables in patron notification preferences
+    
+    This patch consolidates the two tables in the public catalog
+    notification preferences page into one table, as patrons have
+    no reason to care about the distinction between A/T opt-in
+    settings and the hold, phone, and SMS user settings.
+    
+    This patch also adds a <label> element for opt-in setting
+    names.
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+12	23	Open-ILS/src/templates/opac/myopac/prefs_notify.tt2
+7	0	docs/RELEASE_NOTES_NEXT/OPAC/combine_notice_prefs_tables.adoc
+ create mode 100644 docs/RELEASE_NOTES_NEXT/OPAC/combine_notice_prefs_tables.adoc
+
+commit 4e4525c85e795a42231ffbb0e8e10c027d50a682
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Wed Aug 17 10:53:19 2016 -0400
+
+    LP#1476049: disable serve-cgi-bin Apache config on Jessie and Xenial
+    
+    This patch ensures that the stock Apache configuration
+    "serve-cgi-bin" is disabled when installing on Debian Jessie
+    and Ubuntu Xenial, as otherwise the default cgi-bin location
+    can override what Evergreen specifies for offline.pl.
+    
+    To test:
+    
+    [1] Run the Makefile.install step on Jessie or Xenial; verify
+        that there is no /etc/apache2/conf-enabled/serve-cgi-bin.conf
+        symlink.
+    [2] Proceed with the rest of the Evergreen installation; verify
+        that the Apache error log doesn't contain a warning like this:
+    
+        "The Alias directive in /etc/apache2/sites-enabled/eg.conf ...
+         will probably never match because it overlaps an earlier
+         ScriptAlias."
+    
+    [3] For extra credit, verify that one can access offline circulation
+        sessions.
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+3	0	Open-ILS/src/extras/install/Makefile.debian-jessie
+3	0	Open-ILS/src/extras/install/Makefile.ubuntu-xenial
+
+commit 3d78e822af3a6337430825dcf328889ea254c6b6
+Author: Michele Morgan <mmorgan at noblenet.org>
+Date:   Tue Aug 16 14:47:43 2016 -0400
+
+    LP#1583729 Item status screen column options do not include age protection
+    
+    Adds the age_protect field to several missing copy interfaces:
+    
+    XUL client:
+    
+    - Item status list view column picker
+    - Item status alternate view
+    - Holdings Maintenance column picker
+    
+    Web client:
+    
+    - Item status alternate view
+    - Holdings view column picker
+    
+    Also addresses an issue with displaying the circ modifier in some item
+    interfaces.
+    
+    Signed-off-by: Michele Morgan <mmorgan at noblenet.org>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+1	0	Open-ILS/src/templates/staff/cat/catalog/t_holdings.tt2
+2	0	Open-ILS/src/templates/staff/cat/item/t_summary_pane.tt2
+1	1	Open-ILS/web/js/ui/default/staff/cat/item/app.js
+1	1	Open-ILS/web/js/ui/default/staff/cat/services/holdings.js
+1	0	Open-ILS/web/opac/locale/en-US/lang.dtd
+1	0	Open-ILS/xul/staff_client/server/cat/copy_browser.js
+6	1	Open-ILS/xul/staff_client/server/circ/alternate_copy_summary.js
+2	1	Open-ILS/xul/staff_client/server/circ/alternate_copy_summary.xul
+15	0	Open-ILS/xul/staff_client/server/circ/util.js
+1	0	Open-ILS/xul/staff_client/server/locale/en-US/circ.properties
+1	0	Open-ILS/xul/staff_client/server/locale/en-US/common.properties
+
+commit 059411ba21bb1dffb2d2db351ce1eddfc540fb8f
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Fri Aug 5 12:39:54 2016 -0400
+
+    LP#1527694 Webstaff egHatch supports 'LoginSession' storage
+    
+    Adds support for a class of cached value (AKA "LoginSession" items)
+    that are cleared when either the user logs out or the browser is closed.
+    Values are stored as cookies.
+    
+    Authentication tokens and "retrieve last patron" data are now stored as
+    "LoginSession" items.
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+6	6	Open-ILS/web/js/ui/default/staff/circ/patron/app.js
+17	7	Open-ILS/web/js/ui/default/staff/services/auth.js
+85	3	Open-ILS/web/js/ui/default/staff/services/hatch.js
+
+commit 350500afb00a0a2b244ef93d5cabb9549ffa59cd
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Thu Aug 4 12:34:56 2016 -0400
+
+    LP#1527694 Webstaff clear last patron
+    
+    Store most recent patron ID via cookie instead of localStorage so the
+    value can expire when then browser is closed.
+    
+    Adds angular-cookies (ngCookies) dependency.
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    
+    Conflicts:
+    	Open-ILS/web/js/ui/default/staff/bower.json
+
+1	0	Open-ILS/src/templates/staff/base_js.tt2
+2	0	Open-ILS/web/js/ui/default/staff/Gruntfile.js
+2	1	Open-ILS/web/js/ui/default/staff/bower.json
+6	6	Open-ILS/web/js/ui/default/staff/circ/patron/app.js
+1	1	Open-ILS/web/js/ui/default/staff/services/core.js
+1	0	Open-ILS/web/js/ui/default/staff/test/karma.conf.js
+
+commit f6eeb168a73ac86506890997ae6f426d8ddaedbe
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Thu Aug 4 17:56:32 2016 -0400
+
+    LP#1522635 Webstaff lost (etc.) checkout completes
+    
+    Resolves an issue in the browser client where checkout of LOST
+    (and other non status='checked out' copies) failed to show the
+    open-circ-exists dialog.  In short, when searching for an existing
+    open circulation, look for any open circulation linked to the copy,
+    regardless of the status of the copy.
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+6	12	Open-ILS/web/js/ui/default/staff/circ/services/circ.js
+
+commit 997a30a6973b9161c7336a086534c41810665f50
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Thu Aug 4 15:22:22 2016 -0400
+
+    LP#1464350 Webstaff home page catalog search
+    
+    Search the catalog directly from the home/splash page in the browser
+    client.
+    
+    A side effect of this commit is that it's now possible to jump directly
+    to a set of search results in the embedded catalog by going to:
+    
+    /eg/staff/cat/catalog/results?<query-params>
+    
+    E.g.
+    
+    /eg/staff/cat/catalog/results?query=scores&qtype=subject
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+13	0	Open-ILS/src/templates/staff/t_splash.tt2
+12	4	Open-ILS/web/js/ui/default/staff/app.js
+21	0	Open-ILS/web/js/ui/default/staff/cat/catalog/app.js
+
+commit d78e8a4f5e3a9fa501573e7f26bf69de566632ad
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Wed Aug 10 12:10:58 2016 -0400
+
+    start adding form validation to receipt template editor
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+
+5	2	Open-ILS/src/templates/staff/css/style.css.tt2
+5	3	Open-ILS/src/templates/staff/reporter/t_edit_template.tt2
+
+commit b1f1f64b932bf113c7e6ddf80ee66b892dc6fdfd
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Mon Aug 8 17:05:10 2016 -0400
+
+    Ignore null fleshed objects in autofleshing grid columns
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+2	0	Open-ILS/web/js/ui/default/staff/services/grid.js
+
+commit 804a907f4b21132c2b5c7865eed955df2a5e3814
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Mon Aug 8 15:09:43 2016 -0400
+
+    Repair output popup, and add Reports to the splash page
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+6	0	Open-ILS/src/templates/staff/t_splash.tt2
+1	1	Open-ILS/web/reports/oils_rpt_folder_window.js
+
+commit 59af472f0726b7ffdc89c66dab685fd3e686c9f7
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Mon Aug 8 14:15:09 2016 -0400
+
+    Report Templates!
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+22	14	Open-ILS/examples/fm_IDL.xml
+5	0	Open-ILS/src/perlmods/lib/OpenILS/WWW/IDL2js.pm
+0	0	Open-ILS/src/templates/staff/css/reporter.css
+21	0	Open-ILS/src/templates/staff/reporter/index.tt2
+180	0	Open-ILS/src/templates/staff/reporter/share/report_strings.tt2
+233	0	Open-ILS/src/templates/staff/reporter/t_edit_template.tt2
+1	0	Open-ILS/src/templates/staff/reporter/t_legacy.tt2
+1	1	Open-ILS/src/templates/staff/share/t_confirm_dialog.tt2
+23	0	Open-ILS/src/templates/staff/share/t_select_dialog.tt2
+1	1	Open-ILS/web/js/ui/default/staff/bower.json
+440	0	Open-ILS/web/js/ui/default/staff/reporter/services/template.js
+600	0	Open-ILS/web/js/ui/default/staff/reporter/template/app.js
+80	2	Open-ILS/web/js/ui/default/staff/services/idl.js
+72	9	Open-ILS/web/js/ui/default/staff/services/ui.js
+1	1	Open-ILS/xsl/fm_IDL2js.xsl
+ create mode 100644 Open-ILS/src/templates/staff/css/reporter.css
+ create mode 100644 Open-ILS/src/templates/staff/reporter/index.tt2
+ create mode 100644 Open-ILS/src/templates/staff/reporter/share/report_strings.tt2
+ create mode 100644 Open-ILS/src/templates/staff/reporter/t_edit_template.tt2
+ create mode 100644 Open-ILS/src/templates/staff/reporter/t_legacy.tt2
+ create mode 100644 Open-ILS/src/templates/staff/share/t_select_dialog.tt2
+ create mode 100644 Open-ILS/web/js/ui/default/staff/reporter/services/template.js
+ create mode 100644 Open-ILS/web/js/ui/default/staff/reporter/template/app.js
+
+commit 541921ab1de0a45002a501a2bea545c47f2c5252
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Mon Aug 8 14:10:32 2016 -0400
+
+    Let the legacy interface do the right thing when embedded in the web client
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+22	5	Open-ILS/web/reports/oils_rpt_folder_window.js
+2	1	Open-ILS/web/reports/oils_rpt_param_editor.js
+3	0	Open-ILS/web/reports/oils_rpt_utils.js
+
+commit 461eef4e0bd4caec45adafdce2ec9c8095a24256
+Author: Jason Etheridge <jason at esilibrary.com>
+Date:   Mon Jul 11 15:57:48 2016 -0400
+
+    toward ou type dropdown
+
+12	0	Open-ILS/src/templates/staff/admin/actor/org_unit/t_main_tab.tt2
+
+commit d72697057908bbbecc961cc9a0eae421ab688c7d
+Author: Jason Etheridge <jason at esilibrary.com>
+Date:   Mon Jul 11 14:52:53 2016 -0400
+
+    child node creation
+    
+    Signed-off-by: Jason Etheridge <jason at esilibrary.com>
+
+8	0	Open-ILS/src/templates/staff/admin/actor/org_unit/t_main_tab.tt2
+14	4	Open-ILS/web/js/ui/default/staff/admin/actor/org_unit/app.js
+
+commit 60c2eb3b9137c7b07c1bdbb7c1cbd1ab598d0b5e
+Author: Jason Etheridge <jason at esilibrary.com>
+Date:   Mon Jul 11 11:59:06 2016 -0400
+
+    change to delete to remove, since JS uses delete
+    
+    Signed-off-by: Jason Etheridge <jason at esilibrary.com>
+
+1	1	Open-ILS/src/templates/staff/admin/actor/org_unit/t_main_tab.tt2
+1	1	Open-ILS/web/js/ui/default/staff/admin/actor/org_unit/app.js
+
+commit a2d1ab854f916606d9af3ce991c9601ff8c9897f
+Author: Jason Etheridge <jason at esilibrary.com>
+Date:   Mon Jul 11 11:25:00 2016 -0400
+
+    UI tweak and org deletion
+    
+    Signed-off-by: Jason Etheridge <jason at esilibrary.com>
+
+2	0	Open-ILS/src/templates/staff/admin/actor/org_unit/index.tt2
+23	3	Open-ILS/src/templates/staff/admin/actor/org_unit/t_main_tab.tt2
+16	2	Open-ILS/web/js/ui/default/staff/admin/actor/org_unit/app.js
+
+commit 4e911171a113e5d7562ed998229f108a9120badc
+Author: Jason Etheridge <jason at esilibrary.com>
+Date:   Mon Jul 11 10:20:43 2016 -0400
+
+    toast, comments, logging
+    
+    Signed-off-by: Jason Etheridge <jason at esilibrary.com>
+
+6	0	Open-ILS/src/templates/staff/admin/actor/org_unit/index.tt2
+1	1	Open-ILS/src/templates/staff/admin/actor/org_unit/t_main_tab.tt2
+14	11	Open-ILS/web/js/ui/default/staff/admin/actor/org_unit/app.js
+
+commit 872c8c2f0d98016fc1639dcc0d49300ae03e1660
+Author: Jason Etheridge <jason at esilibrary.com>
+Date:   Fri Jun 10 14:22:45 2016 -0400
+
+    programmatic selection of tree node still not working
+    
+    Signed-off-by: Jason Etheridge <jason at esilibrary.com>
+
+13	2	Open-ILS/web/js/ui/default/staff/admin/actor/org_unit/app.js
+
+commit aca3dd932957a062eb5f6385bb89d3dfae08d011
+Author: Jason Etheridge <jason at esilibrary.com>
+Date:   Fri Jun 10 14:17:13 2016 -0400
+
+    refactor
+    
+    Signed-off-by: Jason Etheridge <jason at esilibrary.com>
+
+30	25	Open-ILS/web/js/ui/default/staff/admin/actor/org_unit/app.js
+
+commit d914aab30ba0ccf75a081aa8dfcf157e8385c1e1
+Author: Jason Etheridge <jason at esilibrary.com>
+Date:   Fri Jun 10 14:16:22 2016 -0400
+
+    getting changes to stick within a session
+    
+    Signed-off-by: Jason Etheridge <jason at esilibrary.com>
+
+15	3	Open-ILS/web/js/ui/default/staff/admin/actor/org_unit/app.js
+
+commit 297a0b142326320f54f83b1f3d9d7f7c9a0b495a
+Author: Jason Etheridge <jason at esilibrary.com>
+Date:   Fri Jun 10 12:37:01 2016 -0400
+
+    better stub out the other tabs, and try to select CONS by default
+    
+    Signed-off-by: Jason Etheridge <jason at esilibrary.com>
+
+1	0	Open-ILS/src/templates/staff/admin/actor/org_unit/t_addresses_tab.tt2
+1	0	Open-ILS/src/templates/staff/admin/actor/org_unit/t_hours_tab.tt2
+2	2	Open-ILS/src/templates/staff/admin/actor/org_unit/t_index.tt2
+1	0	Open-ILS/web/js/ui/default/staff/admin/actor/org_unit/app.js
+
+commit efa65bd5c7640758585070e66819f06e82522b78
+Author: Jason Etheridge <jason at esilibrary.com>
+Date:   Wed May 11 15:17:47 2016 -0400
+
+    Toward an Angular replacement for Org Units Conify
+    
+    Signed-off-by: Jason Etheridge <jason at esilibrary.com>
+
+15	0	Open-ILS/src/templates/staff/admin/actor/org_unit/index.tt2
+0	0	Open-ILS/src/templates/staff/admin/actor/org_unit/t_addresses_tab.tt2
+0	0	Open-ILS/src/templates/staff/admin/actor/org_unit/t_hours_tab.tt2
+51	0	Open-ILS/src/templates/staff/admin/actor/org_unit/t_index.tt2
+46	0	Open-ILS/src/templates/staff/admin/actor/org_unit/t_main_tab.tt2
+7	0	Open-ILS/src/templates/staff/css/admin.css.tt2
+87	0	Open-ILS/web/js/ui/default/staff/admin/actor/org_unit/app.js
+ create mode 100644 Open-ILS/src/templates/staff/admin/actor/org_unit/index.tt2
+ create mode 100644 Open-ILS/src/templates/staff/admin/actor/org_unit/t_addresses_tab.tt2
+ create mode 100644 Open-ILS/src/templates/staff/admin/actor/org_unit/t_hours_tab.tt2
+ create mode 100644 Open-ILS/src/templates/staff/admin/actor/org_unit/t_index.tt2
+ create mode 100644 Open-ILS/src/templates/staff/admin/actor/org_unit/t_main_tab.tt2
+ create mode 100644 Open-ILS/web/js/ui/default/staff/admin/actor/org_unit/app.js
+
+commit 4e93a8bd0d240a10ec545c927ca92864efba95e9
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Fri Jun 10 18:21:31 2016 -0400
+
+    webstaff: add admin interface for MARC tag tables
+    
+    This is a simple interface using eg-edit-fm-record to start;
+    more work will be required to better deal with the semantics
+    for overriding tag definitions at various levels of the OU
+    hierarchy.
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+
+53	0	Open-ILS/src/templates/staff/admin/server/config/marc_field.tt2
+2	1	Open-ILS/src/templates/staff/admin/server/t_splash.tt2
+88	0	Open-ILS/web/js/ui/default/staff/admin/server/config/marc_field.js
+ create mode 100644 Open-ILS/src/templates/staff/admin/server/config/marc_field.tt2
+ create mode 100644 Open-ILS/web/js/ui/default/staff/admin/server/config/marc_field.js
+
+commit 3bf01639f186522674cd6d1f347b713f0d5766e8
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Fri Jun 10 18:19:17 2016 -0400
+
+    webstaff: a couple strings for a generic record deletion dialog
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+
+2	0	Open-ILS/src/templates/staff/base_js.tt2
+
+commit eabda938c992ae2269ec793eefd2ec0980f100ed
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Fri Jun 10 18:14:20 2016 -0400
+
+    webstaff: new directive: egEditFmRecord
+    
+    This implements a generic IDL record editor widget:
+    
+    <eg-edit-fm-record
+      idl-class            = "xyz"
+      mode                 = "update"
+      record-id            = "223"
+      hidden-fields        = "bar,baz"
+      readonly-fields      = "quux"
+      required-fields      = "foo"
+      is-required-override = "bundle_of_custom_functions"
+      on-save              = "on_save_handler"
+      on-cancel            = "on_cancel"
+    ></eg-edit-fm-record>
+    
+    The mode can be either "create" or "update"; if it is "create",
+    then it is not necessary or desired to pass a record-id.
+    
+    Currently eg-edit-fm-record expects to be invoked from
+    inside a uibModal.
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+
+62	0	Open-ILS/src/templates/staff/share/t_fm_record_editor.tt2
+187	0	Open-ILS/web/js/ui/default/staff/services/fm_record_editor.js
+ create mode 100644 Open-ILS/src/templates/staff/share/t_fm_record_editor.tt2
+ create mode 100644 Open-ILS/web/js/ui/default/staff/services/fm_record_editor.js
+
+commit d271b796cebc71e916e85249c15c2484444a390b
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Fri Jun 10 12:15:18 2016 -0400
+
+    IDL improvements for classes releated to MARC tag tables
+    
+    In the course of building the admin interface for the
+    MARC tag tables, some deficiencies in the IDL were
+    run across. This patch fixes them.
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+
+15	15	Open-ILS/examples/fm_IDL.xml
+
+commit 2a8148341428dc0fc1c4947a148e5d996bc6db6b
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Fri May 13 11:51:42 2016 -0400
+
+    webstaff: fix typo in field name
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+
+1	1	Open-ILS/examples/fm_IDL.xml
+
+commit bface48e0fff0512d46dee412bc46e8454521c5a
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Wed May 25 13:14:44 2016 -0400
+
+    LP#1585369: Angular broke my copy editor!
+    
+    It seems Angular 1.5 is either less flexible or less forgiving in its
+    ng-repeat implementation, and does not like an orderBy filter on object
+    iterators.  Removing that, and the track by clause, allows the holdings
+    editor to render properly.
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+1	1	Open-ILS/src/templates/staff/cat/volcopy/t_edit.tt2
+1	1	Open-ILS/web/js/ui/default/staff/cat/volcopy/app.js
+
+commit 28f7159c31279217d01258eb85d662fad2785680
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Tue May 17 22:09:34 2016 -0400
+
+    webstaff: circ audio alerts
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+19	1	Open-ILS/web/js/ui/default/staff/circ/services/circ.js
+4	0	Open-ILS/web/js/ui/default/staff/circ/services/holds.js
+1	0	Open-ILS/web/js/ui/default/staff/circ/services/transits.js
+
+commit 676fdff4e78bcf33eb4f8c488d8995fcf9f75f65
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Mon May 16 23:16:34 2016 -0400
+
+    webstaff: audio disable and testing options
+    
+    For workstation admin UI.
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+24	0	Open-ILS/src/templates/staff/admin/workstation/t_splash.tt2
+17	0	Open-ILS/web/js/ui/default/staff/admin/workstation/app.js
+
+commit d02c84fce8a3e99ce7be5357277b5958d8b04183
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Sun May 15 12:51:24 2016 -0400
+
+    webstaff: egAudio HTML5 audio service
+    
+    egCore.audio.play('audio.event.dot.path');
+    
+    Service to look up audio URL's by key name.  Supports fall-thru behavior
+    where 'foo.bar.baz' will fall-thru to 'foo.bar' and 'foo' depending on
+    whether an audio file is avaialable.
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+1	0	Open-ILS/src/templates/staff/base_js.tt2
+-	-	Open-ILS/web/audio/notifications/error.wav
+-	-	Open-ILS/web/audio/notifications/info.wav
+-	-	Open-ILS/web/audio/notifications/success.wav
+-	-	Open-ILS/web/audio/notifications/warning.wav
+1	0	Open-ILS/web/js/ui/default/staff/Gruntfile.js
+78	0	Open-ILS/web/js/ui/default/staff/services/audio.js
+5	2	Open-ILS/web/js/ui/default/staff/services/coresvc.js
+2	2	Open-ILS/web/js/ui/default/staff/test/karma.conf.js
+ create mode 100644 Open-ILS/web/audio/notifications/error.wav
+ create mode 100644 Open-ILS/web/audio/notifications/info.wav
+ create mode 100644 Open-ILS/web/audio/notifications/success.wav
+ create mode 100644 Open-ILS/web/audio/notifications/warning.wav
+ create mode 100644 Open-ILS/web/js/ui/default/staff/services/audio.js
+
+commit eb53b50cf844ba7bfe3bf5f069cd6a9d80be868e
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Thu May 12 12:27:11 2016 -0400
+
+    LP#1581126: webstaff: make egDateInput respect format.date OUS
+    
+    This patch makes the egDateInput directive fetch the
+    date format from the format.date library setting. The
+    directive also now accepts a dateFormat attribute for cases
+    where there is a reason to override the library setting.
+    
+    If no format is set via library setting or in how the
+    directive is invoked, the format defaults to "mediumDate",
+    e.g., "May 2, 1999".
+    
+    To test:
+    
+    [1] Open the webstaff patron registration form. Verify that
+        date widgets display the date in the format that
+        corresponds to the value of the format.date library setting
+        for the current work station, or (if the library setting
+        is not set, "Month day, year".
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+
+1	1	Open-ILS/src/templates/staff/share/t_datetime.tt2
+12	3	Open-ILS/web/js/ui/default/staff/services/ui.js
+
+commit cea022c407e4193dcf3fed6b9ca81edfe04c3038
+Author: Jason Etheridge <jason at esilibrary.com>
+Date:   Thu May 12 11:51:09 2016 -0400
+
+    Add images for angular-tree-control to bower
+    
+    Signed-off-by: Jason Etheridge <jason at esilibrary.com>
+
+21	0	Open-ILS/web/js/ui/default/staff/Gruntfile.js
+
+commit f20039da9caa3e43bf626b65b667516e4383b0d5
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Wed May 11 16:31:33 2016 -0400
+
+    webstaff: tweak legacy OU editor
+    
+    This adds a CSS hack so that the right-hand pane of
+    the legacy OU editor is displayed when embedded in
+    the web staff client.
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+
+7	0	Open-ILS/web/conify/global/actor/org_unit.html
+
+commit cce69273995f6f6668e5f5a0c52cafd4ed20f54d
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Wed May 11 16:30:34 2016 -0400
+
+    webstaff: tweak permission group editor
+    
+    This adds a couple hackish formating tweaks so that
+    the permission group editor works when embedded
+    in the web staff client.
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+
+9	1	Open-ILS/web/conify/global/permission/grp_tree.html
+
+commit 7292174f182bba027362946c0a4a47d3ba2534da
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Wed May 11 13:17:55 2016 -0400
+
+    webstaff: add server administration page
+    
+    This patch adds a landing page for Server Administration and
+    code to embed all of the admin pages available under Serer
+    Administration in the XUL staff client.
+    
+    TODO:
+    
+    * fix the permission groups editor so that it works
+      when embedded in the web staff client
+    * refactor admin/local/app.js and admin/server/app.js to
+      unify some of the copy and pasting
+    * replace the embedded legacy OU editor with a new
+      angular one
+    * fixes some CSS issues that make text hard to read in
+      a few places
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+
+15	0	Open-ILS/src/templates/staff/admin/server/index.tt2
+78	0	Open-ILS/src/templates/staff/admin/server/t_splash.tt2
+6	0	Open-ILS/src/templates/staff/navbar.tt2
+80	0	Open-ILS/web/js/ui/default/staff/admin/server/app.js
+ create mode 100644 Open-ILS/src/templates/staff/admin/server/index.tt2
+ create mode 100644 Open-ILS/src/templates/staff/admin/server/t_splash.tt2
+ create mode 100644 Open-ILS/web/js/ui/default/staff/admin/server/app.js
+
+commit 84df55949e502b16c724fdfdcc8dcafa59dedd28
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Wed May 4 15:04:23 2016 -0400
+
+    webstaff: work log: various improvements
+    
+    * Don't use $location.path() to generate a URL for when opening
+      a new window, as that can cause the parent window to reset
+      itself.
+    * Fix the refresh button
+    * Add support for paging through worklog entries
+    * Don't prematurely resolve the promise that is
+      feeding rows to the grid
+    * Ensure that entries are displayed in timestamp order
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+
+54	50	Open-ILS/web/js/ui/default/staff/admin/workstation/log.js
+
+commit 51fe14771d2f117f0f980047f53a64772f2c2ba1
+Author: Jason Etheridge <jason at esilibrary.com>
+Date:   Fri Dec 4 11:06:56 2015 -0500
+
+    webstaff: egWorkLog service and Work Log UI
+    
+    under Administration -> Local Administration
+    
+    The original XUL feature starts here: 29d1b357eef061bb3698e4ce0506eb93b63421be
+    
+    Make sure egCore from the calling interface is pulling in these org unit
+    settings:
+    
+    ui.admin.work_log.max_entries
+    ui.admin.patron_log.max_entries
+    
+    Signed-off-by: Jason Etheridge <jason at esilibrary.com>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+
+11	7	Open-ILS/src/templates/opac/parts/place_hold_result.tt2
+17	0	Open-ILS/src/templates/staff/admin/workstation/log.tt2
+59	0	Open-ILS/src/templates/staff/admin/workstation/t_log.tt2
+13	0	Open-ILS/src/templates/staff/base_js.tt2
+1	0	Open-ILS/src/templates/staff/css/style.css.tt2
+162	0	Open-ILS/web/js/ui/default/staff/admin/workstation/log.js
+20	2	Open-ILS/web/js/ui/default/staff/circ/patron/bills.js
+10	4	Open-ILS/web/js/ui/default/staff/circ/patron/holds.js
+23	5	Open-ILS/web/js/ui/default/staff/circ/patron/regctl.js
+23	7	Open-ILS/web/js/ui/default/staff/circ/services/circ.js
+1	0	Open-ILS/web/js/ui/default/staff/services/eframe.js
+116	0	Open-ILS/web/js/ui/default/staff/services/ui.js
+ create mode 100644 Open-ILS/src/templates/staff/admin/workstation/log.tt2
+ create mode 100644 Open-ILS/src/templates/staff/admin/workstation/t_log.tt2
+ create mode 100644 Open-ILS/web/js/ui/default/staff/admin/workstation/log.js
+
+commit 4e1a8f8245d649e8574b0357f5e79f92414bba3b
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Thu May 5 16:35:25 2016 -0400
+
+    webstaff: transit list: improve styling of form
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+
+18	7	Open-ILS/src/templates/staff/circ/transits/t_list.tt2
+
+commit 7482a039798fb9f71a64562b4a94d05be4db0ff8
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Wed May 4 15:01:50 2016 -0400
+
+    webstaff: transit list: don't reset form
+    
+    $location.path(foo) is a setter, and should not
+    be used to calculate a URL for opening a new window
+    unless you also want to refresh the source page.
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+
+5	6	Open-ILS/web/js/ui/default/staff/circ/transits/list.js
+
+commit bc5aebd7b20b53b24fa2c5c7eb066d7d21cb3689
+Author: Jason Etheridge <jason at esilibrary.com>
+Date:   Thu Oct 1 07:23:44 2015 -0400
+
+    webstaff: Transit List
+    
+    under Administration -> Local Administration
+    
+    Signed-off-by: Jason Etheridge <jason at esilibrary.com>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+
+32	0	Open-ILS/src/templates/staff/circ/share/t_abort_transit_dialog.tt2
+18	0	Open-ILS/src/templates/staff/circ/transits/list.tt2
+50	0	Open-ILS/src/templates/staff/circ/transits/t_list.tt2
+68	0	Open-ILS/web/js/ui/default/staff/circ/services/transits.js
+154	0	Open-ILS/web/js/ui/default/staff/circ/transits/list.js
+ create mode 100644 Open-ILS/src/templates/staff/circ/share/t_abort_transit_dialog.tt2
+ create mode 100644 Open-ILS/src/templates/staff/circ/transits/list.tt2
+ create mode 100644 Open-ILS/src/templates/staff/circ/transits/t_list.tt2
+ create mode 100644 Open-ILS/web/js/ui/default/staff/circ/services/transits.js
+ create mode 100644 Open-ILS/web/js/ui/default/staff/circ/transits/list.js
+
+commit f3931174b5257fa1574b298c3608839bdcddaf12
+Author: Jason Etheridge <jason at esilibrary.com>
+Date:   Tue Jan 5 11:23:36 2016 -0500
+
+    webstaff: links to Surveys, Transit List, Work Log
+    
+    Under Administration -> Local Administration
+    
+    Links to the existing Surveys interface; following commits implement
+    the new Transit List and Work Log interfaces.
+    
+    Signed-off-by: Jason Etheridge <jason at esilibrary.com>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+
+3	0	Open-ILS/src/templates/staff/admin/local/t_splash.tt2
+
+commit dffd94b2e673c87faae1e5e49153d0f05bf35d6f
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Fri Aug 12 14:15:29 2016 -0400
+
+    LP#1587639: stamp schema upgrade
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+
+1	1	Open-ILS/src/sql/Pg/002.schema.config.sql
+124	0	Open-ILS/src/sql/Pg/upgrade/0989.schema.authority-vandeley-edit-date.sql
+0	124	Open-ILS/src/sql/Pg/upgrade/XXXX.schema.authority-vandeley-edit-date.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/0989.schema.authority-vandeley-edit-date.sql
+ delete mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.schema.authority-vandeley-edit-date.sql
+
+commit 744c0e74493d09dff1a4f7e7a1cfb6d9597cf3fc
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Thu Aug 4 14:00:17 2016 -0400
+
+    LP#1587639 Avoid double-update of editor/edit_date
+    
+    Look for an editor first, and if not found just use the existing values.
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+33	32	Open-ILS/src/sql/Pg/012.schema.vandelay.sql
+33	32	Open-ILS/src/sql/Pg/upgrade/XXXX.schema.authority-vandeley-edit-date.sql
+
+commit ada5bc49fb90f34c18bb3551c83d27ca0bb89626
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Wed Jun 1 11:55:27 2016 -0400
+
+    LP#1587639 Vand. authority updates release notes
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+6	0	docs/RELEASE_NOTES_NEXT/Cataloging/auth_bib_update.adoc
+ create mode 100644 docs/RELEASE_NOTES_NEXT/Cataloging/auth_bib_update.adoc
+
+commit 720cb4391ec0149632fbaf9687edf58a4a1d1142
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Wed Jun 1 11:51:00 2016 -0400
+
+    LP#1587639 Vand. authority updates PGTAP
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+73	0	Open-ILS/src/sql/Pg/t/vandelay-auth-import.sql
+ create mode 100644 Open-ILS/src/sql/Pg/t/vandelay-auth-import.sql
+
+commit 43f06ef45bde83713b4b2700692dcc5606fb2a91
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Wed Jun 1 10:40:45 2016 -0400
+
+    LP#1587639 Vandelay authority update editor/edit_date
+    
+    Update the editor and edit_date of authority records when modified by
+    Vandelay merge/overlay.
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+9	9	Open-ILS/src/perlmods/lib/OpenILS/Application/Vandelay.pm
+48	8	Open-ILS/src/sql/Pg/012.schema.vandelay.sql
+123	0	Open-ILS/src/sql/Pg/upgrade/XXXX.schema.authority-vandeley-edit-date.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.schema.authority-vandeley-edit-date.sql
+
+commit 5317ba59cace4fd62365fc084addac6a3315fcd0
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Tue Aug 9 14:55:30 2016 -0400
+
+    Stamping upgrade for bib_source-in-901
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+1	1	Open-ILS/src/sql/Pg/002.schema.config.sql
+122	0	Open-ILS/src/sql/Pg/upgrade/0988.schema.bib_source_in_901.sql
+0	122	Open-ILS/src/sql/Pg/upgrade/XXXX.schema.bib_source_in_901.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/0988.schema.bib_source_in_901.sql
+ delete mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.schema.bib_source_in_901.sql
+
+commit 8db4cb64bb4741713edc7a364adcd9d0f865ba7d
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Wed Aug 26 17:59:37 2015 +0000
+
+    LP#1037553: bibliographic record source now copied to 901$s
+    
+    If a bibliographic record has a source set, the name of that source
+    is now copied to the 901$s whenever the record is created or updated.
+    This allows the source to be used for record matching and MARC
+    field queries.
+    
+    To test:
+    
+    [1] Create or import a bibliographic record and ensure that its
+        source is set to a non-null value.
+    [2] Inspect the record in MARC format view and verify that its
+        901 field now has a subfield $s containing the name of the
+        source.
+    [3] Use pg_prove to run the pgTAP test added by this patch
+        and verify that the test passes.
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+12	0	Open-ILS/src/sql/Pg/002.functions.config.sql
+21	0	Open-ILS/src/sql/Pg/t/bib_901_field.pg
+122	0	Open-ILS/src/sql/Pg/upgrade/XXXX.schema.bib_source_in_901.sql
+6	0	docs/RELEASE_NOTES_NEXT/Cataloging/bib_source_in_901s.txt
+ create mode 100644 Open-ILS/src/sql/Pg/t/bib_901_field.pg
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.schema.bib_source_in_901.sql
+ create mode 100644 docs/RELEASE_NOTES_NEXT/Cataloging/bib_source_in_901s.txt
+
+commit 983e8f9cf1bbc69fd8a134b987cdc87e4fc8e406
+Author: Jason Stephenson <jstephenson at mvlc.org>
+Date:   Thu Oct 8 09:39:34 2015 -0400
+
+    LP 1503867: Use ws_ou in open-ils.circ.copy_transit.receive.
+    
+    After putting NCIPServer into production, we discovered that a staff
+    user cannot receive a transit destined for their work org. unit if
+    the actor.usr.home_ou is not the same as their current work_ou.
+    This occurred because transit_receive in OpenILS::Application::
+    Circ::Transit uses the requestor's home_ou and not the ws_ou.
+    
+    If you want to trigger this bug, write a little script to receive
+    transits, then login with a staff account at a location other than
+    their home_ou and try to receive a transit destined for the work_ou.
+    It will fail.
+    
+    This small commit replaces home_ou in two places with ws_ou in order
+    to make the above work.
+    
+    NOTE: This bug affects an API call not used in Evergreen except in
+    one test script.  It used in two ILL add-ons for Evergreen: issa and
+    NCIPServer.  Receiving transits by checking copies in via the staff
+    client, the typical workflow, is not affected by this bug or its fix.
+    
+    Signed-off-by: Jason Stephenson <jstephenson at mvlc.org>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+2	2	Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Transit.pm
+
+commit 31563d8f54fd65d318635375b3b07520bf7bfc31
+Author: Liam Whalen <liam.whalen at bc.libraries.coop>
+Date:   Thu Sep 24 15:00:17 2015 -0700
+
+    LP#1499537 Fixed kpac.xml caching problem
+    
+    KPAC config files must be cached per config path in order to support
+    cases where more than one KPAC interface has been configured in different
+    vhosts or locations.
+    
+    Signed-off-by: Liam Whalen <liam.whalen at bc.libraries.coop>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+13	12	Open-ILS/src/perlmods/lib/OpenILS/WWW/EGKPacLoader.pm
+
+commit 5a5834d993e2ad7b4e9fdce9e839b956414a9ab3
+Author: Michele Morgan <mmorgan at noblenet.org>
+Date:   Thu Jun 2 12:44:02 2016 -0400
+
+    LP#1588450 asset.copy.cost Field Missing from Client Interfaces
+    
+    This patch adds the asset.copy.cost cost field, with the label 'Acquisition
+    Cost' to the following:
+    
+    XUL client:
+    
+    - Item status list view column picker
+    - Item status alternate view
+    - Copy editor
+    
+    Web client:
+    
+    - Item status alternate view
+    - Copy editor label change
+    
+    Signed-off-by: Michele Morgan <mmorgan at noblenet.org>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+18	20	Open-ILS/src/templates/staff/cat/item/t_summary_pane.tt2
+1	1	Open-ILS/src/templates/staff/cat/volcopy/t_attr_edit.tt2
+1	1	Open-ILS/src/templates/staff/cat/volcopy/t_defaults.tt2
+1	0	Open-ILS/web/opac/locale/en-US/lang.dtd
+8	0	Open-ILS/xul/staff_client/server/cat/copy_editor.js
+6	0	Open-ILS/xul/staff_client/server/circ/alternate_copy_summary.js
+16	15	Open-ILS/xul/staff_client/server/circ/alternate_copy_summary.xul
+16	0	Open-ILS/xul/staff_client/server/circ/util.js
+1	0	Open-ILS/xul/staff_client/server/locale/en-US/cat.properties
+1	0	Open-ILS/xul/staff_client/server/locale/en-US/common.properties
+
+commit 4c92d095da106a4c2a54bf26e392d5ad57938f4d
+Author: Kathy Lussier <klussier at masslnc.org>
+Date:   Tue Apr 26 11:47:27 2016 -0400
+
+    LP#1575177 Add text informing users they cannot add survey questions
+    
+    Survey questions cannot be added or modified once a survey has started, so
+    let's add some warning text in the interface letting them know why they can't
+    perform these actions.
+    
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+1	0	Open-ILS/web/js/dojo/openils/conify/nls/conify.js
+6	1	Open-ILS/web/js/ui/default/conify/global/action/survey/edit.js
+
+commit abefaa0dffe415bca9669de7a884ce22d6a9c2a3
+Author: Kathy Lussier <klussier at masslnc.org>
+Date:   Tue Jul 19 14:02:12 2016 -0400
+
+    LP#1604515: Remove Advanced Hold Options link when part holds are expected
+    
+    This branch removes the Advanced Hold Options link from the Place Hold
+    screen in cases where all copies on the bib record contain parts. If a user
+    attempts to place a metarecord hold and all other copies in the group also
+    contain parts, the hold will fail. By removing the link, we are removing one
+    potential point of failure for the user.
+    
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+1	1	Open-ILS/src/templates/opac/parts/place_hold.tt2
+9	0	docs/RELEASE_NOTES_NEXT/OPAC/remove_advanced_hold_options_for_parts.adoc
+ create mode 100644 docs/RELEASE_NOTES_NEXT/OPAC/remove_advanced_hold_options_for_parts.adoc
+
+commit 2ba2c3bf0c3fe3bcccd242fa435d589fe0847bf3
+Author: blake <blake at mobiusconsortium.org>
+Date:   Mon Apr 18 16:25:46 2016 -0500
+
+    LP1534283 SIP prevents renewal when user has any blocking standing penalties
+    
+    This code dives into each penalty to investigate weather or not the patron
+    can renew based on the block list column. Before, SIP would block renewals with
+    the presence of penalty 1 or 2 regardless.
+    
+    Signed-off-by: blake <blake at mobiusconsortium.org>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+38	4	Open-ILS/src/perlmods/lib/OpenILS/SIP/Patron.pm
+
+commit e51f6070f186e9f5504c3e1da5a93e7627738599
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Tue Aug 9 12:46:07 2016 -0400
+
+    Stamping upgrade for payment limits.
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+1	1	Open-ILS/src/sql/Pg/002.schema.config.sql
+33	0	Open-ILS/src/sql/Pg/upgrade/0987.data.lp1183964_payment_limit.sql
+0	33	Open-ILS/src/sql/Pg/upgrade/XXXX_lp1183964_payment_limit.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/0987.data.lp1183964_payment_limit.sql
+ delete mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX_lp1183964_payment_limit.sql
+
+commit ad10cde090791e02cb106e36a310581bfaafface
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Tue Aug 9 12:41:54 2016 -0400
+
+    Stamping upgrade for accent-ignoring patron search
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+1	1	Open-ILS/src/sql/Pg/002.schema.config.sql
+43	0	Open-ILS/src/sql/Pg/upgrade/0986.schema.patron_unaccent.sql
+0	43	Open-ILS/src/sql/Pg/upgrade/XXXX.schema.patron_unaccent.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/0986.schema.patron_unaccent.sql
+ delete mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.schema.patron_unaccent.sql
+
+commit 10aaac3955bd6baaa68f502c1ef851fce093b183
+Author: Jason Stephenson <jstephenson at mvlcstaff.org>
+Date:   Thu Mar 17 17:47:52 2016 -0400
+
+    LP 1501781: Make patron name search diacritic/space insensitive.
+    
+    Add pgtap tests for the new org unit setting, the new indexes, and to
+    test the evergreen.unaccent_and_squash() functionality.  Many of the
+    latter tests are based on the tests for evergreen.lowercase().
+    
+    Signed-off-by: Jason Stephenson <jason at sigio.com>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+61	0	Open-ILS/src/sql/Pg/t/lp1501781-unaccent_and_squash.pg
+ create mode 100644 Open-ILS/src/sql/Pg/t/lp1501781-unaccent_and_squash.pg
+
+commit 42d5c82b1ca74ca4aa0581b930ecf0b22772fefe
+Author: Jason Stephenson <jason at sigio.com>
+Date:   Thu Mar 17 08:01:54 2016 -0400
+
+    LP 1501781: Make patron name search diacritic/space insensitive.
+    
+    This commit adds the necessary code to storage actor publisher to use
+    the new evergreen.unaccent_and_squash db function when doing a patron
+    name search.
+    
+    It is based on code originally by Dan Pearl, but then modified to
+    remove a dependency on a new Perl module by calling the db function on
+    the search input as well.
+    
+    Signed-off-by: Jason Stephenson <jason at sigio.com>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+36	4	Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Publisher/actor.pm
+
+commit 85a470ef7144265ee0a2618fafffeac8bb36b65d
+Author: Dan Pearl <dpearl at cwmars.org>
+Date:   Thu Oct 1 09:49:17 2015 -0400
+
+    LP#1501781 - Make patron name search diacritic/space insensitive.
+    
+    Diacritical marks may exist in the patron record, as they should, but
+    this makes patron name search difficult for librarians who may be
+    unfamiliar with all the special characters used and also how to elicit
+    them from a keyboard.  To ease this, accented characters will be
+    converted into their 'plain' analogs for comparison purposes.
+    
+    So, for example, if the patron's last name is Chávez, typing "Chavez"
+    in the Last Name box in Patron Search will match it.
+    
+    Spaces in a name (like "De la Croix") will be squashed out so that
+    name would be matched by "Delacroix" or "De la Croix" or variants.
+    
+    The librarian can enter the accented characters or not.
+    
+    Signed-off-by: Dan Pearl <dpearl at cwmars.org>
+    Signed-off-by: Jason Stephenson <jason at sigio.com>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+8	0	Open-ILS/src/sql/Pg/000.functions.general.sql
+3	0	Open-ILS/src/sql/Pg/005.schema.actors.sql
+20	0	Open-ILS/src/sql/Pg/950.data.seed-values.sql
+1	0	Open-ILS/src/sql/Pg/create_database_extensions.sql
+43	0	Open-ILS/src/sql/Pg/upgrade/XXXX.schema.patron_unaccent.sql
+20	0	docs/RELEASE_NOTES_NEXT/Client/accent_insensitive_patron_search
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.schema.patron_unaccent.sql
+ create mode 100644 docs/RELEASE_NOTES_NEXT/Client/accent_insensitive_patron_search
+
+commit 9bdfdf9a870dceb5baa92ddde6575b9a34a624fb
+Author: Jason Boyer <jboyer at library.in.gov>
+Date:   Fri May 13 12:51:07 2016 -0400
+
+    LP1183964: Payment Limit Options
+    
+    Add support for 2 new OU settings, a payment warning
+    amount (try to pay more than this and you're required
+    to confirm it) and a hard limit where no payment larger
+    will be accepted. Support is also added to both the XUL
+    client and webstaff client.
+    
+    Signed-off-by: Jason Boyer <jboyer at library.in.gov>
+    Signed-off-by: Jeanette Lundgren <jlundgren at cwmars.org>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+20	0	Open-ILS/src/sql/Pg/950.data.seed-values.sql
+33	0	Open-ILS/src/sql/Pg/upgrade/XXXX_lp1183964_payment_limit.sql
+3	0	Open-ILS/src/templates/staff/circ/patron/index.tt2
+45	3	Open-ILS/web/js/ui/default/staff/circ/patron/bills.js
+3	0	Open-ILS/xul/staff_client/server/locale/en-US/patron.properties
+39	2	Open-ILS/xul/staff_client/server/patron/bill2.js
+16	0	docs/RELEASE_NOTES_NEXT/Circulation/limit_payment_amounts_accepted.txt
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX_lp1183964_payment_limit.sql
+ create mode 100644 docs/RELEASE_NOTES_NEXT/Circulation/limit_payment_amounts_accepted.txt
+
+commit 4b5b791fffef5420e6d142964dfefdb647051e22
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Tue Aug 9 12:04:35 2016 -0400
+
+    Stamping upgrade for reingest speedup
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+1	1	Open-ILS/src/sql/Pg/002.schema.config.sql
+231	0	Open-ILS/src/sql/Pg/upgrade/0985.schema.speed_record_attr_ingest.sql
+0	231	Open-ILS/src/sql/Pg/upgrade/XXXX.schema.speed_record_attr_ingest.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/0985.schema.speed_record_attr_ingest.sql
+ delete mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.schema.speed_record_attr_ingest.sql
+
+commit 982472f1110b5874757d57c421e121c0a5962f61
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Fri Jul 29 11:40:46 2016 -0400
+
+    LP#1588543: schema update script
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+231	0	Open-ILS/src/sql/Pg/upgrade/XXXX.schema.speed_record_attr_ingest.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.schema.speed_record_attr_ingest.sql
+
+commit f668201078a11fe06d9bb8e1c658648e7ed2be60
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Fri Jul 29 11:34:06 2016 -0400
+
+    LP#1588543: tests for verifying correct generated of record attributes
+    
+    This patch adds tests to verify that the expected
+    set of record attributes are generated when a bib record
+    is ingested.  The tests serve a couple purposes:
+    
+    - verifying that changes to the record attribute ingest
+      stored procedure don't have unexpected side-effects
+    - validating record attribute definitions in the seed data
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+211	0	Open-ILS/src/sql/Pg/t/lp1588543_marc_record_attributes.pg
+ create mode 100644 Open-ILS/src/sql/Pg/t/lp1588543_marc_record_attributes.pg
+
+commit 6cc1d1e0911f4dd4a92d17a9b60025888b080bff
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Fri Jul 29 11:24:07 2016 -0400
+
+    LP#1588543: further speed up record attribute ingest
+    
+    Following a suggestion from Dan Wells, this patch adds
+    an index on config.coded_value_map(ctype). My testing shows
+    that the index by itself can halve the time required to
+    fully ingest a new record; in conjunction with the
+    change in the previous patch, full reingest time is
+    reduced by about 60%.
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+2	0	Open-ILS/src/sql/Pg/002.schema.config.sql
+
+commit cf3bd149e53585676a517d38093f2470dbcfaaeb
+Author: Dan Wells <dbw2 at calvin.edu>
+Date:   Wed Jun 1 14:36:29 2016 -0400
+
+    LP#1588543: Speed up record attribute ingest
+    
+    A huge number of rows (700+) have been added to
+    config.record_attr_definition in recent versions of Evergreen. However,
+    these rows do not actually define any indexing at all, but are used for
+    other purposes.  The reingest process currently churns over all of these
+    rows to ultimately do nothing.
+    
+    This commit limits the group of attributes considered at ingest to only
+    those which might index something.  Testing indicates a substantial
+    speed boost to typical use of metabib.reingest_record_attributes()
+    (over 2x speedup).
+    
+    Signed-off-by: Dan Wells <dbw2 at calvin.edu>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+10	1	Open-ILS/src/sql/Pg/030.schema.metabib.sql
+
+commit d5ce5929495c31eeac6bfdc3df6bd3e275a3ed0d
+Author: Kathy Lussier <klussier at masslnc.org>
+Date:   Fri Jul 29 17:51:14 2016 -0400
+
+    LP#1549505: Stamping upgrade scripts 0983-84 for stat pop ratings
+    
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+1	1	Open-ILS/src/sql/Pg/002.schema.config.sql
+1005	0	Open-ILS/src/sql/Pg/upgrade/0983.schema.statistical-ratings.sql
+606	0	Open-ILS/src/sql/Pg/upgrade/0984.function.qp_search.sql
+0	1003	Open-ILS/src/sql/Pg/upgrade/XXXX.schema.statisitcal-ratings.sql
+0	604	Open-ILS/src/sql/Pg/upgrade/YYYY.function.qp_search.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/0983.schema.statistical-ratings.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/0984.function.qp_search.sql
+ delete mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.schema.statisitcal-ratings.sql
+ delete mode 100644 Open-ILS/src/sql/Pg/upgrade/YYYY.function.qp_search.sql
+
+commit ac561d3b347e4f7393000a6b76ea1071927d9d4e
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Thu Jul 28 12:19:15 2016 -0400
+
+    LP#1549505: update $modal to $uibModal
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+6	6	Open-ILS/web/js/ui/default/staff/admin/local/rating/badge.js
+
+commit 940270761e1ef9c4ea51c8ad9229e3c9bd8d45a2
+Author: Kathy Lussier <klussier at masslnc.org>
+Date:   Thu Jul 21 12:02:38 2016 -0400
+
+    LP#1549505: Decrease value of Max popularity importance multiplier
+    
+    My testing found that a setting between 1.1 and 1.2 resulted in fairly good
+    results when using the popularity-adjusted relevance sort. Adjusting the value
+    in the seed data to 1.1 since it will be a better starting point for libraries.
+    
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+1	1	Open-ILS/src/sql/Pg/950.data.seed-values.sql
+1	1	Open-ILS/src/sql/Pg/upgrade/XXXX.schema.statisitcal-ratings.sql
+
+commit cf614499238ad958f34f91ec0107d482ac124d30
+Author: Kathy Lussier <klussier at masslnc.org>
+Date:   Thu Jul 21 11:52:24 2016 -0400
+
+    LP#1549505: Remove stray semicolon from PgTap test
+    
+    The semicolon was causing failures in the test.
+    
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+1	1	Open-ILS/src/sql/Pg/t/regress/lp1549505_statistical_popularity_infrastructure.pg
+
+commit ae3bb32ede6e7569b935a92ed5bc7fc1cb0564cf
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Thu May 26 17:51:49 2016 -0400
+
+    LP#1549505: Query literal interpolation casts incorrectly
+    
+    We need to be sure that all query values are of the same type in the same
+    columns because PLPGSQL functions are compiled and cached.  In this case,
+    the core query of the in-db search cannot have its shape change.  This
+    commit assures that browse and search uses of the SP provide core queries
+    that match on their SELECT lists.  Of particular importance is the type
+    of the "rel" output column, which was variously float8 or numeric, depending
+    on whether the search contained any terms (a "search") or not (a browse
+    link).
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+4	4	Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Driver/Pg/QueryParser.pm
+4	4	Open-ILS/src/sql/Pg/030.schema.metabib.sql
+4	4	Open-ILS/src/sql/Pg/upgrade/YYYY.function.qp_search.sql
+
+commit 3d5b37a1072bfd177bf484d02e717dae57a62427
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Wed May 25 12:53:24 2016 -0400
+
+    LP#1549505: fix staged browse
+    
+    This patch ensures that the core query passed to
+    query_parser_fts by staged browse contains dummy
+    badges and popularity columns (and thus, doesn't break);
+    note that browse itself cares nothing about popularity.
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+2	0	Open-ILS/src/sql/Pg/030.schema.metabib.sql
+208	0	Open-ILS/src/sql/Pg/upgrade/YYYY.function.qp_search.sql
+
+commit df0d763642e5841baaac36d09b1fa9df525b2b67
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Fri May 6 11:29:39 2016 -0400
+
+    LP#1549505: update baseline database schema
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+2	0	Open-ILS/src/sql/Pg/090.schema.action.sql
+905	0	Open-ILS/src/sql/Pg/220.schema.rating.sql
+9	1	Open-ILS/src/sql/Pg/300.schema.staged_search.sql
+0	2	Open-ILS/src/sql/Pg/950.data.seed-values.sql
+73	19	Open-ILS/src/sql/Pg/reporter-schema.sql
+2	0	Open-ILS/src/sql/Pg/sql_file_manifest
+ create mode 100644 Open-ILS/src/sql/Pg/220.schema.rating.sql
+
+commit 36ed838b1bc73b4bb5957aa7a3da29fc94f2563f
+Author: Jason Stephenson <jstephenson at mvlcstaff.org>
+Date:   Fri Apr 15 09:36:51 2016 -0400
+
+    LP 1549505: Fix syntax error in OpenILS/WWW/EGCatLoader/Record.pm
+    
+    Typo/error apparently introduced on line 72 in commit eeee27c.
+    
+    Signed-off-by: Jason Stephenson <jstephenson at mvlcstaff.org>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+1	1	Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Record.pm
+
+commit 6fd72121637701f4dfc50e2cd3b2896c49197c5c
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Tue Apr 5 16:26:41 2016 -0400
+
+    LP#1549505: Release notes for statistically generated record ratings (popularity)
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+98	0	docs/RELEASE_NOTES_NEXT/OPAC/popularity-rating.txt
+ create mode 100644 docs/RELEASE_NOTES_NEXT/OPAC/popularity-rating.txt
+
+commit 4f48f276d052a6211be625d3b87d8077a789999c
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Tue Apr 5 12:10:53 2016 -0400
+
+    LP#1549505: PGTap test to show the infrastructure is working
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+33	0	Open-ILS/src/sql/Pg/t/regress/lp1549505_statistical_popularity_infrastructure.pg
+ create mode 100644 Open-ILS/src/sql/Pg/t/regress/lp1549505_statistical_popularity_infrastructure.pg
+
+commit 1fd8103bf33430fe0b4b5ae8d2b2b051802ac473
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Fri Mar 11 13:27:03 2016 -0500
+
+    LP#1549505: add flag to tweak popularity-adjusted relevance
+    
+    This adds a new global_flag, search.max_popularity_importance_multiplier,
+    to control the factor by which popularity affects Popularity Adjusted
+    Relevance ranking.
+    
+    The value should be a decimal number, typically between 1.0 and 2.0:
+    
+    * 1.0 be would be equivalent to not adjusting relevance for popularity
+      at all.
+    * 1.1 would mean that the multiplier would range from 1 (for zero
+      popularity) to 1.1 (for maximum popularity), for a maximum boost of
+      10% of the base relevance value of the record.
+    
+    What's happening in the code:
+    
+    Scale the 0-5 effect of popularity badges by providing a multiplier
+    for the badge average based on the overall maximum multiplier.  Two
+    examples, comparing the effect to the default $max_mult value of 2.0,
+    which causes a $adjusted_scale value of 0.2:
+    
+     * Given the default $max_mult of 2.0, the value of
+       $adjusted_scale will be 0.2 [($max_mult - 1.0) / 5.0].
+       For a record whose average badge score is the maximum
+       of 5.0, that would make the relevance multiplier be
+       2.0:
+          1.0 + (5.0 [average score] * 0.2 [ $adjusted_scale ],
+       This would have the effect of doubling the effective
+       relevance of highly popular items.
+    
+     * Given a $max_mult of 1.1, the value of $adjusted_scale
+       will be 0.02, meaning that the average badge value will be
+       multiplied by 0.02 rather than 0.2, then added to 1.0 and
+       used as a multiplier against the base relevance.  Thus a
+       change of at most 10% to the base relevance for a record
+       with a 5.0 average badge score. This will allow records
+       that are naturally very relevant to avoid being pushed
+       below badge-heavy records.
+    
+     * Given a $max_mult of 3.0, the value of $adjusted_scale
+       will be 0.4, meaning that the average badge value will be
+       multiplied by 0.4 rather than 0.2, then added to 1.0 and
+       used as a multiplier against the base relevance. Thus a
+       change of as much as 200% to (or three times the size of)
+       the base relevance for a record with a 5.0 average badge
+       score.  This in turn will cause badges to outweigh
+       relevance to a very large degree.
+    
+    The maximum badge multiplier can be set to a value less than
+    1.0; this would have the effect of making less popular items
+    show up higher in the results.  While this is not a likely
+    option for production use, it could be useful for identifying
+    interesting long-tail hits, particularly in a database
+    where enough badges are configured so that very few records
+    have an average badge score of zero.
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+62	1	Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Driver/Pg/QueryParser.pm
+13	0	Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Publisher/metabib.pm
+12	0	Open-ILS/src/sql/Pg/950.data.seed-values.sql
+12	0	Open-ILS/src/sql/Pg/upgrade/XXXX.schema.statisitcal-ratings.sql
+
+commit d4d2f42e8674f93284d2932e171bf9a4f9cc8cf4
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Wed Feb 24 17:19:14 2016 -0500
+
+    LP#1549505: add admin interface to manage badges
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+1	1	Open-ILS/examples/fm_IDL.xml
+60	0	Open-ILS/src/templates/staff/admin/local/rating/badge.tt2
+42	0	Open-ILS/src/templates/staff/admin/local/rating/edit_badge.tt2
+1	0	Open-ILS/src/templates/staff/admin/local/t_splash.tt2
+3	0	Open-ILS/src/templates/staff/css/style.css.tt2
+189	0	Open-ILS/web/js/ui/default/staff/admin/local/rating/badge.js
+ create mode 100644 Open-ILS/src/templates/staff/admin/local/rating/badge.tt2
+ create mode 100644 Open-ILS/src/templates/staff/admin/local/rating/edit_badge.tt2
+ create mode 100644 Open-ILS/web/js/ui/default/staff/admin/local/rating/badge.js
+
+commit 701d069268f75620e145ea73a2e21aec7ec5db42
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Thu Feb 4 17:19:03 2016 -0500
+
+    LP#1549505: Add ability to set default sorter via global flag
+    
+    In addition, support for sorting by ascending popularity remains
+    in the back end, however, since if one's configured badges such
+    that almost every record has a badge score, that sort order could
+    be useful for examining the long tail of the collection.
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+5	0	Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader.pm
+14	0	Open-ILS/src/sql/Pg/950.data.seed-values.sql
+7	0	Open-ILS/src/sql/Pg/upgrade/XXXX.schema.statisitcal-ratings.sql
+5	1	Open-ILS/src/templates/opac/parts/advanced/search.tt2
+12	0	Open-ILS/src/templates/opac/parts/filtersort.tt2
+6	1	Open-ILS/src/templates/opac/parts/searchbar.tt2
+
+commit b6dd839f6c292849017cdc8a2f0ff590facd70cc
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Wed Feb 3 15:46:52 2016 -0500
+
+    LP#1549505: Provide a cron-able script to perform badge recalculation
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+27	0	Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Publisher/biblio.pm
+60	0	Open-ILS/src/support-scripts/badge_score_generator.pl
+ create mode 100755 Open-ILS/src/support-scripts/badge_score_generator.pl
+
+commit 8180b60d040d6b1025de21bbd587839076037493
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Fri Jan 22 17:13:25 2016 -0500
+
+    LP#1549505: Teach QP and its caller stack how to use badges
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+2	2	Open-ILS/src/perlmods/lib/OpenILS/Application/Search/Biblio.pm
+54	7	Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Driver/Pg/QueryParser.pm
+59	1	Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Publisher/metabib.pm
+15	0	Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Record.pm
+7	5	Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Search.pm
+396	0	Open-ILS/src/sql/Pg/upgrade/YYYY.function.qp_search.sql
+10	0	Open-ILS/src/templates/opac/parts/record/summary.tt2
+7	2	Open-ILS/src/templates/opac/parts/result/table.tt2
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/YYYY.function.qp_search.sql
+
+commit 1dd8d953b01ccedc5e42162d53471f132156e77a
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Thu Jan 7 22:00:20 2016 -0500
+
+    LP#1549505: schema and IDL for statistical poularity ratings
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+92	0	Open-ILS/examples/fm_IDL.xml
+984	0	Open-ILS/src/sql/Pg/upgrade/XXXX.schema.statisitcal-ratings.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.schema.statisitcal-ratings.sql
+
+commit 357aabae410bbe25160947acd52693841d690e92
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Thu May 12 15:58:49 2016 -0400
+
+    LP#1581196: webstaff: fix dirty form detection in patron editor
+    
+    This patch fixes a problem wherein the patron editor
+    form would think that it had been modified by the
+    user immediately after initialization.
+    
+    To test
+    -------
+    [1] Load the patron editor, then refresh the page. Note that
+        you are warned that there is unsaved input.
+    [2] As above, but hit the save button. Note that after saving,
+        you still get a warning that there is unsaved input.
+    [3] Apply the page, then repeat tests 1 and 2. This time, you
+        shouldn't get inappropriate unsaved data warnings.
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+0	2	Open-ILS/src/templates/staff/circ/patron/t_edit.tt2
+6	0	Open-ILS/web/js/ui/default/staff/circ/patron/regctl.js
+
+commit 50eb643d555b8307e02a312d8e09919dd003b2d3
+Author: Ben Shum <ben at evergreener.net>
+Date:   Tue Jul 5 01:14:38 2016 -0400
+
+    LP#1568046: Stamping upgrade script for eliminating connectby from functions
+    
+    Signed-off-by: Ben Shum <ben at evergreener.net>
+
+1	1	Open-ILS/src/sql/Pg/002.schema.config.sql
+256	0	Open-ILS/src/sql/Pg/upgrade/0982.function.perm_functions_without_connectby.sql
+0	256	Open-ILS/src/sql/Pg/upgrade/XXXX.function.perm_functions_without_connectby.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/0982.function.perm_functions_without_connectby.sql
+ delete mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.function.perm_functions_without_connectby.sql
+
+commit 499d69d64e7c7b660ee1dffc250f8f9552df8daa
+Author: Jason Stephenson <jason at sigio.com>
+Date:   Fri Jul 1 13:13:16 2016 -0400
+
+    LP#1568046: Replace last two uses of connectby with other function calls.
+    
+    Modify permission functions permission.usr_has_perm_at_nd and
+    permission.usr_has_perm_at_all_nd to no longer require the connectby
+    function from the tablefunc extension.  The connectby functionality is
+    replaced by existing database functions to retrieve org. unit
+    descendants.
+    
+    This change removes the need to load the tablefunc extension, so it is
+    dropped from the create scripts.  The upgrade script does not remove
+    the extension as sites may be using connectby or other functions from
+    the extension.
+    
+    Signed-off-by: Jason Stephenson <jason at sigio.com>
+    Signed-off-by: Ben Shum <ben at evergreener.net>
+
+5	28	Open-ILS/src/sql/Pg/006.schema.permissions.sql
+0	2	Open-ILS/src/sql/Pg/create_database_contribs.sql
+0	1	Open-ILS/src/sql/Pg/create_database_extensions.sql
+256	0	Open-ILS/src/sql/Pg/upgrade/XXXX.function.perm_functions_without_connectby.sql
+15	0	docs/RELEASE_NOTES_NEXT/Administration/lp1568046-tablefunc-extension-removed.adoc
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.function.perm_functions_without_connectby.sql
+ create mode 100644 docs/RELEASE_NOTES_NEXT/Administration/lp1568046-tablefunc-extension-removed.adoc
+
+commit 1463f3597487048127cee5b19ba79bb3bec5a878
+Author: Ben Shum <ben at evergreener.net>
+Date:   Wed Jun 8 07:41:30 2016 -0400
+
+    LP#1554714: Set angular 1.5.5 as minimum, not exact version
+    
+    By adding the ~ in front of the angular version specified, we say
+    make this the minimum version to look for.  This bypasses the issue
+    for when new releases of the 1.5.x angular series is released, such
+    as 1.5.6, which is the current new version as of this patch.
+    
+    Signed-off-by: Ben Shum <ben at evergreener.net>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+1	1	Open-ILS/web/js/ui/default/staff/bower.json
+
+commit a6d3bdea207394fafc8caf92dcd18843410fcb2e
+Author: Kathy Lussier <klussier at masslnc.org>
+Date:   Fri Jun 10 11:51:41 2016 -0400
+
+    LP#1526858: Stamping upgrade script for faster alhr query
+    
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+1	1	Open-ILS/src/sql/Pg/002.schema.config.sql
+8	0	Open-ILS/src/sql/Pg/upgrade/0981.schema.indexes_for_alhr_queries.sql
+0	8	Open-ILS/src/sql/Pg/upgrade/XXXX.schema.indexes_for_alhr_queries.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/0981.schema.indexes_for_alhr_queries.sql
+ delete mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.schema.indexes_for_alhr_queries.sql
+
+commit ae4ccf75a047719ef3b8809349bde93398121cb1
+Author: Kathy Lussier <klussier at masslnc.org>
+Date:   Wed May 25 11:29:22 2016 -0400
+
+    Docs: Adding 2.10.4 Point Release Notes
+    
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+37	2	docs/RELEASE_NOTES_2_10.adoc
+
+commit 8ab630642cf7331a3cbb3d216f376ff837e7ed52
+Author: Kathy Lussier <klussier at masslnc.org>
+Date:   Mon May 23 19:17:36 2016 -0400
+
+    LP#1447746: Fix lp957466_update_date_and_source regression test
+    
+    The new code introduced through LP1447746 adding an update_bib_source flag to
+    Vandelay merge profiles broke a test that was verifying the bib source and
+    edit fields were updated in Vandelay uploads.
+    
+    This patch fixes the test and also adds a new test to ensure the flag works as
+    expected when set to both true and false. It also renames the test since the
+    it's now testing the newer code rather than the previous expected behavior.
+    
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+    Signed-off-by: Ben Shum <ben at evergreener.net>
+
+137	0	Open-ILS/src/sql/Pg/t/regress/lp1447746_update_date_and_source.pg
+0	80	Open-ILS/src/sql/Pg/t/regress/lp957466_update_date_and_source.pg
+ create mode 100644 Open-ILS/src/sql/Pg/t/regress/lp1447746_update_date_and_source.pg
+ delete mode 100644 Open-ILS/src/sql/Pg/t/regress/lp957466_update_date_and_source.pg
+
+commit 2f024d424fefe801aafaf9f9b2debab0c6b74483
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Thu May 19 14:28:11 2016 -0400
+
+    LP#1554714 Add explicit phantomjs-prebuilt dependency
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Ben Shum <ben at evergreener.net>
+    Signed-off-by: Jason Stephenson <jstephenson at mvlcstaff.org>
+
+1	0	Open-ILS/web/js/ui/default/staff/package.json
+
+commit 3e614940ad2fbdb6ec88e96b580ca7437e044410
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Thu May 19 16:25:12 2016 -0400
+
+    LP#1554714 Ang. 2.5 hotkeys plugin update
+    
+    As with other dependencies, the hotkeys package name changed since the
+    last update.  It's now cfp-angular-hotkeys
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Ben Shum <ben at evergreener.net>
+    Signed-off-by: Jason Stephenson <jstephenson at mvlcstaff.org>
+
+2	2	Open-ILS/web/js/ui/default/staff/bower.json
+
+commit 670a9115b9aaad5570f1f7143d630f0c985537e6
+Author: Kathy Lussier <klussier at masslnc.org>
+Date:   Thu May 12 16:49:11 2016 -0400
+
+    LP#1447746 Stamping upgrade script for update-bib-source flag in Vandelay
+    
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+1	1	Open-ILS/src/sql/Pg/002.schema.config.sql
+74	0	Open-ILS/src/sql/Pg/upgrade/0980.schema.merge.overlay_control.sql
+0	74	Open-ILS/src/sql/Pg/upgrade/XXXX.schema.merge_overlay_control.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/0980.schema.merge.overlay_control.sql
+ delete mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.schema.merge_overlay_control.sql
+
+commit 651020ea6ceb732bc4ac743075bf0080c10ae39f
+Author: Dan Pearl <dpearl at cwmars.org>
+Date:   Thu Feb 4 12:46:46 2016 -0500
+
+    LP#1447746: Do not update bib source on match-only merge
+    
+    This adds a flag to control the updating of the bib source on a vandelay operation.
+    
+    Signed-off-by: Dan Pearl <dpearl at cwmars.org>
+    Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+1	0	Open-ILS/examples/fm_IDL.xml
+24	18	Open-ILS/src/sql/Pg/012.schema.vandelay.sql
+4	4	Open-ILS/src/sql/Pg/950.data.seed-values.sql
+14	0	Open-ILS/src/sql/Pg/t/lp1447746_import_flag.pg
+74	0	Open-ILS/src/sql/Pg/upgrade/XXXX.schema.merge_overlay_control.sql
+1	1	Open-ILS/src/templates/vandelay/inc/profiles.tt2
+15	0	docs/RELEASE_NOTES_NEXT/Cataloging/marc_bib_update.adoc
+ create mode 100644 Open-ILS/src/sql/Pg/t/lp1447746_import_flag.pg
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.schema.merge_overlay_control.sql
+ create mode 100644 docs/RELEASE_NOTES_NEXT/Cataloging/marc_bib_update.adoc
+
+commit 0f0f6c13effb05c0fb88a5485b615b57d0acc9f6
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Mon May 9 17:03:20 2016 -0400
+
+    release notes for 2.10.3
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+
+29	1	docs/RELEASE_NOTES_2_10.adoc
+
+commit 2cf65ef923145aade9a6ced615dfd29d4d6216b3
+Author: Ben Shum <ben at evergreener.net>
+Date:   Wed May 4 13:22:28 2016 -0400
+
+    LP#1551084: Add 16.04 version notes in server_upgrade doc
+    
+    Signed-off-by: Ben Shum <ben at evergreener.net>
+    Signed-off-by: Jason Stephenson <jason at sigio.com>
+
+2	1	docs/installation/server_upgrade.txt
+
+commit ae4505cb7ae130906d8801b6ec726e052357eed9
+Author: Ben Shum <ben at evergreener.net>
+Date:   Tue Apr 19 10:36:39 2016 -0400
+
+    LP#1551084: Fixup typo for ubuntu-xenial-developer
+    
+    Jason spotted a typo. Can probably squash this in later.
+    
+    Signed-off-by: Ben Shum <ben at evergreener.net>
+    Signed-off-by: Jason Stephenson <jason at sigio.com>
+
+1	1	Open-ILS/src/extras/Makefile.install
+
+commit f811b197ab5381883961f38f1cf2a3e2d47f2e05
+Author: Ben Shum <ben at evergreener.net>
+Date:   Mon Feb 29 01:30:29 2016 -0500
+
+    LP#1551084: Update README to include references for 'ubuntu-xenial'
+    
+    Signed-off-by: Ben Shum <ben at evergreener.net>
+    Signed-off-by: Jason Stephenson <jason at sigio.com>
+
+11	10	docs/installation/server_installation.txt
+
+commit 0605c1eb6d22a616773e6fba27a10e936a2c5d35
+Author: Ben Shum <ben at evergreener.net>
+Date:   Mon Feb 29 01:20:34 2016 -0500
+
+    LP#1551084: Start new Makefile target for 'ubuntu-xenial'
+    
+    For Ubuntu 16.04, let's start a new Makefile target for 'ubuntu-xenial'
+    
+    For major changes, the packaged version of PostgreSQL that ships with
+    Ubuntu 16.04 is PostgreSQL 9.5.
+    
+    Also, during the configure step, the build process looks for libpcre3-dev,
+    so we add that as an additional prerequisite now.
+    
+    Signed-off-by: Ben Shum <ben at evergreener.net>
+    Signed-off-by: Jason Stephenson <jason at sigio.com>
+
+11	1	Open-ILS/src/extras/Makefile.install
+156	0	Open-ILS/src/extras/install/Makefile.ubuntu-xenial
+ create mode 100644 Open-ILS/src/extras/install/Makefile.ubuntu-xenial
+
+commit 233e14df23361ef2e14e086be57d584ecb3eaca4
+Author: Ben Shum <ben at evergreener.net>
+Date:   Mon Feb 29 01:14:38 2016 -0500
+
+    LP#1551084: Symlink for 000.english.pg95.fts-config.sql
+    
+    We need this so that the eg_db_config script can make the Evergreen
+    database with PostgreSQL 9.5 systems.
+    
+    Signed-off-by: Ben Shum <ben at evergreener.net>
+    Signed-off-by: Jason Stephenson <jason at sigio.com>
+
+1	0	Open-ILS/src/sql/Pg/000.english.pg95.fts-config.sql
+ create mode 120000 Open-ILS/src/sql/Pg/000.english.pg95.fts-config.sql
+
+commit 463f5358841f1ec668290ad598dc0e83b9e8fc90
+Author: Ben Shum <ben at evergreener.net>
+Date:   Wed May 4 12:59:01 2016 -0400
+
+    LP#1568046: Stamping upgrade script for changes to permission.grp_ancestors
+    
+    Signed-off-by: Ben Shum <ben at evergreener.net>
+
+1	1	Open-ILS/src/sql/Pg/002.schema.config.sql
+62	0	Open-ILS/src/sql/Pg/upgrade/0979.function.grp-tree-functions-via-cte.sql
+0	60	Open-ILS/src/sql/Pg/upgrade/XXXX.function.grp-tree-functions-via-cte.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/0979.function.grp-tree-functions-via-cte.sql
+ delete mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.function.grp-tree-functions-via-cte.sql
+
+commit 5a4a6518b5ba10ab3b14bc0bd9530d47096fb29c
+Author: Jason Stephenson <jstephenson at mvlcstaff.org>
+Date:   Fri Apr 8 15:30:32 2016 -0400
+
+    LP#1568046: Fix some mistakes in previous commit.
+    
+    Looks like a few thinkos crept in from it being dashed off in a hurry.
+    
+    Signed-off-by: Jason Stephenson <jstephenson at mvlcstaff.org>
+    Signed-off-by: Ben Shum <ben at evergreener.net>
+
+8	8	Open-ILS/src/sql/Pg/006.schema.permissions.sql
+8	8	Open-ILS/src/sql/Pg/upgrade/XXXX.function.grp-tree-functions-via-cte.sql
+
+commit 452c4de9ed109717b216154fccd031aeb6e02007
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Fri Apr 8 14:49:10 2016 -0400
+
+    LP#1568046: Use CTE instead of connectby for group tree queries
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Jason Stephenson <jstephenson at mvlcstaff.org>
+    Signed-off-by: Ben Shum <ben at evergreener.net>
+
+48	11	Open-ILS/src/sql/Pg/006.schema.permissions.sql
+60	0	Open-ILS/src/sql/Pg/upgrade/XXXX.function.grp-tree-functions-via-cte.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.function.grp-tree-functions-via-cte.sql
+
+commit e6f79f6abe4ae4943c29cdf1c823f8e3d1f21c37
+Author: Jason Stephenson <jstephenson at mvlcstaff.org>
+Date:   Fri Apr 29 07:48:44 2016 -0400
+
+    Add entries to .mailmap.
+    
+    Signed-off-by: Jason Stephenson <jstephenson at mvlcstaff.org>
+
+3	0	.mailmap
+
+commit 2026b4bb6716d8c2ce34f21fbc007294d52e3e5e
+Author: Jane Sandberg <sandbej at linnbenton.edu>
+Date:   Tue Mar 15 11:59:44 2016 -0700
+
+    LP1494346: Docs syntax error
+    
+    Signed-off-by: Jane Sandberg <sandbej at linnbenton.edu>
+
+2	2	docs/cataloging/physical_char_wizard.txt
+
+commit b51c2799600c2e154591e41b657a61c306bcd35b
+Author: Jane Sandberg <sandbej at linnbenton.edu>
+Date:   Tue Mar 15 11:36:01 2016 -0700
+
+    Adding more information about authorities+Vandelay
+    
+    Signed-off-by: Jane Sandberg <sandbej at linnbenton.edu>
+
+6	1	docs/cataloging/authorities.txt
+
+commit 8c1035bbd5821cd5b183a0aff895f48d6829bd80
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Wed Apr 20 11:20:36 2016 -0400
+
+    LP#1554714: update to latest Collapse attribute
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+1	1	Open-ILS/src/templates/staff/cat/share/t_marcedit.tt2
+
+commit a07656a4f6fda9c50d6b8acc0e4774506bc659bf
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Wed Apr 20 11:11:47 2016 -0400
+
+    LP#1554714: final $modal => $uibModal
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+22	22	Open-ILS/web/js/ui/default/staff/cat/item/app.js
+
+commit 87debaaadab41bb05d7a494f7ff1316452c70a48
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Wed Apr 20 11:07:43 2016 -0400
+
+    LP#1554714: more drop-down fixes
+    
+    Should be the last of them.
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+3	3	Open-ILS/src/templates/staff/cat/bucket/copy/t_bucket_selector.tt2
+3	3	Open-ILS/src/templates/staff/cat/bucket/record/t_bucket_selector.tt2
+3	3	Open-ILS/src/templates/staff/cat/catalog/t_catalog.tt2
+3	3	Open-ILS/src/templates/staff/cat/item/index.tt2
+6	6	Open-ILS/src/templates/staff/cat/share/t_physchar_wizard.tt2
+
+commit c70a1988ed2be80559d1f79b420d60180afeb4f5
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Wed Apr 20 11:03:06 2016 -0400
+
+    LP#1554714: specify resolution to make angular-animate happy
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+3	0	Open-ILS/web/js/ui/default/staff/bower.json
+
+commit f64cb46b636d175fb5d2ea9ec5420ef7d29160b7
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Wed Apr 20 10:50:27 2016 -0400
+
+    LP#1554714: fix up more drop-down menus
+    
+    This patch intentionally doesn't change templates
+    under cat/; that will come later.
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+3	3	Open-ILS/src/templates/staff/admin/local/circ/age_to_lost.tt2
+3	3	Open-ILS/src/templates/staff/admin/workstation/t_print_config.tt2
+3	3	Open-ILS/src/templates/staff/circ/checkin/t_checkin.tt2
+3	3	Open-ILS/src/templates/staff/circ/in_house_use/index.tt2
+3	3	Open-ILS/src/templates/staff/circ/patron/index.tt2
+3	3	Open-ILS/src/templates/staff/circ/patron/t_checkout.tt2
+12	12	Open-ILS/src/templates/staff/circ/patron/t_edit.tt2
+3	3	Open-ILS/src/templates/staff/circ/patron/t_patron_groups_dialog.tt2
+3	3	Open-ILS/src/templates/staff/circ/patron/t_search.tt2
+15	15	Open-ILS/src/templates/staff/share/t_autogrid.tt2
+
+commit 0705bc6051840c6b8783b52ea8246b0790eb79fb
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Wed Apr 20 10:19:40 2016 -0400
+
+    LP#1554714: (indirectly) bump up PhantomJS version
+    
+    It turns out that PhantomJS 2 or later is required for
+    angular-mocks to succesfully inject dependencies; this patch
+    updates karma-phantomjs-launcher to a version that will
+    bring in a recent-enough version of PhantomJS.
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+1	1	Open-ILS/web/js/ui/default/staff/package.json
+
+commit d7c5cd3dcf5abca7b7c2bc46ccf808bcfd135419
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Thu Apr 14 10:36:13 2016 -0400
+
+    LP#1554714 Ang 1.5 org unit dropdown repair
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+
+3	3	Open-ILS/web/js/ui/default/staff/services/ui.js
+
+commit e0c30a7bd6d05fe9b3e263095838739d5d8af8c0
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Thu Apr 14 10:19:24 2016 -0400
+
+    LP#1554714 ng-date-input -> eg-date-input typo
+    
+    We're using eg-date-input, not ng-date-input.
+    
+    Thanks to Mike Rylander for pointing this out.
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+
+1	1	Open-ILS/src/templates/staff/circ/share/t_hold_dates.tt2
+
+commit 0d31cec39723e90643f09d69a278a4e17350c5a9
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Thu Mar 17 10:26:42 2016 -0400
+
+    LP#1554714 Ang. 1.5 navbar menu repairs
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+
+21	29	Open-ILS/src/templates/staff/navbar.tt2
+
+commit 10f15b04854296c78b35224af1784cced716916a
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Wed Mar 16 18:10:12 2016 -0400
+
+    LP#1554714 Ang 1.5 requires service to return an object
+    
+    Return a {} from the dummy patronSvc service used by the standalone
+    patron editor.  Ang 1.5 requires services to return non-null.
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+
+1	1	Open-ILS/web/js/ui/default/staff/circ/patron/register.js
+
+commit f9b0b5a7fd0424a5c63cfa545749134d8d91b538
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Wed Mar 16 18:09:51 2016 -0400
+
+    LP#1554714 eg-date-input relays ng-blur
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+
+3	1	Open-ILS/src/templates/staff/share/t_datetime.tt2
+1	0	Open-ILS/web/js/ui/default/staff/services/ui.js
+
+commit 2c20d1ce06dd7636e0fae03f1da9faefd494e830
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Thu Mar 10 13:08:00 2016 -0500
+
+    LP#1554714 Migrate eg-date-input to ui-datepicker-popup
+    
+    Also add support for uib-timepicker as an option secondary component of
+    the input.
+    
+    Refactor existing use of eg-date-input to use <eg-date-input/>-style
+    declaration to better differentiate between a normal <input> and the
+    more complete/stylized date input div.
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+
+1	0	Open-ILS/src/templates/staff/base_js.tt2
+1	2	Open-ILS/src/templates/staff/circ/checkin/t_checkin.tt2
+22	11	Open-ILS/src/templates/staff/circ/patron/t_bill_history.tt2
+1	2	Open-ILS/src/templates/staff/circ/patron/t_checkout.tt2
+8	10	Open-ILS/src/templates/staff/circ/patron/t_edit.tt2
+3	3	Open-ILS/src/templates/staff/circ/patron/t_edit_due_date_dialog.tt2
+12	7	Open-ILS/src/templates/staff/circ/patron/t_messages.tt2
+1	2	Open-ILS/src/templates/staff/circ/patron/t_renew_with_date_dialog.tt2
+1	1	Open-ILS/src/templates/staff/circ/renew/t_renew.tt2
+1	2	Open-ILS/src/templates/staff/circ/share/t_backdate_dialog.tt2
+11	7	Open-ILS/src/templates/staff/circ/share/t_hold_dates.tt2
+3	2	Open-ILS/src/templates/staff/circ/share/t_mark_claims_returned_dialog.tt2
+38	0	Open-ILS/src/templates/staff/share/t_datetime.tt2
+20	35	Open-ILS/web/js/ui/default/staff/services/ui.js
+ create mode 100644 Open-ILS/src/templates/staff/share/t_datetime.tt2
+
+commit 9643e60d45a84a8562b8228b3d1d14ac0a93a25e
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Wed Mar 9 14:00:27 2016 -0500
+
+    LP#1554714 Patron reg DoB via datepicker
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+
+4	1	Open-ILS/src/templates/staff/circ/patron/t_edit.tt2
+
+commit 636812ad7cba1f3aca1a5038485c4d4a91736844
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Wed Mar 9 14:01:31 2016 -0500
+
+    LP#1554714 Patron reg DoB parse month bug repair
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+
+1	1	Open-ILS/web/js/ui/default/staff/circ/patron/regctl.js
+
+commit 34f53d9225556ec4553e5ddc4c5ed6fd09bd7b72
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Wed Mar 9 08:38:41 2016 -0500
+
+    LP#1554714 Patron reg 1.5 controller consolidation
+    
+    Angular 1.4+ requires that each controller be instantiated via the
+    module.controller() function.  No more global functions.  The patron
+    reg. controller, shared by 2 different modules, was defined as a global
+    function.  Resolve this by hanging it off the core module (when loaded).
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+
+7	8	Open-ILS/web/js/ui/default/staff/circ/patron/regctl.js
+0	1	Open-ILS/web/js/ui/default/staff/circ/patron/register.js
+
+commit 31dc20a3bdc4e0debe69ff41be8bed1a2ab8d410
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Tue Mar 8 16:12:48 2016 -0500
+
+    LP#1554714 angular-bootstrap 1.4 uibModal migration
+    
+    angular-bootstrap's $modal module is now known as $uibModal.  Ditto
+    $uibModalInstance.
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+
+25	25	Open-ILS/web/js/ui/default/staff/cat/bucket/copy/app.js
+36	36	Open-ILS/web/js/ui/default/staff/cat/bucket/record/app.js
+37	37	Open-ILS/web/js/ui/default/staff/cat/catalog/app.js
+6	6	Open-ILS/web/js/ui/default/staff/cat/services/holdings.js
+19	19	Open-ILS/web/js/ui/default/staff/cat/services/marcedit.js
+7	7	Open-ILS/web/js/ui/default/staff/cat/volcopy/app.js
+22	22	Open-ILS/web/js/ui/default/staff/cat/z3950/app.js
+16	16	Open-ILS/web/js/ui/default/staff/circ/patron/app.js
+2	4	Open-ILS/web/js/ui/default/staff/circ/patron/bills.js
+2	2	Open-ILS/web/js/ui/default/staff/circ/patron/checkout.js
+12	12	Open-ILS/web/js/ui/default/staff/circ/patron/items_out.js
+13	15	Open-ILS/web/js/ui/default/staff/circ/patron/regctl.js
+7	7	Open-ILS/web/js/ui/default/staff/circ/services/billing.js
+62	62	Open-ILS/web/js/ui/default/staff/circ/services/circ.js
+44	44	Open-ILS/web/js/ui/default/staff/circ/services/holds.js
+20	20	Open-ILS/web/js/ui/default/staff/services/ui.js
+
+commit 43e7bc4fb44f46fc6374fb626e01004fcdf2d950
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Tue Mar 8 16:01:15 2016 -0500
+
+    LP#1554714 Browser client dependency updates note
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+
+20	0	Open-ILS/web/js/ui/default/staff/README.install
+
+commit 2b67c0ddf140b1667a3f0eff73af839740bd8302
+Author: Bill Erickson <berickxx at gmail.com>
+Date:   Tue Mar 8 15:58:33 2016 -0500
+
+    LP#1554714 Angular 1.5 + deps bower.json updates
+    
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+
+9	11	Open-ILS/web/js/ui/default/staff/bower.json
+
+commit 4db8e49cf355eb03f353041bc3679dab935bd9f4
+Author: Jason Stephenson <jason at sigio.com>
+Date:   Thu Apr 21 23:29:42 2016 -0400
+
+    LP#1573372: Opt-in test broken because it uses bail-out.
+    
+    Use skip instead!
+    
+    Signed-off-by: Jason Stephenson <jason at sigio.com>
+    Signed-off-by: Ben Shum <ben at evergreener.net>
+
+115	116	Open-ILS/src/perlmods/live_t/15-lp1533329-opt-in.t
+
+commit 9ed71b6bb17b9c15b700b48999d9014168deff63
+Author: Jason Stephenson <jason at sigio.com>
+Date:   Thu Apr 21 23:00:09 2016 -0400
+
+    LP#1573364: Use a timezone in the future backdate checkin test.
+    
+    Signed-off-by: Jason Stephenson <jason at sigio.com>
+    Signed-off-by: Ben Shum <ben at evergreener.net>
+
+1	1	Open-ILS/src/perlmods/live_t/11-lp1481036-future-backdate.t
+
+commit ffd11aefdca6c119ab2bba456ef1f2fa778e2ee3
+Author: Jason Stephenson <jason at sigio.com>
+Date:   Sat Mar 26 20:16:34 2016 -0400
+
+    LP 1562426: Renumber Perl live_t tests.
+    
+    We had some overlap in numbers at the beginning of test file names.
+    The OCD in me think this should be straightened out.  This branch
+    renumbers the duplicates starting with 10-.
+    
+    Signed-off-by: Jason Stephenson <jason at sigio.com>
+    Signed-off-by: Ben Shum <ben at evergreener.net>
+
+0	36	Open-ILS/src/perlmods/live_t/10-lp1481036-future-backdate.t
+0	38	Open-ILS/src/perlmods/live_t/10-lp1484989_dont_close_fined_xacts.t
+0	43	Open-ILS/src/perlmods/live_t/11-lp1240119-safe-token-activity.t
+36	0	Open-ILS/src/perlmods/live_t/11-lp1481036-future-backdate.t
+38	0	Open-ILS/src/perlmods/live_t/12-lp1484989_dont_close_fined_xacts.t
+0	252	Open-ILS/src/perlmods/live_t/12-lp1499123_csp_ignore_proximity.t
+0	174	Open-ILS/src/perlmods/live_t/12-lp1533329-opt-in.t
+0	88	Open-ILS/src/perlmods/live_t/13-acq-invoicing.t
+43	0	Open-ILS/src/perlmods/live_t/13-lp1240119-safe-token-activity.t
+252	0	Open-ILS/src/perlmods/live_t/14-lp1499123_csp_ignore_proximity.t
+174	0	Open-ILS/src/perlmods/live_t/15-lp1533329-opt-in.t
+88	0	Open-ILS/src/perlmods/live_t/16-acq-invoicing.t
+ delete mode 100644 Open-ILS/src/perlmods/live_t/10-lp1481036-future-backdate.t
+ delete mode 100644 Open-ILS/src/perlmods/live_t/10-lp1484989_dont_close_fined_xacts.t
+ delete mode 100644 Open-ILS/src/perlmods/live_t/11-lp1240119-safe-token-activity.t
+ create mode 100644 Open-ILS/src/perlmods/live_t/11-lp1481036-future-backdate.t
+ create mode 100644 Open-ILS/src/perlmods/live_t/12-lp1484989_dont_close_fined_xacts.t
+ delete mode 100644 Open-ILS/src/perlmods/live_t/12-lp1499123_csp_ignore_proximity.t
+ delete mode 100644 Open-ILS/src/perlmods/live_t/12-lp1533329-opt-in.t
+ delete mode 100644 Open-ILS/src/perlmods/live_t/13-acq-invoicing.t
+ create mode 100644 Open-ILS/src/perlmods/live_t/13-lp1240119-safe-token-activity.t
+ create mode 100644 Open-ILS/src/perlmods/live_t/14-lp1499123_csp_ignore_proximity.t
+ create mode 100644 Open-ILS/src/perlmods/live_t/15-lp1533329-opt-in.t
+ create mode 100644 Open-ILS/src/perlmods/live_t/16-acq-invoicing.t
+
+commit 7212b5074df1cda1af1aef2ec6a7aa600c3c6c04
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Thu Mar 31 16:50:51 2016 -0400
+
+    LP#1570091: webstaff: fix typo
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+1	1	Open-ILS/src/templates/staff/cat/catalog/t_holdings.tt2
+
+commit 5435c0ec37d218ffeb59a5bc84b31d9a2f644af5
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Thu Mar 31 16:47:02 2016 -0400
+
+    LP#1570091: webstaff: fix transfer Volumes to Previously Marked Library
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+1	1	Open-ILS/src/templates/staff/cat/catalog/t_holdings.tt2
+6	2	Open-ILS/web/js/ui/default/staff/cat/catalog/app.js
+
+commit 15fa6be7eba1ed9f8968f99f890e8db0a517fd6c
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Wed Mar 30 22:13:43 2016 -0400
+
+    LP#1570091: webstaff: isolate the scope of eg-status-bar
+    
+    The messages array was fighting with ngToast's
+    messages array... and winning.
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+2	1	Open-ILS/web/js/ui/default/staff/services/statusbar.js
+
+commit 66d120bdd8f10ac907a5654f4bf5f18a1d325d82
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Wed Mar 30 17:25:06 2016 -0400
+
+    LP#1570091: webstaff: make use of ngToast for holdings action notifications
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+14	0	Open-ILS/src/templates/staff/cat/catalog/index.tt2
+20	3	Open-ILS/web/js/ui/default/staff/cat/catalog/app.js
+
+commit 05a95958d49e6b9fdbd2d817e8261d9e1a57bb58
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Wed Mar 30 17:24:32 2016 -0400
+
+    LP#1570091: webstaff: fix deps for ngToast, and put it in place gloablly
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+1	0	Open-ILS/src/templates/staff/base.tt2
+2	0	Open-ILS/src/templates/staff/base_js.tt2
+6	0	Open-ILS/web/js/ui/default/staff/Gruntfile.js
+2	1	Open-ILS/web/js/ui/default/staff/bower.json
+
+commit c309391a11a21db0b55444ddc35c4bdefbc5138f
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Wed Mar 30 13:32:23 2016 -0400
+
+    LP#1570091: webstaff: add tree control and a simple toaster for notifications
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+4	0	Open-ILS/src/templates/staff/base.tt2
+2	0	Open-ILS/src/templates/staff/base_js.tt2
+14	2	Open-ILS/web/js/ui/default/staff/Gruntfile.js
+3	1	Open-ILS/web/js/ui/default/staff/bower.json
+
+commit b7e42d60141bdf73d104017e6ead3509d73088a9
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Fri Mar 25 16:30:02 2016 -0400
+
+    LP#1570091: webstaff: always check for duplciate barcodes
+    
+    ... and disallow saving if critical data is missing
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+4	4	Open-ILS/src/templates/staff/cat/volcopy/t_edit.tt2
+1	1	Open-ILS/src/templates/staff/share/t_autogrid.tt2
+31	10	Open-ILS/web/js/ui/default/staff/cat/volcopy/app.js
+
+commit 5001213edf127746fdcc9307c5bde5ea18c82da8
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Fri Mar 25 13:52:54 2016 -0400
+
+    LP#1539084: webstaff: sort column picker entries by class path and column labels
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    
+    Conflicts:
+    	Open-ILS/web/js/ui/default/staff/services/grid.js
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+26	12	Open-ILS/web/js/ui/default/staff/services/grid.js
+
+commit 3a1efa015770a67b5726d922611c5d8f91560414
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Fri Mar 4 12:34:27 2016 -0500
+
+    LP#1570091: webstaff: make the vandelay page taller
+    
+    ... to support extra-large queue inspection interfaces
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+1	1	Open-ILS/web/js/ui/default/staff/services/eframe.js
+
+commit fc007e72a960d93bac7ed514a9bc4f1b8d525240
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Fri Mar 4 12:14:07 2016 -0500
+
+    LP#1570091: webstaff: Add Cancel Transit action to item status
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+9	7	Open-ILS/src/templates/staff/cat/item/t_list.tt2
+9	0	Open-ILS/web/js/ui/default/staff/cat/item/app.js
+
+commit 3b311dfb1d6742880d17b479cf28552165e35d06
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Thu Mar 3 14:12:37 2016 -0500
+
+    LP#1570091: webstaff: indicate warning/error conditions in volcopy editor
+    
+    Indicate when the user has an empty barcode, duplicate barcode,
+    or empty call number label.
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+3	0	Open-ILS/src/templates/staff/cat/volcopy/t_edit.tt2
+38	2	Open-ILS/web/js/ui/default/staff/cat/volcopy/app.js
+
+commit 84e988e9684f4a445a820afcb5f8933bb7796f5f
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Thu Mar 3 12:13:08 2016 -0500
+
+    LP#1570091: webstaff: adding item status actions
+    
+      - add items to bucket
+      - request items
+      - Link as Conjoined to Previously Marked Bib Record
+      - Delete Copies
+      - Check In Copies
+      - Renew Copies
+      - Show Triggered Events
+      - Show Item Holds
+      - Show Record Holds
+      - Mark Item As Damaged
+      - Mark Item as Missing
+      - Add Copies
+      - Add Volumes and Copies
+      - Edit Volumes
+      - Edit Copies
+      - Edit Volumes and Copies
+      - Replace Barcodes
+      - Transfer Items to Previously Marked Library
+      - Transfer Items to Previously Marked Volume
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+20	0	Open-ILS/src/templates/staff/cat/item/index.tt2
+44	0	Open-ILS/src/templates/staff/cat/item/t_list.tt2
+567	3	Open-ILS/web/js/ui/default/staff/cat/item/app.js
+
+commit 1f0af17da634454c59ca62af07db95db212fcbe5
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Wed Feb 24 11:32:50 2016 -0500
+
+    LP#1570091: webstaff: fix handling of default copy status
+    
+    The status must be an int, so we cast it when coming from an YAOUS
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+3	2	Open-ILS/web/js/ui/default/staff/cat/volcopy/app.js
+
+commit 4d4807e49c3f2f18f7ec1340182193a5c50deab3
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Wed Feb 24 11:02:42 2016 -0500
+
+    LP#1570091: Show (index / hit count) in the Back To Results button
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    
+    Conflicts:
+    	Open-ILS/src/templates/opac/parts/record/navigation.tt2
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+5	0	Open-ILS/src/templates/opac/parts/record/navigation.tt2
+1	1	Open-ILS/src/templates/staff/cat/catalog/t_catalog.tt2
+19	0	Open-ILS/web/js/ui/default/staff/cat/catalog/app.js
+
+commit 275d24ece6f3d722c9c8f682ab0f79566590e603
+Author: Mike Rylander <mrylander at gmail.com>
+Date:   Wed Feb 24 09:54:29 2016 -0500
+
+    LP#1570091: webstaff: tweak display of fixed fields in MARC editor
+    
+    - Add border to FF boxes
+    - align Source mnewmonic for the day that the seed data exists
+    
+    Signed-off-by: Mike Rylander <mrylander at gmail.com>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+
+1	2	Open-ILS/src/templates/staff/cat/share/t_marcedit.tt2
+4	0	Open-ILS/src/templates/staff/css/cat.css.tt2
+2	0	Open-ILS/web/js/ui/default/staff/cat/services/marcedit.js
+
+commit 24da1cc22d4dd029b2d888d0380854ac6209ad59
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Mon Mar 21 09:44:01 2016 -0400
+
+    clear slate of RELEASE_NOTES_NEXT entries
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+
+0	6	docs/RELEASE_NOTES_NEXT/Acquisitions/add_cancel_reason_85.adoc
+0	6	docs/RELEASE_NOTES_NEXT/Circulation/selfcheck_printing_fines.adoc
+0	5	docs/RELEASE_NOTES_NEXT/Circulation/selfcheck_printing_holds.adoc
+ delete mode 100644 docs/RELEASE_NOTES_NEXT/Acquisitions/add_cancel_reason_85.adoc
+ delete mode 100644 docs/RELEASE_NOTES_NEXT/Circulation/selfcheck_printing_fines.adoc
+ delete mode 100644 docs/RELEASE_NOTES_NEXT/Circulation/selfcheck_printing_holds.adoc
+
+commit 3559cd95e1bdc4012c05919e586e3b78eb23d8c8
+Author: Galen Charlton <gmc at esilibrary.com>
+Date:   Thu Mar 17 17:25:14 2016 -0400
+
+    forward-port 2.10.0 release notes
+    
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+
+1136	0	docs/RELEASE_NOTES_2_10.adoc
+ create mode 100644 docs/RELEASE_NOTES_2_10.adoc
+
+commit 0c131c677fdd4db27f70b3f50e28b6525d888468
+Author: Terran McCanna <tmccanna at georgialibraries.org>
+Date:   Mon Feb 29 17:45:43 2016 -0500
+
+    LP#1551451 Hide OPAC footer when viewed inside staff client
+    
+    This patch hides the contents of opac/parts/footer.tt2 if being
+    viewed in a 'staff' context.
+    
+    To test, view same OPAC pages through browser and through Staff Client.
+    
+    Signed-off-by: Terran McCanna <tmccanna at georgialibraries.org>
+    Signed-off-by: Erica Rohlfs <erohfls at esilibrary.com>
+    Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+
+2	0	Open-ILS/src/templates/opac/parts/footer.tt2
diff --git a/Open-ILS/src/perlmods/lib/OpenILS/Application.pm b/Open-ILS/src/perlmods/lib/OpenILS/Application.pm
index d750216..c303cfd 100644
--- a/Open-ILS/src/perlmods/lib/OpenILS/Application.pm
+++ b/Open-ILS/src/perlmods/lib/OpenILS/Application.pm
@@ -7,7 +7,7 @@ use OpenILS::Utils::Fieldmapper;
 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-11-0";
 }
 
 __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 5db1ee3..3d74dce 100644
--- a/Open-ILS/src/sql/Pg/002.schema.config.sql
+++ b/Open-ILS/src/sql/Pg/002.schema.config.sql
@@ -92,6 +92,7 @@ CREATE TRIGGER no_overlapping_deps
     FOR EACH ROW EXECUTE PROCEDURE evergreen.array_overlap_check ('deprecates');
 
 INSERT INTO config.upgrade_log (version, applied_to) VALUES ('1000', :eg_version); -- bshum/dbwells
+INSERT INTO config.upgrade_log (version, applied_to) VALUES ('2.11.0', :eg_version);
 
 CREATE TABLE config.bib_source (
 	id		SERIAL	PRIMARY KEY,
diff --git a/Open-ILS/src/sql/Pg/version-upgrade/2.10.7-2.11.0-upgrade-db.sql b/Open-ILS/src/sql/Pg/version-upgrade/2.10.7-2.11.0-upgrade-db.sql
new file mode 100644
index 0000000..23959d3
--- /dev/null
+++ b/Open-ILS/src/sql/Pg/version-upgrade/2.10.7-2.11.0-upgrade-db.sql
@@ -0,0 +1,3351 @@
+--Upgrade Script for 2.10.7 to 2.11.0
+\set eg_version '''2.11.0'''
+BEGIN;
+INSERT INTO config.upgrade_log (version, applied_to) VALUES ('2.11.0', :eg_version);
+
+SELECT evergreen.upgrade_deps_block_check('0979', :eg_version);
+
+-- Replace connectby from the tablefunc extension with CTEs
+
+
+CREATE OR REPLACE FUNCTION permission.grp_ancestors( INT ) RETURNS SETOF permission.grp_tree AS $$
+    WITH RECURSIVE grp_ancestors_distance(id, distance) AS (
+            SELECT $1, 0
+        UNION
+            SELECT ou.parent, ouad.distance+1
+            FROM permission.grp_tree ou JOIN grp_ancestors_distance ouad ON (ou.id = ouad.id)
+            WHERE ou.parent IS NOT NULL
+    )
+    SELECT ou.* FROM permission.grp_tree ou JOIN grp_ancestors_distance ouad USING (id) ORDER BY ouad.distance DESC;
+$$ LANGUAGE SQL ROWS 1;
+
+-- Add a utility function to find descendant groups.
+
+CREATE OR REPLACE FUNCTION permission.grp_descendants( INT ) RETURNS SETOF permission.grp_tree AS $$
+    WITH RECURSIVE descendant_depth AS (
+        SELECT  gr.id,
+                gr.parent
+          FROM  permission.grp_tree gr
+          WHERE gr.id = $1
+            UNION ALL
+        SELECT  gr.id,
+                gr.parent
+          FROM  permission.grp_tree gr
+                JOIN descendant_depth dd ON (dd.id = gr.parent)
+    ) SELECT gr.* FROM permission.grp_tree gr JOIN descendant_depth USING (id);
+$$ LANGUAGE SQL ROWS 1;
+
+-- Add utility functions to work with permission groups as general tree-ish sets.
+
+CREATE OR REPLACE FUNCTION permission.grp_tree_full_path ( INT ) RETURNS SETOF permission.grp_tree AS $$
+        SELECT  *
+          FROM  permission.grp_ancestors($1)
+                        UNION
+        SELECT  *
+          FROM  permission.grp_descendants($1);
+$$ LANGUAGE SQL STABLE ROWS 1;
+
+CREATE OR REPLACE FUNCTION permission.grp_tree_combined_ancestors ( INT, INT ) RETURNS SETOF permission.grp_tree AS $$
+        SELECT  *
+          FROM  permission.grp_ancestors($1)
+                        UNION
+        SELECT  *
+          FROM  permission.grp_ancestors($2);
+$$ LANGUAGE SQL STABLE ROWS 1;
+
+CREATE OR REPLACE FUNCTION permission.grp_tree_common_ancestors ( INT, INT ) RETURNS SETOF permission.grp_tree AS $$
+        SELECT  *
+          FROM  permission.grp_ancestors($1)
+                        INTERSECT
+        SELECT  *
+          FROM  permission.grp_ancestors($2);
+$$ LANGUAGE SQL STABLE ROWS 1;
+
+
+
+SELECT evergreen.upgrade_deps_block_check('0980', :eg_version);
+
+ALTER TABLE vandelay.merge_profile ADD COLUMN update_bib_source BOOLEAN NOT NULL DEFAULT false;
+UPDATE vandelay.merge_profile SET update_bib_source = true WHERE id=2;
+
+CREATE OR REPLACE FUNCTION vandelay.overlay_bib_record ( import_id BIGINT, eg_id BIGINT, merge_profile_id INT ) RETURNS BOOL AS $$
+DECLARE
+    editor_string   TEXT;
+    editor_id       INT;
+    v_marc          TEXT;
+    v_bib_source    INT;
+    update_fields   TEXT[];
+    update_query    TEXT;
+    update_bib      BOOL;
+BEGIN
+
+    SELECT  q.marc, q.bib_source INTO v_marc, v_bib_source
+      FROM  vandelay.queued_bib_record q
+            JOIN vandelay.bib_match m ON (m.queued_record = q.id AND q.id = import_id)
+      LIMIT 1;
+
+    IF v_marc IS NULL THEN
+        -- RAISE NOTICE 'no marc for vandelay or bib record';
+        RETURN FALSE;
+    END IF;
+
+    IF vandelay.template_overlay_bib_record( v_marc, eg_id, merge_profile_id) THEN
+        UPDATE  vandelay.queued_bib_record
+          SET   imported_as = eg_id,
+                import_time = NOW()
+          WHERE id = import_id;
+
+	  SELECT q.update_bib_source INTO update_bib FROM vandelay.merge_profile q where q.id = merge_profile_id;
+
+          IF update_bib THEN
+		editor_string := (oils_xpath('//*[@tag="905"]/*[@code="u"]/text()',v_marc))[1];
+
+		IF editor_string IS NOT NULL AND editor_string <> '' THEN
+		    SELECT usr INTO editor_id FROM actor.card WHERE barcode = editor_string;
+
+		    IF editor_id IS NULL THEN
+			SELECT id INTO editor_id FROM actor.usr WHERE usrname = editor_string;
+		    END IF;
+
+		    IF editor_id IS NOT NULL THEN
+			--only update the edit date if we have a valid editor
+			update_fields := ARRAY_APPEND(update_fields, 'editor = ' || editor_id || ', edit_date = NOW()');
+		    END IF;
+		END IF;
+
+		IF v_bib_source IS NOT NULL THEN
+		    update_fields := ARRAY_APPEND(update_fields, 'source = ' || v_bib_source);
+		END IF;
+
+		IF ARRAY_LENGTH(update_fields, 1) > 0 THEN
+		    update_query := 'UPDATE biblio.record_entry SET ' || ARRAY_TO_STRING(update_fields, ',') || ' WHERE id = ' || eg_id || ';';
+		    --RAISE NOTICE 'query: %', update_query;
+		    EXECUTE update_query;
+		END IF;
+        END IF;
+
+        RETURN TRUE;
+    END IF;
+
+    -- RAISE NOTICE 'update of biblio.record_entry failed';
+
+    RETURN FALSE;
+
+END;
+$$ LANGUAGE PLPGSQL;
+
+
+SELECT evergreen.upgrade_deps_block_check('0982', :eg_version);
+
+CREATE OR REPLACE FUNCTION permission.usr_has_perm_at_nd(
+	user_id    IN INTEGER,
+	perm_code  IN TEXT
+)
+RETURNS SETOF INTEGER AS $$
+--
+-- Return a set of all the org units for which a given user has a given
+-- permission, granted directly (not through inheritance from a parent
+-- org unit).
+--
+-- The permissions apply to a minimum depth of the org unit hierarchy,
+-- for the org unit(s) to which the user is assigned.  (They also apply
+-- to the subordinates of those org units, but we don't report the
+-- subordinates here.)
+--
+-- For purposes of this function, the permission.usr_work_ou_map table
+-- defines which users belong to which org units.  I.e. we ignore the
+-- home_ou column of actor.usr.
+--
+-- The result set may contain duplicates, which should be eliminated
+-- by a DISTINCT clause.
+--
+DECLARE
+	b_super       BOOLEAN;
+	n_perm        INTEGER;
+	n_min_depth   INTEGER; 
+	n_work_ou     INTEGER;
+	n_curr_ou     INTEGER;
+	n_depth       INTEGER;
+	n_curr_depth  INTEGER;
+BEGIN
+	--
+	-- Check for superuser
+	--
+	SELECT INTO b_super
+		super_user
+	FROM
+		actor.usr
+	WHERE
+		id = user_id;
+	--
+	IF NOT FOUND THEN
+		return;				-- No user?  No permissions.
+	ELSIF b_super THEN
+		--
+		-- Super user has all permissions everywhere
+		--
+		FOR n_work_ou IN
+			SELECT
+				id
+			FROM
+				actor.org_unit
+			WHERE
+				parent_ou IS NULL
+		LOOP
+			RETURN NEXT n_work_ou; 
+		END LOOP;
+		RETURN;
+	END IF;
+	--
+	-- Translate the permission name
+	-- to a numeric permission id
+	--
+	SELECT INTO n_perm
+		id
+	FROM
+		permission.perm_list
+	WHERE
+		code = perm_code;
+	--
+	IF NOT FOUND THEN
+		RETURN;               -- No such permission
+	END IF;
+	--
+	-- Find the highest-level org unit (i.e. the minimum depth)
+	-- to which the permission is applied for this user
+	--
+	-- This query is modified from the one in permission.usr_perms().
+	--
+	SELECT INTO n_min_depth
+		min( depth )
+	FROM	(
+		SELECT depth 
+		  FROM permission.usr_perm_map upm
+		 WHERE upm.usr = user_id 
+		   AND (upm.perm = n_perm OR upm.perm = -1)
+       				UNION
+		SELECT	gpm.depth
+		  FROM	permission.grp_perm_map gpm
+		  WHERE	(gpm.perm = n_perm OR gpm.perm = -1)
+	        AND gpm.grp IN (
+	 		   SELECT	(permission.grp_ancestors(
+					(SELECT profile FROM actor.usr WHERE id = user_id)
+				)).id
+			)
+       				UNION
+		SELECT	p.depth
+		  FROM	permission.grp_perm_map p 
+		  WHERE (p.perm = n_perm OR p.perm = -1)
+		    AND p.grp IN (
+		  		SELECT (permission.grp_ancestors(m.grp)).id 
+				FROM   permission.usr_grp_map m
+				WHERE  m.usr = user_id
+			)
+	) AS x;
+	--
+	IF NOT FOUND THEN
+		RETURN;                -- No such permission for this user
+	END IF;
+	--
+	-- Identify the org units to which the user is assigned.  Note that
+	-- we pay no attention to the home_ou column in actor.usr.
+	--
+	FOR n_work_ou IN
+		SELECT
+			work_ou
+		FROM
+			permission.usr_work_ou_map
+		WHERE
+			usr = user_id
+	LOOP            -- For each org unit to which the user is assigned
+		--
+		-- Determine the level of the org unit by a lookup in actor.org_unit_type.
+		-- We take it on faith that this depth agrees with the actual hierarchy
+		-- defined in actor.org_unit.
+		--
+		SELECT INTO n_depth
+		    type.depth
+		FROM
+		    actor.org_unit_type type
+		        INNER JOIN actor.org_unit ou
+		            ON ( ou.ou_type = type.id )
+		WHERE
+		    ou.id = n_work_ou;
+		--
+		IF NOT FOUND THEN
+			CONTINUE;        -- Maybe raise exception?
+		END IF;
+		--
+		-- Compare the depth of the work org unit to the
+		-- minimum depth, and branch accordingly
+		--
+		IF n_depth = n_min_depth THEN
+			--
+			-- The org unit is at the right depth, so return it.
+			--
+			RETURN NEXT n_work_ou;
+		ELSIF n_depth > n_min_depth THEN
+			--
+			-- Traverse the org unit tree toward the root,
+			-- until you reach the minimum depth determined above
+			--
+			n_curr_depth := n_depth;
+			n_curr_ou := n_work_ou;
+			WHILE n_curr_depth > n_min_depth LOOP
+				SELECT INTO n_curr_ou
+					parent_ou
+				FROM
+					actor.org_unit
+				WHERE
+					id = n_curr_ou;
+				--
+				IF FOUND THEN
+					n_curr_depth := n_curr_depth - 1;
+				ELSE
+					--
+					-- This can happen only if the hierarchy defined in
+					-- actor.org_unit is corrupted, or out of sync with
+					-- the depths defined in actor.org_unit_type.
+					-- Maybe we should raise an exception here, instead
+					-- of silently ignoring the problem.
+					--
+					n_curr_ou = NULL;
+					EXIT;
+				END IF;
+			END LOOP;
+			--
+			IF n_curr_ou IS NOT NULL THEN
+				RETURN NEXT n_curr_ou;
+			END IF;
+		ELSE
+			--
+			-- The permission applies only at a depth greater than the work org unit.
+			-- Use connectby() to find all dependent org units at the specified depth.
+			--
+			FOR n_curr_ou IN
+				SELECT id
+				FROM actor.org_unit_descendants_distance(n_work_ou)
+				WHERE
+					distance = n_min_depth - n_depth
+			LOOP
+				RETURN NEXT n_curr_ou;
+			END LOOP;
+		END IF;
+		--
+	END LOOP;
+	--
+	RETURN;
+	--
+END;
+$$ LANGUAGE 'plpgsql' ROWS 1;
+
+
+CREATE OR REPLACE FUNCTION permission.usr_has_perm_at_all_nd(
+	user_id    IN INTEGER,
+	perm_code  IN TEXT
+)
+RETURNS SETOF INTEGER AS $$
+--
+-- Return a set of all the org units for which a given user has a given
+-- permission, granted either directly or through inheritance from a parent
+-- org unit.
+--
+-- The permissions apply to a minimum depth of the org unit hierarchy, and
+-- to the subordinates of those org units, for the org unit(s) to which the
+-- user is assigned.
+--
+-- For purposes of this function, the permission.usr_work_ou_map table
+-- assigns users to org units.  I.e. we ignore the home_ou column of actor.usr.
+--
+-- The result set may contain duplicates, which should be eliminated
+-- by a DISTINCT clause.
+--
+DECLARE
+	n_head_ou     INTEGER;
+	n_child_ou    INTEGER;
+BEGIN
+	FOR n_head_ou IN
+		SELECT DISTINCT * FROM permission.usr_has_perm_at_nd( user_id, perm_code )
+	LOOP
+		--
+		-- The permission applies only at a depth greater than the work org unit.
+		--
+		FOR n_child_ou IN
+            SELECT id
+            FROM actor.org_unit_descendants(n_head_ou)
+		LOOP
+			RETURN NEXT n_child_ou;
+		END LOOP;
+	END LOOP;
+	--
+	RETURN;
+	--
+END;
+$$ LANGUAGE 'plpgsql' ROWS 1;
+
+
+\qecho The tablefunc database extension is no longer necessary for Evergreen.
+\qecho Unless you use some of its functions in your own scripts, you may
+\qecho want to run the following command in the database to drop it:
+\qecho DROP EXTENSION tablefunc;
+
+
+SELECT evergreen.upgrade_deps_block_check('0983', :eg_version);
+
+-- Create these so that the queries in the UDFs will validate
+CREATE TEMP TABLE precalc_filter_bib_list (
+    id  BIGINT
+) ON COMMIT DROP;
+
+CREATE TEMP TABLE precalc_bib_filter_bib_list (
+    id  BIGINT
+) ON COMMIT DROP;
+
+CREATE TEMP TABLE precalc_src_filter_bib_list (
+    id  BIGINT
+) ON COMMIT DROP;
+
+CREATE TEMP TABLE precalc_copy_filter_bib_list (
+    id  BIGINT,
+    copy  BIGINT
+) ON COMMIT DROP;
+
+CREATE TEMP TABLE precalc_circ_mod_filter_bib_list (
+    id  BIGINT,
+    copy  BIGINT
+) ON COMMIT DROP;
+
+CREATE TEMP TABLE precalc_location_filter_bib_list (
+    id  BIGINT,
+    copy  BIGINT
+) ON COMMIT DROP;
+
+CREATE TEMP TABLE precalc_attr_filter_bib_list (
+    id  BIGINT
+) ON COMMIT DROP;
+
+CREATE TEMP TABLE precalc_bibs_by_copy_list (
+    id  BIGINT
+) ON COMMIT DROP;
+
+CREATE TEMP TABLE precalc_bibs_by_uri_list (
+    id  BIGINT
+) ON COMMIT DROP;
+
+CREATE TEMP TABLE precalc_bibs_by_copy_or_uri_list (
+    id  BIGINT
+) ON COMMIT DROP;
+
+CREATE TEMP TABLE precalc_bib_list (
+    id  BIGINT
+) ON COMMIT DROP;
+
+-- rhrr needs to be a real table, so it can be fast. To that end, we use
+-- a materialized view updated via a trigger.
+
+DROP VIEW reporter.hold_request_record;
+
+CREATE TABLE reporter.hold_request_record  AS
+SELECT  id,
+        target,
+        hold_type,
+        CASE
+                WHEN hold_type = 'T'
+                        THEN target
+                WHEN hold_type = 'I'
+                        THEN (SELECT ssub.record_entry FROM serial.subscription ssub JOIN serial.issuance si ON (si.subscription = ssub.id) WHERE si.id = ahr.target)
+                WHEN hold_type = 'V'
+                        THEN (SELECT cn.record FROM asset.call_number cn WHERE cn.id = ahr.target)
+                WHEN hold_type IN ('C','R','F')
+                        THEN (SELECT cn.record FROM asset.call_number cn JOIN asset.copy cp ON (cn.id = cp.call_number) WHERE cp.id = ahr.target)
+                WHEN hold_type = 'M'
+                        THEN (SELECT mr.master_record FROM metabib.metarecord mr WHERE mr.id = ahr.target)
+                WHEN hold_type = 'P'
+                        THEN (SELECT bmp.record FROM biblio.monograph_part bmp WHERE bmp.id = ahr.target)
+        END AS bib_record
+  FROM  action.hold_request ahr;
+
+CREATE UNIQUE INDEX reporter_hold_request_record_pkey_idx ON reporter.hold_request_record (id);
+CREATE INDEX reporter_hold_request_record_bib_record_idx ON reporter.hold_request_record (bib_record);
+
+ALTER TABLE reporter.hold_request_record ADD PRIMARY KEY USING INDEX reporter_hold_request_record_pkey_idx;
+
+CREATE FUNCTION reporter.hold_request_record_mapper () RETURNS TRIGGER AS $$
+BEGIN
+    IF TG_OP = 'INSERT' THEN
+        INSERT INTO reporter.hold_request_record (id, target, hold_type, bib_record)
+        SELECT  NEW.id,
+                NEW.target,
+                NEW.hold_type,
+                CASE
+                    WHEN NEW.hold_type = 'T'
+                        THEN NEW.target
+                    WHEN NEW.hold_type = 'I'
+                        THEN (SELECT ssub.record_entry FROM serial.subscription ssub JOIN serial.issuance si ON (si.subscription = ssub.id) WHERE si.id = NEW.target)
+                    WHEN NEW.hold_type = 'V'
+                        THEN (SELECT cn.record FROM asset.call_number cn WHERE cn.id = NEW.target)
+                    WHEN NEW.hold_type IN ('C','R','F')
+                        THEN (SELECT cn.record FROM asset.call_number cn JOIN asset.copy cp ON (cn.id = cp.call_number) WHERE cp.id = NEW.target)
+                    WHEN NEW.hold_type = 'M'
+                        THEN (SELECT mr.master_record FROM metabib.metarecord mr WHERE mr.id = NEW.target)
+                    WHEN NEW.hold_type = 'P'
+                        THEN (SELECT bmp.record FROM biblio.monograph_part bmp WHERE bmp.id = NEW.target)
+                END AS bib_record;
+    ELSIF TG_OP = 'UPDATE' AND (OLD.target <> NEW.target OR OLD.hold_type <> NEW.hold_type) THEN
+        UPDATE  reporter.hold_request_record
+          SET   target = NEW.target,
+                hold_type = NEW.hold_type,
+                bib_record = CASE
+                    WHEN NEW.hold_type = 'T'
+                        THEN NEW.target
+                    WHEN NEW.hold_type = 'I'
+                        THEN (SELECT ssub.record_entry FROM serial.subscription ssub JOIN serial.issuance si ON (si.subscription = ssub.id) WHERE si.id = NEW.target)
+                    WHEN NEW.hold_type = 'V'
+                        THEN (SELECT cn.record FROM asset.call_number cn WHERE cn.id = NEW.target)
+                    WHEN NEW.hold_type IN ('C','R','F')
+                        THEN (SELECT cn.record FROM asset.call_number cn JOIN asset.copy cp ON (cn.id = cp.call_number) WHERE cp.id = NEW.target)
+                    WHEN NEW.hold_type = 'M'
+                        THEN (SELECT mr.master_record FROM metabib.metarecord mr WHERE mr.id = NEW.target)
+                    WHEN NEW.hold_type = 'P'
+                        THEN (SELECT bmp.record FROM biblio.monograph_part bmp WHERE bmp.id = NEW.target)
+                END;
+    END IF;
+    RETURN NEW;
+END;
+$$ LANGUAGE PLPGSQL;
+
+CREATE TRIGGER reporter_hold_request_record_trigger AFTER INSERT OR UPDATE ON action.hold_request
+    FOR EACH ROW EXECUTE PROCEDURE reporter.hold_request_record_mapper();
+
+CREATE SCHEMA rating;
+
+INSERT INTO config.global_flag (name, label, value, enabled) VALUES (
+    'opac.default_sort',
+    'OPAC Default Sort (titlesort, authorsort, pubdate, popularity, poprel, or empty for relevance)',
+    '',
+    TRUE
+);
+
+INSERT INTO config.global_flag (name, label, value, enabled) VALUES (
+    'search.max_popularity_importance_multiplier',
+    oils_i18n_gettext(
+        'search.max_popularity_importance_multiplier',
+        'Maximum popularity importance multiplier for popularity-adjusted relevance searches (decimal value between 1.0 and 2.0)',
+        'cgf',
+        'label'
+    ),
+    '1.1',
+    TRUE
+);
+
+CREATE TABLE rating.popularity_parameter (
+    id          INT     PRIMARY KEY,
+    name        TEXT    NOT NULL UNIQUE, -- i18n
+    description TEXT,
+    func        TEXT,
+    require_horizon     BOOL    NOT NULL DEFAULT FALSE,
+    require_importance  BOOL    NOT NULL DEFAULT FALSE,
+    require_percentile  BOOL    NOT NULL DEFAULT FALSE
+);
+
+INSERT INTO rating.popularity_parameter (id,name,func,require_horizon,require_importance,require_percentile) VALUES
+    (1,'Holds Filled Over Time','rating.holds_filled_over_time',TRUE,FALSE,TRUE),
+    (2,'Holds Requested Over Time','rating.holds_placed_over_time',TRUE,FALSE,TRUE),
+    (3,'Current Hold Count','rating.current_hold_count',FALSE,FALSE,TRUE),
+    (4,'Circulations Over Time','rating.circs_over_time',TRUE,FALSE,TRUE),
+    (5,'Current Circulation Count','rating.current_circ_count',FALSE,FALSE,TRUE),
+    (6,'Out/Total Ratio','rating.checked_out_total_ratio',FALSE,FALSE,TRUE),
+    (7,'Holds/Total Ratio','rating.holds_total_ratio',FALSE,FALSE,TRUE),
+    (8,'Holds/Holdable Ratio','rating.holds_holdable_ratio',FALSE,FALSE,TRUE),
+    (9,'Percent of Time Circulating','rating.percent_time_circulating',FALSE,FALSE,TRUE),
+    (10,'Bibliographic Record Age (days, newer is better)','rating.bib_record_age',FALSE,FALSE,TRUE),
+    (11,'Publication Age (days, newer is better)','rating.bib_pub_age',FALSE,FALSE,TRUE),
+    (12,'On-line Bib has attributes','rating.generic_fixed_rating_by_uri',FALSE,FALSE,FALSE),
+    (13,'Bib has attributes and copies','rating.generic_fixed_rating_by_copy',FALSE,FALSE,FALSE),
+    (14,'Bib has attributes and copies or URIs','rating.generic_fixed_rating_by_copy_or_uri',FALSE,FALSE,FALSE),
+    (15,'Bib has attributes','rating.generic_fixed_rating_global',FALSE,FALSE,FALSE);
+
+CREATE TABLE rating.badge (
+    id                      SERIAL      PRIMARY KEY,
+    name                    TEXT        NOT NULL,
+    description             TEXT,
+    scope                   INT         NOT NULL REFERENCES actor.org_unit (id) ON UPDATE CASCADE ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED,
+    weight                  INT         NOT NULL DEFAULT 1,
+    horizon_age             INTERVAL,
+    importance_age          INTERVAL,
+    importance_interval     INTERVAL    NOT NULL DEFAULT '1 day',
+    importance_scale        NUMERIC     CHECK (importance_scale IS NULL OR importance_scale > 0.0),
+    recalc_interval         INTERVAL    NOT NULL DEFAULT '1 month',
+    attr_filter             TEXT,
+    src_filter              INT         REFERENCES config.bib_source (id) ON UPDATE CASCADE ON DELETE SET NULL DEFERRABLE INITIALLY DEFERRED,
+    circ_mod_filter         TEXT        REFERENCES config.circ_modifier (code) ON UPDATE CASCADE ON DELETE SET NULL DEFERRABLE INITIALLY DEFERRED,
+    loc_grp_filter          INT         REFERENCES asset.copy_location_group (id) ON UPDATE CASCADE ON DELETE SET NULL DEFERRABLE INITIALLY DEFERRED,
+    popularity_parameter    INT         NOT NULL REFERENCES rating.popularity_parameter (id) ON UPDATE CASCADE ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED,
+    fixed_rating            INT         CHECK (fixed_rating IS NULL OR fixed_rating BETWEEN -5 AND 5),
+    percentile              NUMERIC     CHECK (percentile IS NULL OR (percentile >= 50.0 AND percentile < 100.0)),
+    discard                 INT         NOT NULL DEFAULT 0, 
+    last_calc               TIMESTAMPTZ,
+    CONSTRAINT unique_name_scope UNIQUE (name,scope)
+);
+
+CREATE TABLE rating.record_badge_score (
+    id          BIGSERIAL   PRIMARY KEY,
+    record      BIGINT      NOT NULL REFERENCES biblio.record_entry (id) ON UPDATE CASCADE ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED,
+    badge       INT         NOT NULL REFERENCES rating.badge (id) ON UPDATE CASCADE ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED,
+    score       INT         NOT NULL CHECK (score BETWEEN -5 AND 5),
+    CONSTRAINT unique_record_badge UNIQUE (record,badge)
+);
+CREATE INDEX record_badge_score_badge_idx ON rating.record_badge_score (badge);
+CREATE INDEX record_badge_score_record_idx ON rating.record_badge_score (record);
+
+CREATE OR REPLACE VIEW rating.badge_with_orgs AS
+    WITH    org_scope AS (
+                SELECT  id,
+                        array_agg(tree) AS orgs
+                  FROM  (SELECT id,
+                                (actor.org_unit_descendants(id)).id AS tree
+                          FROM  actor.org_unit
+                        ) x
+                  GROUP BY 1
+            )
+    SELECT  b.*,
+            s.orgs
+      FROM  rating.badge b
+            JOIN org_scope s ON (b.scope = s.id);
+
+CREATE OR REPLACE FUNCTION rating.precalc_src_filter(src INT)
+    RETURNS INT AS $f$
+DECLARE
+    cnt     INT     := 0;
+BEGIN
+
+    SET LOCAL client_min_messages = error;
+    DROP TABLE IF EXISTS precalc_src_filter_bib_list;
+    IF src IS NOT NULL THEN
+        CREATE TEMP TABLE precalc_src_filter_bib_list ON COMMIT DROP AS
+            SELECT id FROM biblio.record_entry
+            WHERE source = src AND NOT deleted;
+    ELSE
+        CREATE TEMP TABLE precalc_src_filter_bib_list ON COMMIT DROP AS
+            SELECT id FROM biblio.record_entry
+            WHERE id > 0 AND NOT deleted;
+    END IF;
+
+    SELECT count(*) INTO cnt FROM precalc_src_filter_bib_list;
+    RETURN cnt;
+END;
+$f$ LANGUAGE PLPGSQL;
+
+CREATE OR REPLACE FUNCTION rating.precalc_circ_mod_filter(cm TEXT)
+    RETURNS INT AS $f$
+DECLARE
+    cnt     INT     := 0;
+BEGIN
+
+    SET LOCAL client_min_messages = error;
+    DROP TABLE IF EXISTS precalc_circ_mod_filter_bib_list;
+    IF cm IS NOT NULL THEN
+        CREATE TEMP TABLE precalc_circ_mod_filter_bib_list ON COMMIT DROP AS
+            SELECT  cn.record AS id,
+                    cp.id AS copy
+              FROM  asset.call_number cn
+                    JOIN asset.copy cp ON (cn.id = cp.call_number)
+              WHERE cp.circ_modifier = cm
+                    AND NOT cp.deleted;
+    ELSE
+        CREATE TEMP TABLE precalc_circ_mod_filter_bib_list ON COMMIT DROP AS
+            SELECT  cn.record AS id,
+                    cp.id AS copy
+              FROM  asset.call_number cn
+                    JOIN asset.copy cp ON (cn.id = cp.call_number)
+              WHERE NOT cp.deleted;
+    END IF;
+
+    SELECT count(*) INTO cnt FROM precalc_circ_mod_filter_bib_list;
+    RETURN cnt;
+END;
+$f$ LANGUAGE PLPGSQL;
+
+CREATE OR REPLACE FUNCTION rating.precalc_location_filter(loc INT)
+    RETURNS INT AS $f$
+DECLARE
+    cnt     INT     := 0;
+BEGIN
+
+    SET LOCAL client_min_messages = error;
+    DROP TABLE IF EXISTS precalc_location_filter_bib_list;
+    IF loc IS NOT NULL THEN
+        CREATE TEMP TABLE precalc_location_filter_bib_list ON COMMIT DROP AS
+            SELECT  cn.record AS id,
+                    cp.id AS copy
+              FROM  asset.call_number cn
+                    JOIN asset.copy cp ON (cn.id = cp.call_number)
+                    JOIN asset.copy_location_group_map lg ON (cp.location = lg.location)
+              WHERE lg.lgroup = loc
+                    AND NOT cp.deleted;
+    ELSE
+        CREATE TEMP TABLE precalc_location_filter_bib_list ON COMMIT DROP AS
+            SELECT  cn.record AS id,
+                    cp.id AS copy
+              FROM  asset.call_number cn
+                    JOIN asset.copy cp ON (cn.id = cp.call_number)
+              WHERE NOT cp.deleted;
+    END IF;
+
+    SELECT count(*) INTO cnt FROM precalc_location_filter_bib_list;
+    RETURN cnt;
+END;
+$f$ LANGUAGE PLPGSQL;
+
+-- all or limited...
+CREATE OR REPLACE FUNCTION rating.precalc_attr_filter(attr_filter TEXT)
+    RETURNS INT AS $f$
+DECLARE
+    cnt     INT := 0;
+    afilter TEXT;
+BEGIN
+
+    SET LOCAL client_min_messages = error;
+    DROP TABLE IF EXISTS precalc_attr_filter_bib_list;
+    IF attr_filter IS NOT NULL THEN
+        afilter := metabib.compile_composite_attr(attr_filter);
+        CREATE TEMP TABLE precalc_attr_filter_bib_list ON COMMIT DROP AS
+            SELECT source AS id FROM metabib.record_attr_vector_list
+            WHERE vlist @@ metabib.compile_composite_attr(attr_filter);
+    ELSE
+        CREATE TEMP TABLE precalc_attr_filter_bib_list ON COMMIT DROP AS
+            SELECT source AS id FROM metabib.record_attr_vector_list;
+    END IF;
+
+    SELECT count(*) INTO cnt FROM precalc_attr_filter_bib_list;
+    RETURN cnt;
+END;
+$f$ LANGUAGE PLPGSQL;
+
+CREATE OR REPLACE FUNCTION rating.precalc_bibs_by_copy(badge_id INT)
+    RETURNS INT AS $f$
+DECLARE
+    cnt         INT     := 0;
+    badge_row   rating.badge_with_orgs%ROWTYPE;
+    base        TEXT;
+    whr         TEXT;
+BEGIN
+
+    SELECT * INTO badge_row FROM rating.badge_with_orgs WHERE id = badge_id;
+
+    SET LOCAL client_min_messages = error;
+    DROP TABLE IF EXISTS precalc_bibs_by_copy_list;
+    CREATE TEMP TABLE precalc_bibs_by_copy_list ON COMMIT DROP AS
+        SELECT  DISTINCT cn.record AS id
+          FROM  asset.call_number cn
+                JOIN asset.copy cp ON (cp.call_number = cn.id AND NOT cp.deleted)
+                JOIN precalc_copy_filter_bib_list f ON (cp.id = f.copy)
+          WHERE cn.owning_lib = ANY (badge_row.orgs)
+                AND NOT cn.deleted;
+
+    SELECT count(*) INTO cnt FROM precalc_bibs_by_copy_list;
+    RETURN cnt;
+END;
+$f$ LANGUAGE PLPGSQL;
+
+CREATE OR REPLACE FUNCTION rating.precalc_bibs_by_uri(badge_id INT)
+    RETURNS INT AS $f$
+DECLARE
+    cnt         INT     := 0;
+    badge_row   rating.badge_with_orgs%ROWTYPE;
+BEGIN
+
+    SELECT * INTO badge_row FROM rating.badge_with_orgs WHERE id = badge_id;
+
+    SET LOCAL client_min_messages = error;
+    DROP TABLE IF EXISTS precalc_bibs_by_uri_list;
+    CREATE TEMP TABLE precalc_bibs_by_uri_list ON COMMIT DROP AS
+        SELECT  DISTINCT record AS id
+          FROM  asset.call_number cn
+                JOIN asset.uri_call_number_map urim ON (urim.call_number = cn.id)
+                JOIN asset.uri uri ON (urim.uri = uri.id AND uri.active)
+          WHERE cn.owning_lib = ANY (badge_row.orgs)
+                AND cn.label = '##URI##'
+                AND NOT cn.deleted;
+
+    SELECT count(*) INTO cnt FROM precalc_bibs_by_uri_list;
+    RETURN cnt;
+END;
+$f$ LANGUAGE PLPGSQL;
+
+CREATE OR REPLACE FUNCTION rating.precalc_bibs_by_copy_or_uri(badge_id INT)
+    RETURNS INT AS $f$
+DECLARE
+    cnt         INT     := 0;
+BEGIN
+
+    PERFORM rating.precalc_bibs_by_copy(badge_id);
+    PERFORM rating.precalc_bibs_by_uri(badge_id);
+
+    SET LOCAL client_min_messages = error;
+    DROP TABLE IF EXISTS precalc_bibs_by_copy_or_uri_list;
+    CREATE TEMP TABLE precalc_bibs_by_copy_or_uri_list ON COMMIT DROP AS
+        SELECT id FROM precalc_bibs_by_copy_list
+            UNION
+        SELECT id FROM precalc_bibs_by_uri_list;
+
+    SELECT count(*) INTO cnt FROM precalc_bibs_by_copy_or_uri_list;
+    RETURN cnt;
+END;
+$f$ LANGUAGE PLPGSQL;
+
+
+CREATE OR REPLACE FUNCTION rating.recalculate_badge_score ( badge_id INT, setup_only BOOL DEFAULT FALSE ) RETURNS VOID AS $f$
+DECLARE
+    badge_row           rating.badge%ROWTYPE;
+    param           rating.popularity_parameter%ROWTYPE;
+BEGIN
+    SET LOCAL client_min_messages = error;
+
+    -- Find what we're doing    
+    SELECT * INTO badge_row FROM rating.badge WHERE id = badge_id;
+    SELECT * INTO param FROM rating.popularity_parameter WHERE id = badge_row.popularity_parameter;
+
+    -- Calculate the filtered bib set, or all bibs if none
+    PERFORM rating.precalc_attr_filter(badge_row.attr_filter);
+    PERFORM rating.precalc_src_filter(badge_row.src_filter);
+    PERFORM rating.precalc_circ_mod_filter(badge_row.circ_mod_filter);
+    PERFORM rating.precalc_location_filter(badge_row.loc_grp_filter);
+
+    -- Bring the bib-level filter lists together
+    DROP TABLE IF EXISTS precalc_bib_filter_bib_list;
+    CREATE TEMP TABLE precalc_bib_filter_bib_list ON COMMIT DROP AS
+        SELECT id FROM precalc_attr_filter_bib_list
+            INTERSECT
+        SELECT id FROM precalc_src_filter_bib_list;
+
+    -- Bring the copy-level filter lists together. We're keeping this for bib_by_copy filtering later.
+    DROP TABLE IF EXISTS precalc_copy_filter_bib_list;
+    CREATE TEMP TABLE precalc_copy_filter_bib_list ON COMMIT DROP AS
+        SELECT id, copy FROM precalc_circ_mod_filter_bib_list
+            INTERSECT
+        SELECT id, copy FROM precalc_location_filter_bib_list;
+
+    -- Bring the collapsed filter lists together
+    DROP TABLE IF EXISTS precalc_filter_bib_list;
+    CREATE TEMP TABLE precalc_filter_bib_list ON COMMIT DROP AS
+        SELECT id FROM precalc_bib_filter_bib_list
+            INTERSECT
+        SELECT id FROM precalc_copy_filter_bib_list;
+
+    CREATE INDEX precalc_filter_bib_list_idx
+        ON precalc_filter_bib_list (id);
+
+    IF setup_only THEN
+        RETURN;
+    END IF;
+
+    -- If it's a fixed-rating badge, just do it ...
+    IF badge_row.fixed_rating IS NOT NULL THEN
+        DELETE FROM rating.record_badge_score WHERE badge = badge_id;
+        EXECUTE $e$
+            INSERT INTO rating.record_badge_score (record, badge, score)
+                SELECT record, $1, $2 FROM $e$ || param.func || $e$($1)$e$
+        USING badge_id, badge_row.fixed_rating;
+
+        UPDATE rating.badge SET last_calc = NOW() WHERE id = badge_id;
+
+        RETURN;
+    END IF;
+    -- else, calculate!
+
+    -- Make a session-local scratchpad for calculating scores
+    CREATE TEMP TABLE record_score_scratchpad (
+        bib     BIGINT,
+        value   NUMERIC
+    ) ON COMMIT DROP;
+
+    -- Gather raw values
+    EXECUTE $e$
+        INSERT INTO record_score_scratchpad (bib, value)
+            SELECT * FROM $e$ || param.func || $e$($1)$e$
+    USING badge_id;
+
+    IF badge_row.discard > 0 OR badge_row.percentile IS NOT NULL THEN
+        -- To speed up discard-common
+        CREATE INDEX record_score_scratchpad_score_idx ON record_score_scratchpad (value);
+        ANALYZE record_score_scratchpad;
+    END IF;
+
+    IF badge_row.discard > 0 THEN -- Remove common low values (trim the long tail)
+        DELETE FROM record_score_scratchpad WHERE value IN (
+            SELECT DISTINCT value FROM record_score_scratchpad ORDER BY value LIMIT badge_row.discard
+        );
+    END IF;
+
+    IF badge_row.percentile IS NOT NULL THEN -- Cut population down to exceptional records
+        DELETE FROM record_score_scratchpad WHERE value <= (
+            SELECT value FROM (
+                SELECT  value,
+                        CUME_DIST() OVER (ORDER BY value) AS p
+                  FROM  record_score_scratchpad
+            ) x WHERE p < badge_row.percentile / 100.0 ORDER BY p DESC LIMIT 1
+        );
+    END IF;
+
+
+    -- And, finally, push new data in
+    DELETE FROM rating.record_badge_score WHERE badge = badge_id;
+    INSERT INTO rating.record_badge_score (badge, record, score)
+        SELECT  badge_id,
+                bib,
+                GREATEST(ROUND((CUME_DIST() OVER (ORDER BY value)) * 5), 1) AS value
+          FROM  record_score_scratchpad;
+
+    DROP TABLE record_score_scratchpad;
+
+    -- Now, finally-finally, mark the badge as recalculated
+    UPDATE rating.badge SET last_calc = NOW() WHERE id = badge_id;
+
+    RETURN;
+END;
+$f$ LANGUAGE PLPGSQL;
+
+CREATE OR REPLACE FUNCTION rating.holds_filled_over_time(badge_id INT)
+    RETURNS TABLE (record BIGINT, value NUMERIC) AS $f$
+DECLARE
+    badge   rating.badge_with_orgs%ROWTYPE;
+    iage    INT     := 1;
+    iint    INT     := NULL;
+    iscale  NUMERIC := NULL;
+BEGIN
+
+    SELECT * INTO badge FROM rating.badge_with_orgs WHERE id = badge_id;
+
+    IF badge.horizon_age IS NULL THEN
+        RAISE EXCEPTION 'Badge "%" with id % requires a horizon age but has none.',
+            badge.name,
+            badge.id;
+    END IF;
+
+    PERFORM rating.precalc_bibs_by_copy(badge_id);
+
+    SET LOCAL client_min_messages = error;
+    DROP TABLE IF EXISTS precalc_bib_list;
+    CREATE TEMP TABLE precalc_bib_list ON COMMIT DROP AS
+        SELECT id FROM precalc_filter_bib_list
+            INTERSECT
+        SELECT id FROM precalc_bibs_by_copy_list;
+
+    iint := EXTRACT(EPOCH FROM badge.importance_interval);
+    IF badge.importance_age IS NOT NULL THEN
+        iage := (EXTRACT(EPOCH FROM badge.importance_age) / iint)::INT;
+    END IF;
+
+    -- if iscale is smaller than 1, scaling slope will be shallow ... BEWARE!
+    iscale := COALESCE(badge.importance_scale, 1.0);
+
+    RETURN QUERY
+     SELECT bib,
+            SUM( holds * GREATEST( iscale * (iage - hage), 1.0 ))
+      FROM (
+         SELECT f.id AS bib,
+                (1 + EXTRACT(EPOCH FROM AGE(h.fulfillment_time)) / iint)::INT AS hage,
+                COUNT(h.id)::INT AS holds
+          FROM  action.hold_request h
+                JOIN reporter.hold_request_record rhrr ON (rhrr.id = h.id)
+                JOIN precalc_bib_list f ON (f.id = rhrr.bib_record)
+          WHERE h.fulfillment_time >= NOW() - badge.horizon_age
+                AND h.request_lib = ANY (badge.orgs)
+          GROUP BY 1, 2
+      ) x
+      GROUP BY 1;
+END;
+$f$ LANGUAGE PLPGSQL STRICT;
+
+CREATE OR REPLACE FUNCTION rating.holds_placed_over_time(badge_id INT)
+    RETURNS TABLE (record BIGINT, value NUMERIC) AS $f$
+DECLARE
+    badge   rating.badge_with_orgs%ROWTYPE;
+    iage    INT     := 1;
+    iint    INT     := NULL;
+    iscale  NUMERIC := NULL;
+BEGIN
+
+    SELECT * INTO badge FROM rating.badge_with_orgs WHERE id = badge_id;
+
+    IF badge.horizon_age IS NULL THEN
+        RAISE EXCEPTION 'Badge "%" with id % requires a horizon age but has none.',
+            badge.name,
+            badge.id;
+    END IF;
+
+    PERFORM rating.precalc_bibs_by_copy(badge_id);
+
+    SET LOCAL client_min_messages = error;
+    DROP TABLE IF EXISTS precalc_bib_list;
+    CREATE TEMP TABLE precalc_bib_list ON COMMIT DROP AS
+        SELECT id FROM precalc_filter_bib_list
+            INTERSECT
+        SELECT id FROM precalc_bibs_by_copy_list;
+
+    iint := EXTRACT(EPOCH FROM badge.importance_interval);
+    IF badge.importance_age IS NOT NULL THEN
+        iage := (EXTRACT(EPOCH FROM badge.importance_age) / iint)::INT;
+    END IF;
+
+    -- if iscale is smaller than 1, scaling slope will be shallow ... BEWARE!
+    iscale := COALESCE(badge.importance_scale, 1.0);
+
+    RETURN QUERY
+     SELECT bib,
+            SUM( holds * GREATEST( iscale * (iage - hage), 1.0 ))
+      FROM (
+         SELECT f.id AS bib,
+                (1 + EXTRACT(EPOCH FROM AGE(h.request_time)) / iint)::INT AS hage,
+                COUNT(h.id)::INT AS holds
+          FROM  action.hold_request h
+                JOIN reporter.hold_request_record rhrr ON (rhrr.id = h.id)
+                JOIN precalc_bib_list f ON (f.id = rhrr.bib_record)
+          WHERE h.request_time >= NOW() - badge.horizon_age
+                AND h.request_lib = ANY (badge.orgs)
+          GROUP BY 1, 2
+      ) x
+      GROUP BY 1;
+END;
+$f$ LANGUAGE PLPGSQL STRICT;
+
+CREATE OR REPLACE FUNCTION rating.current_hold_count(badge_id INT)
+    RETURNS TABLE (record BIGINT, value NUMERIC) AS $f$
+DECLARE
+    badge   rating.badge_with_orgs%ROWTYPE;
+BEGIN
+
+    SELECT * INTO badge FROM rating.badge_with_orgs WHERE id = badge_id;
+
+    PERFORM rating.precalc_bibs_by_copy(badge_id);
+
+    DELETE FROM precalc_copy_filter_bib_list WHERE id NOT IN (
+        SELECT id FROM precalc_filter_bib_list
+            INTERSECT
+        SELECT id FROM precalc_bibs_by_copy_list
+    );
+
+    ANALYZE precalc_copy_filter_bib_list;
+
+    RETURN QUERY
+     SELECT rhrr.bib_record AS bib,
+            COUNT(DISTINCT h.id)::NUMERIC AS holds
+      FROM  action.hold_request h
+            JOIN reporter.hold_request_record rhrr ON (rhrr.id = h.id)
+            JOIN action.hold_copy_map m ON (m.hold = h.id)
+            JOIN precalc_copy_filter_bib_list cf ON (rhrr.bib_record = cf.id AND m.target_copy = cf.copy)
+      WHERE h.fulfillment_time IS NULL
+            AND h.request_lib = ANY (badge.orgs)
+      GROUP BY 1;
+END;
+$f$ LANGUAGE PLPGSQL STRICT;
+
+CREATE OR REPLACE FUNCTION rating.circs_over_time(badge_id INT)
+    RETURNS TABLE (record BIGINT, value NUMERIC) AS $f$
+DECLARE
+    badge   rating.badge_with_orgs%ROWTYPE;
+    iage    INT     := 1;
+    iint    INT     := NULL;
+    iscale  NUMERIC := NULL;
+BEGIN
+
+    SELECT * INTO badge FROM rating.badge_with_orgs WHERE id = badge_id;
+
+    IF badge.horizon_age IS NULL THEN
+        RAISE EXCEPTION 'Badge "%" with id % requires a horizon age but has none.',
+            badge.name,
+            badge.id;
+    END IF;
+
+    PERFORM rating.precalc_bibs_by_copy(badge_id);
+
+    DELETE FROM precalc_copy_filter_bib_list WHERE id NOT IN (
+        SELECT id FROM precalc_filter_bib_list
+            INTERSECT
+        SELECT id FROM precalc_bibs_by_copy_list
+    );
+
+    ANALYZE precalc_copy_filter_bib_list;
+
+    iint := EXTRACT(EPOCH FROM badge.importance_interval);
+    IF badge.importance_age IS NOT NULL THEN
+        iage := (EXTRACT(EPOCH FROM badge.importance_age) / iint)::INT;
+    END IF;
+
+    -- if iscale is smaller than 1, scaling slope will be shallow ... BEWARE!
+    iscale := COALESCE(badge.importance_scale, 1.0);
+
+    RETURN QUERY
+     SELECT bib,
+            SUM( circs * GREATEST( iscale * (iage - cage), 1.0 ))
+      FROM (
+         SELECT cn.record AS bib,
+                (1 + EXTRACT(EPOCH FROM AGE(c.xact_start)) / iint)::INT AS cage,
+                COUNT(c.id)::INT AS circs
+          FROM  action.circulation c
+                JOIN precalc_copy_filter_bib_list cf ON (c.target_copy = cf.copy)
+                JOIN asset.copy cp ON (cp.id = c.target_copy)
+                JOIN asset.call_number cn ON (cn.id = cp.call_number)
+          WHERE c.xact_start >= NOW() - badge.horizon_age
+                AND cn.owning_lib = ANY (badge.orgs)
+                AND c.phone_renewal IS FALSE  -- we don't count renewals
+                AND c.desk_renewal IS FALSE
+                AND c.opac_renewal IS FALSE
+          GROUP BY 1, 2
+      ) x
+      GROUP BY 1;
+END;
+$f$ LANGUAGE PLPGSQL STRICT;
+
+CREATE OR REPLACE FUNCTION rating.current_circ_count(badge_id INT)
+    RETURNS TABLE (record BIGINT, value NUMERIC) AS $f$
+DECLARE
+    badge   rating.badge_with_orgs%ROWTYPE;
+BEGIN
+
+    SELECT * INTO badge FROM rating.badge_with_orgs WHERE id = badge_id;
+
+    PERFORM rating.precalc_bibs_by_copy(badge_id);
+
+    DELETE FROM precalc_copy_filter_bib_list WHERE id NOT IN (
+        SELECT id FROM precalc_filter_bib_list
+            INTERSECT
+        SELECT id FROM precalc_bibs_by_copy_list
+    );
+
+    ANALYZE precalc_copy_filter_bib_list;
+
+    RETURN QUERY
+     SELECT cn.record AS bib,
+            COUNT(c.id)::NUMERIC AS circs
+      FROM  action.circulation c
+            JOIN precalc_copy_filter_bib_list cf ON (c.target_copy = cf.copy)
+            JOIN asset.copy cp ON (cp.id = c.target_copy)
+            JOIN asset.call_number cn ON (cn.id = cp.call_number)
+      WHERE c.checkin_time IS NULL
+            AND cn.owning_lib = ANY (badge.orgs)
+      GROUP BY 1;
+
+END;
+$f$ LANGUAGE PLPGSQL STRICT;
+
+CREATE OR REPLACE FUNCTION rating.checked_out_total_ratio(badge_id INT)
+    RETURNS TABLE (record BIGINT, value NUMERIC) AS $f$
+DECLARE
+    badge   rating.badge_with_orgs%ROWTYPE;
+BEGIN
+
+    SELECT * INTO badge FROM rating.badge_with_orgs WHERE id = badge_id;
+
+    PERFORM rating.precalc_bibs_by_copy(badge_id);
+
+    DELETE FROM precalc_copy_filter_bib_list WHERE id NOT IN (
+        SELECT id FROM precalc_filter_bib_list
+            INTERSECT
+        SELECT id FROM precalc_bibs_by_copy_list
+    );
+
+    ANALYZE precalc_copy_filter_bib_list;
+
+    RETURN QUERY
+     SELECT bib,
+            SUM(checked_out)::NUMERIC / SUM(total)::NUMERIC
+      FROM  (SELECT cn.record AS bib,
+                    (cp.status = 1)::INT AS checked_out,
+                    1 AS total
+              FROM  asset.copy cp
+                    JOIN precalc_copy_filter_bib_list c ON (cp.id = c.copy)
+                    JOIN asset.call_number cn ON (cn.id = cp.call_number)
+              WHERE cn.owning_lib = ANY (badge.orgs)
+            ) x
+      GROUP BY 1;
+END;
+$f$ LANGUAGE PLPGSQL STRICT;
+
+CREATE OR REPLACE FUNCTION rating.holds_total_ratio(badge_id INT)
+    RETURNS TABLE (record BIGINT, value NUMERIC) AS $f$
+DECLARE
+    badge   rating.badge_with_orgs%ROWTYPE;
+BEGIN
+
+    SELECT * INTO badge FROM rating.badge_with_orgs WHERE id = badge_id;
+
+    PERFORM rating.precalc_bibs_by_copy(badge_id);
+
+    DELETE FROM precalc_copy_filter_bib_list WHERE id NOT IN (
+        SELECT id FROM precalc_filter_bib_list
+            INTERSECT
+        SELECT id FROM precalc_bibs_by_copy_list
+    );
+
+    ANALYZE precalc_copy_filter_bib_list;
+
+    RETURN QUERY
+     SELECT cn.record AS bib,
+            COUNT(DISTINCT m.hold)::NUMERIC / COUNT(DISTINCT cp.id)::NUMERIC
+      FROM  asset.copy cp
+            JOIN precalc_copy_filter_bib_list c ON (cp.id = c.copy)
+            JOIN asset.call_number cn ON (cn.id = cp.call_number)
+            JOIN action.hold_copy_map m ON (m.target_copy = cp.id)
+      WHERE cn.owning_lib = ANY (badge.orgs)
+      GROUP BY 1;
+END;
+$f$ LANGUAGE PLPGSQL STRICT;
+
+CREATE OR REPLACE FUNCTION rating.holds_holdable_ratio(badge_id INT)
+    RETURNS TABLE (record BIGINT, value NUMERIC) AS $f$
+DECLARE
+    badge   rating.badge_with_orgs%ROWTYPE;
+BEGIN
+
+    SELECT * INTO badge FROM rating.badge_with_orgs WHERE id = badge_id;
+
+    PERFORM rating.precalc_bibs_by_copy(badge_id);
+
+    DELETE FROM precalc_copy_filter_bib_list WHERE id NOT IN (
+        SELECT id FROM precalc_filter_bib_list
+            INTERSECT
+        SELECT id FROM precalc_bibs_by_copy_list
+    );
+
+    ANALYZE precalc_copy_filter_bib_list;
+
+    RETURN QUERY
+     SELECT cn.record AS bib,
+            COUNT(DISTINCT m.hold)::NUMERIC / COUNT(DISTINCT cp.id)::NUMERIC
+      FROM  asset.copy cp
+            JOIN precalc_copy_filter_bib_list c ON (cp.id = c.copy)
+            JOIN asset.copy_location cl ON (cl.id = cp.location)
+            JOIN config.copy_status cs ON (cs.id = cp.status)
+            JOIN asset.call_number cn ON (cn.id = cp.call_number)
+            JOIN action.hold_copy_map m ON (m.target_copy = cp.id)
+      WHERE cn.owning_lib = ANY (badge.orgs)
+            AND cp.holdable IS TRUE
+            AND cl.holdable IS TRUE
+            AND cs.holdable IS TRUE
+      GROUP BY 1;
+END;
+$f$ LANGUAGE PLPGSQL STRICT;
+
+CREATE OR REPLACE FUNCTION rating.bib_record_age(badge_id INT)
+    RETURNS TABLE (record BIGINT, value NUMERIC) AS $f$
+DECLARE
+    badge   rating.badge_with_orgs%ROWTYPE;
+BEGIN
+
+    SELECT * INTO badge FROM rating.badge_with_orgs WHERE id = badge_id;
+
+    PERFORM rating.precalc_bibs_by_copy_or_uri(badge_id);
+
+    SET LOCAL client_min_messages = error;
+    DROP TABLE IF EXISTS precalc_bib_list;
+    CREATE TEMP TABLE precalc_bib_list ON COMMIT DROP AS
+        SELECT id FROM precalc_filter_bib_list
+            INTERSECT
+        SELECT id FROM precalc_bibs_by_copy_or_uri_list;
+
+    RETURN QUERY
+     SELECT b.id,
+            1.0 / EXTRACT(EPOCH FROM AGE(b.create_date))::NUMERIC + 1.0
+      FROM  precalc_bib_list pop
+            JOIN biblio.record_entry b ON (b.id = pop.id);
+END;
+$f$ LANGUAGE PLPGSQL STRICT;
+
+CREATE OR REPLACE FUNCTION rating.bib_pub_age(badge_id INT)
+    RETURNS TABLE (record BIGINT, value NUMERIC) AS $f$
+DECLARE
+    badge   rating.badge_with_orgs%ROWTYPE;
+BEGIN
+
+    SELECT * INTO badge FROM rating.badge_with_orgs WHERE id = badge_id;
+
+    PERFORM rating.precalc_bibs_by_copy_or_uri(badge_id);
+
+    SET LOCAL client_min_messages = error;
+    DROP TABLE IF EXISTS precalc_bib_list;
+    CREATE TEMP TABLE precalc_bib_list ON COMMIT DROP AS
+        SELECT id FROM precalc_filter_bib_list
+            INTERSECT
+        SELECT id FROM precalc_bibs_by_copy_or_uri_list;
+
+    RETURN QUERY
+     SELECT pop.id AS bib,
+            s.value::NUMERIC
+      FROM  precalc_bib_list pop
+            JOIN metabib.record_sorter s ON (
+                s.source = pop.id
+                AND s.attr = 'pubdate'
+                AND s.value ~ '^\d+$'
+            )
+      WHERE s.value::INT <= EXTRACT(YEAR FROM NOW())::INT;
+END;
+$f$ LANGUAGE PLPGSQL STRICT;
+
+CREATE OR REPLACE FUNCTION rating.percent_time_circulating(badge_id INT)
+    RETURNS TABLE (record BIGINT, value NUMERIC) AS $f$
+DECLARE
+    badge   rating.badge_with_orgs%ROWTYPE;
+BEGIN
+
+    SELECT * INTO badge FROM rating.badge_with_orgs WHERE id = badge_id;
+
+    PERFORM rating.precalc_bibs_by_copy(badge_id);
+
+    DELETE FROM precalc_copy_filter_bib_list WHERE id NOT IN (
+        SELECT id FROM precalc_filter_bib_list
+            INTERSECT
+        SELECT id FROM precalc_bibs_by_copy_list
+    );
+
+    ANALYZE precalc_copy_filter_bib_list;
+
+    RETURN QUERY
+     SELECT bib,
+            SUM(COALESCE(circ_time,0))::NUMERIC / SUM(age)::NUMERIC
+      FROM  (SELECT cn.record AS bib,
+                    cp.id,
+                    EXTRACT( EPOCH FROM AGE(cp.active_date) ) + 1 AS age,
+                    SUM(  -- time copy spent circulating
+                        EXTRACT(
+                            EPOCH FROM
+                            AGE(
+                                COALESCE(circ.checkin_time, circ.stop_fines_time, NOW()),
+                                circ.xact_start
+                            )
+                        )
+                    )::NUMERIC AS circ_time
+              FROM  asset.copy cp
+                    JOIN precalc_copy_filter_bib_list c ON (cp.id = c.copy)
+                    JOIN asset.call_number cn ON (cn.id = cp.call_number)
+                    LEFT JOIN action.all_circulation circ ON (
+                        circ.target_copy = cp.id
+                        AND stop_fines NOT IN (
+                            'LOST',
+                            'LONGOVERDUE',
+                            'CLAIMSRETURNED',
+                            'LONGOVERDUE'
+                        )
+                        AND NOT (
+                            checkin_time IS NULL AND
+                            stop_fines = 'MAXFINES'
+                        )
+                    )
+              WHERE cn.owning_lib = ANY (badge.orgs)
+                    AND cp.active_date IS NOT NULL
+                    -- Next line requires that copies with no circs (circ.id IS NULL) also not be deleted
+                    AND ((circ.id IS NULL AND NOT cp.deleted) OR circ.id IS NOT NULL)
+              GROUP BY 1,2,3
+            ) x
+      GROUP BY 1;
+END;
+$f$ LANGUAGE PLPGSQL STRICT;
+
+CREATE OR REPLACE FUNCTION rating.generic_fixed_rating_by_copy(badge_id INT)
+    RETURNS TABLE (record BIGINT, value NUMERIC) AS $f$
+BEGIN
+    PERFORM rating.precalc_bibs_by_copy(badge_id);
+    RETURN QUERY
+        SELECT id, 1.0 FROM precalc_filter_bib_list
+            INTERSECT
+        SELECT id, 1.0 FROM precalc_bibs_by_copy_list;
+END;
+$f$ LANGUAGE PLPGSQL STRICT;
+
+CREATE OR REPLACE FUNCTION rating.generic_fixed_rating_by_uri(badge_id INT)
+    RETURNS TABLE (record BIGINT, value NUMERIC) AS $f$
+BEGIN
+    PERFORM rating.precalc_bibs_by_uri(badge_id);
+    RETURN QUERY
+        SELECT id, 1.0 FROM precalc_bib_filter_bib_list
+            INTERSECT
+        SELECT id, 1.0 FROM precalc_bibs_by_uri_list;
+END;
+$f$ LANGUAGE PLPGSQL STRICT;
+
+CREATE OR REPLACE FUNCTION rating.generic_fixed_rating_by_copy_or_uri(badge_id INT)
+    RETURNS TABLE (record BIGINT, value NUMERIC) AS $f$
+BEGIN
+    PERFORM rating.precalc_bibs_by_copy_or_uri(badge_id);
+    RETURN QUERY
+        (SELECT id, 1.0 FROM precalc_filter_bib_list
+            INTERSECT
+        SELECT id, 1.0 FROM precalc_bibs_by_copy_list)
+            UNION
+        (SELECT id, 1.0 FROM precalc_bib_filter_bib_list
+            INTERSECT
+        SELECT id, 1.0 FROM precalc_bibs_by_uri_list);
+END;
+$f$ LANGUAGE PLPGSQL STRICT;
+
+CREATE OR REPLACE FUNCTION rating.generic_fixed_rating_global(badge_id INT)
+    RETURNS TABLE (record BIGINT, value NUMERIC) AS $f$
+BEGIN
+    RETURN QUERY
+        SELECT id, 1.0 FROM precalc_bib_filter_bib_list;
+END;
+$f$ LANGUAGE PLPGSQL STRICT;
+
+CREATE INDEX hold_fulfillment_time_idx ON action.hold_request (fulfillment_time) WHERE fulfillment_time IS NOT NULL;
+CREATE INDEX hold_request_time_idx ON action.hold_request (request_time);
+
+
+/*
+ * Copyright (C) 2016 Equinox Software, Inc.
+ * Mike Rylander <miker at esilibrary.com> 
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ */
+
+
+
+SELECT evergreen.upgrade_deps_block_check('0984', :eg_version);
+
+ALTER TYPE search.search_result ADD ATTRIBUTE badges TEXT, ADD ATTRIBUTE popularity NUMERIC;
+
+CREATE OR REPLACE FUNCTION search.query_parser_fts (
+
+    param_search_ou INT,
+    param_depth     INT,
+    param_query     TEXT,
+    param_statuses  INT[],
+    param_locations INT[],
+    param_offset    INT,
+    param_check     INT,
+    param_limit     INT,
+    metarecord      BOOL,
+    staff           BOOL,
+    deleted_search  BOOL,
+    param_pref_ou   INT DEFAULT NULL
+) RETURNS SETOF search.search_result AS $func$
+DECLARE
+
+    current_res         search.search_result%ROWTYPE;
+    search_org_list     INT[];
+    luri_org_list       INT[];
+    tmp_int_list        INT[];
+
+    check_limit         INT;
+    core_limit          INT;
+    core_offset         INT;
+    tmp_int             INT;
+
+    core_result         RECORD;
+    core_cursor         REFCURSOR;
+    core_rel_query      TEXT;
+
+    total_count         INT := 0;
+    check_count         INT := 0;
+    deleted_count       INT := 0;
+    visible_count       INT := 0;
+    excluded_count      INT := 0;
+
+    luri_as_copy        BOOL;
+BEGIN
+
+    check_limit := COALESCE( param_check, 1000 );
+    core_limit  := COALESCE( param_limit, 25000 );
+    core_offset := COALESCE( param_offset, 0 );
+
+    SELECT COALESCE( enabled, FALSE ) INTO luri_as_copy FROM config.global_flag WHERE name = 'opac.located_uri.act_as_copy';
+
+    -- core_skip_chk := COALESCE( param_skip_chk, 1 );
+
+    IF param_search_ou > 0 THEN
+        IF param_depth IS NOT NULL THEN
+            SELECT ARRAY_AGG(distinct id) INTO search_org_list FROM actor.org_unit_descendants( param_search_ou, param_depth );
+        ELSE
+            SELECT ARRAY_AGG(distinct id) INTO search_org_list FROM actor.org_unit_descendants( param_search_ou );
+        END IF;
+
+        IF luri_as_copy THEN
+            SELECT ARRAY_AGG(distinct id) INTO luri_org_list FROM actor.org_unit_full_path( param_search_ou );
+        ELSE
+            SELECT ARRAY_AGG(distinct id) INTO luri_org_list FROM actor.org_unit_ancestors( param_search_ou );
+        END IF;
+
+    ELSIF param_search_ou < 0 THEN
+        SELECT ARRAY_AGG(distinct org_unit) INTO search_org_list FROM actor.org_lasso_map WHERE lasso = -param_search_ou;
+
+        FOR tmp_int IN SELECT * FROM UNNEST(search_org_list) LOOP
+
+            IF luri_as_copy THEN
+                SELECT ARRAY_AGG(distinct id) INTO tmp_int_list FROM actor.org_unit_full_path( tmp_int );
+            ELSE
+                SELECT ARRAY_AGG(distinct id) INTO tmp_int_list FROM actor.org_unit_ancestors( tmp_int );
+            END IF;
+
+            luri_org_list := luri_org_list || tmp_int_list;
+        END LOOP;
+
+        SELECT ARRAY_AGG(DISTINCT x.id) INTO luri_org_list FROM UNNEST(luri_org_list) x(id);
+
+    ELSIF param_search_ou = 0 THEN
+        -- reserved for user lassos (ou_buckets/type='lasso') with ID passed in depth ... hack? sure.
+    END IF;
+
+    IF param_pref_ou IS NOT NULL THEN
+            IF luri_as_copy THEN
+                SELECT ARRAY_AGG(distinct id) INTO tmp_int_list FROM actor.org_unit_full_path( param_pref_ou );
+            ELSE
+                SELECT ARRAY_AGG(distinct id) INTO tmp_int_list FROM actor.org_unit_ancestors( param_pref_ou );
+            END IF;
+
+        luri_org_list := luri_org_list || tmp_int_list;
+    END IF;
+
+    OPEN core_cursor FOR EXECUTE param_query;
+
+    LOOP
+
+        FETCH core_cursor INTO core_result;
+        EXIT WHEN NOT FOUND;
+        EXIT WHEN total_count >= core_limit;
+
+        total_count := total_count + 1;
+
+        CONTINUE WHEN total_count NOT BETWEEN  core_offset + 1 AND check_limit + core_offset;
+
+        check_count := check_count + 1;
+
+        IF NOT deleted_search THEN
+
+            PERFORM 1 FROM biblio.record_entry b WHERE NOT b.deleted AND b.id IN ( SELECT * FROM unnest( core_result.records ) );
+            IF NOT FOUND THEN
+                -- RAISE NOTICE ' % were all deleted ... ', core_result.records;
+                deleted_count := deleted_count + 1;
+                CONTINUE;
+            END IF;
+
+            PERFORM 1
+              FROM  biblio.record_entry b
+                    JOIN config.bib_source s ON (b.source = s.id)
+              WHERE s.transcendant
+                    AND b.id IN ( SELECT * FROM unnest( core_result.records ) );
+
+            IF FOUND THEN
+                -- RAISE NOTICE ' % were all transcendant ... ', core_result.records;
+                visible_count := visible_count + 1;
+
+                current_res.id = core_result.id;
+                current_res.rel = core_result.rel;
+                current_res.badges = core_result.badges;
+                current_res.popularity = core_result.popularity;
+
+                tmp_int := 1;
+                IF metarecord THEN
+                    SELECT COUNT(DISTINCT s.source) INTO tmp_int FROM metabib.metarecord_source_map s WHERE s.metarecord = core_result.id;
+                END IF;
+
+                IF tmp_int = 1 THEN
+                    current_res.record = core_result.records[1];
+                ELSE
+                    current_res.record = NULL;
+                END IF;
+
+                RETURN NEXT current_res;
+
+                CONTINUE;
+            END IF;
+
+            PERFORM 1
+              FROM  asset.call_number cn
+                    JOIN asset.uri_call_number_map map ON (map.call_number = cn.id)
+                    JOIN asset.uri uri ON (map.uri = uri.id)
+              WHERE NOT cn.deleted
+                    AND cn.label = '##URI##'
+                    AND uri.active
+                    AND ( param_locations IS NULL OR array_upper(param_locations, 1) IS NULL )
+                    AND cn.record IN ( SELECT * FROM unnest( core_result.records ) )
+                    AND cn.owning_lib IN ( SELECT * FROM unnest( luri_org_list ) )
+              LIMIT 1;
+
+            IF FOUND THEN
+                -- RAISE NOTICE ' % have at least one URI ... ', core_result.records;
+                visible_count := visible_count + 1;
+
+                current_res.id = core_result.id;
+                current_res.rel = core_result.rel;
+                current_res.badges = core_result.badges;
+                current_res.popularity = core_result.popularity;
+
+                tmp_int := 1;
+                IF metarecord THEN
+                    SELECT COUNT(DISTINCT s.source) INTO tmp_int FROM metabib.metarecord_source_map s WHERE s.metarecord = core_result.id;
+                END IF;
+
+                IF tmp_int = 1 THEN
+                    current_res.record = core_result.records[1];
+                ELSE
+                    current_res.record = NULL;
+                END IF;
+
+                RETURN NEXT current_res;
+
+                CONTINUE;
+            END IF;
+
+            IF param_statuses IS NOT NULL AND array_upper(param_statuses, 1) > 0 THEN
+
+                PERFORM 1
+                  FROM  asset.call_number cn
+                        JOIN asset.copy cp ON (cp.call_number = cn.id)
+                  WHERE NOT cn.deleted
+                        AND NOT cp.deleted
+                        AND cp.status IN ( SELECT * FROM unnest( param_statuses ) )
+                        AND cn.record IN ( SELECT * FROM unnest( core_result.records ) )
+                        AND cp.circ_lib IN ( SELECT * FROM unnest( search_org_list ) )
+                  LIMIT 1;
+
+                IF NOT FOUND THEN
+                    PERFORM 1
+                      FROM  biblio.peer_bib_copy_map pr
+                            JOIN asset.copy cp ON (cp.id = pr.target_copy)
+                      WHERE NOT cp.deleted
+                            AND cp.status IN ( SELECT * FROM unnest( param_statuses ) )
+                            AND pr.peer_record IN ( SELECT * FROM unnest( core_result.records ) )
+                            AND cp.circ_lib IN ( SELECT * FROM unnest( search_org_list ) )
+                      LIMIT 1;
+
+                    IF NOT FOUND THEN
+                    -- RAISE NOTICE ' % and multi-home linked records were all status-excluded ... ', core_result.records;
+                        excluded_count := excluded_count + 1;
+                        CONTINUE;
+                    END IF;
+                END IF;
+
+            END IF;
+
+            IF param_locations IS NOT NULL AND array_upper(param_locations, 1) > 0 THEN
+
+                PERFORM 1
+                  FROM  asset.call_number cn
+                        JOIN asset.copy cp ON (cp.call_number = cn.id)
+                  WHERE NOT cn.deleted
+                        AND NOT cp.deleted
+                        AND cp.location IN ( SELECT * FROM unnest( param_locations ) )
+                        AND cn.record IN ( SELECT * FROM unnest( core_result.records ) )
+                        AND cp.circ_lib IN ( SELECT * FROM unnest( search_org_list ) )
+                  LIMIT 1;
+
+                IF NOT FOUND THEN
+                    PERFORM 1
+                      FROM  biblio.peer_bib_copy_map pr
+                            JOIN asset.copy cp ON (cp.id = pr.target_copy)
+                      WHERE NOT cp.deleted
+                            AND cp.location IN ( SELECT * FROM unnest( param_locations ) )
+                            AND pr.peer_record IN ( SELECT * FROM unnest( core_result.records ) )
+                            AND cp.circ_lib IN ( SELECT * FROM unnest( search_org_list ) )
+                      LIMIT 1;
+
+                    IF NOT FOUND THEN
+                        -- RAISE NOTICE ' % and multi-home linked records were all copy_location-excluded ... ', core_result.records;
+                        excluded_count := excluded_count + 1;
+                        CONTINUE;
+                    END IF;
+                END IF;
+
+            END IF;
+
+            IF staff IS NULL OR NOT staff THEN
+
+                PERFORM 1
+                  FROM  asset.opac_visible_copies
+                  WHERE circ_lib IN ( SELECT * FROM unnest( search_org_list ) )
+                        AND record IN ( SELECT * FROM unnest( core_result.records ) )
+                  LIMIT 1;
+
+                IF NOT FOUND THEN
+                    PERFORM 1
+                      FROM  biblio.peer_bib_copy_map pr
+                            JOIN asset.opac_visible_copies cp ON (cp.copy_id = pr.target_copy)
+                      WHERE cp.circ_lib IN ( SELECT * FROM unnest( search_org_list ) )
+                            AND pr.peer_record IN ( SELECT * FROM unnest( core_result.records ) )
+                      LIMIT 1;
+
+                    IF NOT FOUND THEN
+
+                        -- RAISE NOTICE ' % and multi-home linked records were all visibility-excluded ... ', core_result.records;
+                        excluded_count := excluded_count + 1;
+                        CONTINUE;
+                    END IF;
+                END IF;
+
+            ELSE
+
+                PERFORM 1
+                  FROM  asset.call_number cn
+                        JOIN asset.copy cp ON (cp.call_number = cn.id)
+                  WHERE NOT cn.deleted
+                        AND NOT cp.deleted
+                        AND cp.circ_lib IN ( SELECT * FROM unnest( search_org_list ) )
+                        AND cn.record IN ( SELECT * FROM unnest( core_result.records ) )
+                  LIMIT 1;
+
+                IF NOT FOUND THEN
+
+                    PERFORM 1
+                      FROM  biblio.peer_bib_copy_map pr
+                            JOIN asset.copy cp ON (cp.id = pr.target_copy)
+                      WHERE NOT cp.deleted
+                            AND cp.circ_lib IN ( SELECT * FROM unnest( search_org_list ) )
+                            AND pr.peer_record IN ( SELECT * FROM unnest( core_result.records ) )
+                      LIMIT 1;
+
+                    IF NOT FOUND THEN
+
+                        PERFORM 1
+                          FROM  asset.call_number cn
+                                JOIN asset.copy cp ON (cp.call_number = cn.id)
+                          WHERE cn.record IN ( SELECT * FROM unnest( core_result.records ) )
+                                AND NOT cp.deleted
+                          LIMIT 1;
+
+                        IF NOT FOUND THEN
+                            -- Recheck Located URI visibility in the case of no "foreign" copies
+                            PERFORM 1
+                              FROM  asset.call_number cn
+                                    JOIN asset.uri_call_number_map map ON (map.call_number = cn.id)
+                                    JOIN asset.uri uri ON (map.uri = uri.id)
+                              WHERE NOT cn.deleted
+                                    AND cn.label = '##URI##'
+                                    AND uri.active
+                                    AND cn.record IN ( SELECT * FROM unnest( core_result.records ) )
+                                    AND cn.owning_lib NOT IN ( SELECT * FROM unnest( luri_org_list ) )
+                              LIMIT 1;
+
+                            IF FOUND THEN
+                                -- RAISE NOTICE ' % were excluded for foreign located URIs... ', core_result.records;
+                                excluded_count := excluded_count + 1;
+                                CONTINUE;
+                            END IF;
+                        ELSE
+                            -- RAISE NOTICE ' % and multi-home linked records were all visibility-excluded ... ', core_result.records;
+                            excluded_count := excluded_count + 1;
+                            CONTINUE;
+                        END IF;
+                    END IF;
+
+                END IF;
+
+            END IF;
+
+        END IF;
+
+        visible_count := visible_count + 1;
+
+        current_res.id = core_result.id;
+        current_res.rel = core_result.rel;
+        current_res.badges = core_result.badges;
+        current_res.popularity = core_result.popularity;
+
+        tmp_int := 1;
+        IF metarecord THEN
+            SELECT COUNT(DISTINCT s.source) INTO tmp_int FROM metabib.metarecord_source_map s WHERE s.metarecord = core_result.id;
+        END IF;
+
+        IF tmp_int = 1 THEN
+            current_res.record = core_result.records[1];
+        ELSE
+            current_res.record = NULL;
+        END IF;
+
+        RETURN NEXT current_res;
+
+        IF visible_count % 1000 = 0 THEN
+            -- RAISE NOTICE ' % visible so far ... ', visible_count;
+        END IF;
+
+    END LOOP;
+
+    current_res.id = NULL;
+    current_res.rel = NULL;
+    current_res.record = NULL;
+    current_res.badges = NULL;
+    current_res.popularity = NULL;
+    current_res.total = total_count;
+    current_res.checked = check_count;
+    current_res.deleted = deleted_count;
+    current_res.visible = visible_count;
+    current_res.excluded = excluded_count;
+
+    CLOSE core_cursor;
+
+    RETURN NEXT current_res;
+
+END;
+$func$ LANGUAGE PLPGSQL;
+ 
+CREATE OR REPLACE FUNCTION metabib.staged_browse(
+    query                   TEXT,
+    fields                  INT[],
+    context_org             INT,
+    context_locations       INT[],
+    staff                   BOOL,
+    browse_superpage_size   INT,
+    count_up_from_zero      BOOL,   -- if false, count down from -1
+    result_limit            INT,
+    next_pivot_pos          INT
+) RETURNS SETOF metabib.flat_browse_entry_appearance AS $p$
+DECLARE
+    curs                    REFCURSOR;
+    rec                     RECORD;
+    qpfts_query             TEXT;
+    aqpfts_query            TEXT;
+    afields                 INT[];
+    bfields                 INT[];
+    result_row              metabib.flat_browse_entry_appearance%ROWTYPE;
+    results_skipped         INT := 0;
+    row_counter             INT := 0;
+    row_number              INT;
+    slice_start             INT;
+    slice_end               INT;
+    full_end                INT;
+    all_records             BIGINT[];
+    all_brecords             BIGINT[];
+    all_arecords            BIGINT[];
+    superpage_of_records    BIGINT[];
+    superpage_size          INT;
+BEGIN
+    IF count_up_from_zero THEN
+        row_number := 0;
+    ELSE
+        row_number := -1;
+    END IF;
+
+    OPEN curs FOR EXECUTE query;
+
+    LOOP
+        FETCH curs INTO rec;
+        IF NOT FOUND THEN
+            IF result_row.pivot_point IS NOT NULL THEN
+                RETURN NEXT result_row;
+            END IF;
+            RETURN;
+        END IF;
+
+
+        -- Gather aggregate data based on the MBE row we're looking at now, authority axis
+        SELECT INTO all_arecords, result_row.sees, afields
+                ARRAY_AGG(DISTINCT abl.bib), -- bibs to check for visibility
+                STRING_AGG(DISTINCT aal.source::TEXT, $$,$$), -- authority record ids
+                ARRAY_AGG(DISTINCT map.metabib_field) -- authority-tag-linked CMF rows
+
+          FROM  metabib.browse_entry_simple_heading_map mbeshm
+                JOIN authority.simple_heading ash ON ( mbeshm.simple_heading = ash.id )
+                JOIN authority.authority_linking aal ON ( ash.record = aal.source )
+                JOIN authority.bib_linking abl ON ( aal.target = abl.authority )
+                JOIN authority.control_set_auth_field_metabib_field_map_refs map ON (
+                    ash.atag = map.authority_field
+                    AND map.metabib_field = ANY(fields)
+                )
+          WHERE mbeshm.entry = rec.id;
+
+
+        -- Gather aggregate data based on the MBE row we're looking at now, bib axis
+        SELECT INTO all_brecords, result_row.authorities, bfields
+                ARRAY_AGG(DISTINCT source),
+                STRING_AGG(DISTINCT authority::TEXT, $$,$$),
+                ARRAY_AGG(DISTINCT def)
+          FROM  metabib.browse_entry_def_map
+          WHERE entry = rec.id
+                AND def = ANY(fields);
+
+        SELECT INTO result_row.fields STRING_AGG(DISTINCT x::TEXT, $$,$$) FROM UNNEST(afields || bfields) x;
+
+        result_row.sources := 0;
+        result_row.asources := 0;
+
+        -- Bib-linked vis checking
+        IF ARRAY_UPPER(all_brecords,1) IS NOT NULL THEN
+
+            full_end := ARRAY_LENGTH(all_brecords, 1);
+            superpage_size := COALESCE(browse_superpage_size, full_end);
+            slice_start := 1;
+            slice_end := superpage_size;
+
+            WHILE result_row.sources = 0 AND slice_start <= full_end LOOP
+                superpage_of_records := all_brecords[slice_start:slice_end];
+                qpfts_query :=
+                    'SELECT NULL::BIGINT AS id, ARRAY[r] AS records, ' ||
+                    'NULL AS badges, NULL::NUMERIC AS popularity, ' ||
+                    '1::NUMERIC AS rel FROM (SELECT UNNEST(' ||
+                    quote_literal(superpage_of_records) || '::BIGINT[]) AS r) rr';
+
+                -- We use search.query_parser_fts() for visibility testing.
+                -- We're calling it once per browse-superpage worth of records
+                -- out of the set of records related to a given mbe, until we've
+                -- either exhausted that set of records or found at least 1
+                -- visible record.
+
+                SELECT INTO result_row.sources visible
+                    FROM search.query_parser_fts(
+                        context_org, NULL, qpfts_query, NULL,
+                        context_locations, 0, NULL, NULL, FALSE, staff, FALSE
+                    ) qpfts
+                    WHERE qpfts.rel IS NULL;
+
+                slice_start := slice_start + superpage_size;
+                slice_end := slice_end + superpage_size;
+            END LOOP;
+
+            -- Accurate?  Well, probably.
+            result_row.accurate := browse_superpage_size IS NULL OR
+                browse_superpage_size >= full_end;
+
+        END IF;
+
+        -- Authority-linked vis checking
+        IF ARRAY_UPPER(all_arecords,1) IS NOT NULL THEN
+
+            full_end := ARRAY_LENGTH(all_arecords, 1);
+            superpage_size := COALESCE(browse_superpage_size, full_end);
+            slice_start := 1;
+            slice_end := superpage_size;
+
+            WHILE result_row.asources = 0 AND slice_start <= full_end LOOP
+                superpage_of_records := all_arecords[slice_start:slice_end];
+                qpfts_query :=
+                    'SELECT NULL::BIGINT AS id, ARRAY[r] AS records, ' ||
+                    'NULL AS badges, NULL::NUMERIC AS popularity, ' ||
+                    '1::NUMERIC AS rel FROM (SELECT UNNEST(' ||
+                    quote_literal(superpage_of_records) || '::BIGINT[]) AS r) rr';
+
+                -- We use search.query_parser_fts() for visibility testing.
+                -- We're calling it once per browse-superpage worth of records
+                -- out of the set of records related to a given mbe, via
+                -- authority until we've either exhausted that set of records
+                -- or found at least 1 visible record.
+
+                SELECT INTO result_row.asources visible
+                    FROM search.query_parser_fts(
+                        context_org, NULL, qpfts_query, NULL,
+                        context_locations, 0, NULL, NULL, FALSE, staff, FALSE
+                    ) qpfts
+                    WHERE qpfts.rel IS NULL;
+
+                slice_start := slice_start + superpage_size;
+                slice_end := slice_end + superpage_size;
+            END LOOP;
+
+
+            -- Accurate?  Well, probably.
+            result_row.aaccurate := browse_superpage_size IS NULL OR
+                browse_superpage_size >= full_end;
+
+        END IF;
+
+        IF result_row.sources > 0 OR result_row.asources > 0 THEN
+
+            -- The function that calls this function needs row_number in order
+            -- to correctly order results from two different runs of this
+            -- functions.
+            result_row.row_number := row_number;
+
+            -- Now, if row_counter is still less than limit, return a row.  If
+            -- not, but it is less than next_pivot_pos, continue on without
+            -- returning actual result rows until we find
+            -- that next pivot, and return it.
+
+            IF row_counter < result_limit THEN
+                result_row.browse_entry := rec.id;
+                result_row.value := rec.value;
+
+                RETURN NEXT result_row;
+            ELSE
+                result_row.browse_entry := NULL;
+                result_row.authorities := NULL;
+                result_row.fields := NULL;
+                result_row.value := NULL;
+                result_row.sources := NULL;
+                result_row.sees := NULL;
+                result_row.accurate := NULL;
+                result_row.aaccurate := NULL;
+                result_row.pivot_point := rec.id;
+
+                IF row_counter >= next_pivot_pos THEN
+                    RETURN NEXT result_row;
+                    RETURN;
+                END IF;
+            END IF;
+
+            IF count_up_from_zero THEN
+                row_number := row_number + 1;
+            ELSE
+                row_number := row_number - 1;
+            END IF;
+
+            -- row_counter is different from row_number.
+            -- It simply counts up from zero so that we know when
+            -- we've reached our limit.
+            row_counter := row_counter + 1;
+        END IF;
+    END LOOP;
+END;
+$p$ LANGUAGE PLPGSQL;
+
+
+
+SELECT evergreen.upgrade_deps_block_check('0985', :eg_version);
+
+CREATE OR REPLACE FUNCTION metabib.reingest_record_attributes (rid BIGINT, pattr_list TEXT[] DEFAULT NULL, prmarc TEXT DEFAULT NULL, rdeleted BOOL DEFAULT TRUE) RETURNS VOID AS $func$
+DECLARE
+    transformed_xml TEXT;
+    rmarc           TEXT := prmarc;
+    tmp_val         TEXT;
+    prev_xfrm       TEXT;
+    normalizer      RECORD;
+    xfrm            config.xml_transform%ROWTYPE;
+    attr_vector     INT[] := '{}'::INT[];
+    attr_vector_tmp INT[];
+    attr_list       TEXT[] := pattr_list;
+    attr_value      TEXT[];
+    norm_attr_value TEXT[];
+    tmp_xml         TEXT;
+    attr_def        config.record_attr_definition%ROWTYPE;
+    ccvm_row        config.coded_value_map%ROWTYPE;
+BEGIN
+
+    IF attr_list IS NULL OR rdeleted THEN -- need to do the full dance on INSERT or undelete
+        SELECT ARRAY_AGG(name) INTO attr_list FROM config.record_attr_definition
+        WHERE (
+            tag IS NOT NULL OR
+            fixed_field IS NOT NULL OR
+            xpath IS NOT NULL OR
+            phys_char_sf IS NOT NULL OR
+            composite
+        ) AND (
+            filter OR sorter
+        );
+    END IF;
+
+    IF rmarc IS NULL THEN
+        SELECT marc INTO rmarc FROM biblio.record_entry WHERE id = rid;
+    END IF;
+
+    FOR attr_def IN SELECT * FROM config.record_attr_definition WHERE NOT composite AND name = ANY( attr_list ) ORDER BY format LOOP
+
+        attr_value := '{}'::TEXT[];
+        norm_attr_value := '{}'::TEXT[];
+        attr_vector_tmp := '{}'::INT[];
+
+        SELECT * INTO ccvm_row FROM config.coded_value_map c WHERE c.ctype = attr_def.name LIMIT 1; 
+
+        -- tag+sf attrs only support SVF
+        IF attr_def.tag IS NOT NULL THEN -- tag (and optional subfield list) selection
+            SELECT  ARRAY[ARRAY_TO_STRING(ARRAY_AGG(value), COALESCE(attr_def.joiner,' '))] INTO attr_value
+              FROM  (SELECT * FROM metabib.full_rec ORDER BY tag, subfield) AS x
+              WHERE record = rid
+                    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 := vandelay.marc21_extract_fixed_field_list(rmarc, attr_def.fixed_field);
+
+            IF NOT attr_def.multi THEN
+                attr_value := ARRAY[attr_value[1]];
+            END IF;
+
+        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(rmarc,xfrm.xslt);
+                ELSE
+                    transformed_xml := rmarc;
+                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;
+
+            FOR tmp_xml IN SELECT UNNEST(oils_xpath(attr_def.xpath, transformed_xml, ARRAY[ARRAY[xfrm.prefix, xfrm.namespace_uri]])) LOOP
+                tmp_val := oils_xpath_string(
+                                '//*',
+                                tmp_xml,
+                                COALESCE(attr_def.joiner,' '),
+                                ARRAY[ARRAY[xfrm.prefix, xfrm.namespace_uri]]
+                            );
+                IF tmp_val IS NOT NULL AND BTRIM(tmp_val) <> '' THEN
+                    attr_value := attr_value || tmp_val;
+                    EXIT WHEN NOT attr_def.multi;
+                END IF;
+            END LOOP;
+
+        ELSIF attr_def.phys_char_sf IS NOT NULL THEN -- a named Physical Characteristic, see config.marc21_physical_characteristic_*_map
+            SELECT  ARRAY_AGG(m.value) INTO attr_value
+              FROM  vandelay.marc21_physical_characteristics(rmarc) v
+                    LEFT JOIN config.marc21_physical_characteristic_value_map m ON (m.id = v.value)
+              WHERE v.subfield = attr_def.phys_char_sf AND (m.value IS NOT NULL AND BTRIM(m.value) <> '')
+                    AND ( ccvm_row.id IS NULL OR ( ccvm_row.id IS NOT NULL AND v.id IS NOT NULL) );
+
+            IF NOT attr_def.multi THEN
+                attr_value := ARRAY[attr_value[1]];
+            END IF;
+
+        END IF;
+
+                -- apply index normalizers to attr_value
+        FOR tmp_val IN SELECT value FROM UNNEST(attr_value) x(value) LOOP
+            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( tmp_val ), 'NULL' ) ||
+                        CASE
+                            WHEN normalizer.param_count > 0
+                                THEN ',' || REPLACE(REPLACE(BTRIM(normalizer.params,'[]'),E'\'',E'\\\''),E'"',E'\'')
+                                ELSE ''
+                            END ||
+                    ')' INTO tmp_val;
+
+            END LOOP;
+            IF tmp_val IS NOT NULL AND tmp_val <> '' THEN
+                -- note that a string that contains only blanks
+                -- is a valid value for some attributes
+                norm_attr_value := norm_attr_value || tmp_val;
+            END IF;
+        END LOOP;
+        
+        IF attr_def.filter THEN
+            -- Create unknown uncontrolled values and find the IDs of the values
+            IF ccvm_row.id IS NULL THEN
+                FOR tmp_val IN SELECT value FROM UNNEST(norm_attr_value) x(value) LOOP
+                    IF tmp_val IS NOT NULL AND BTRIM(tmp_val) <> '' THEN
+                        BEGIN -- use subtransaction to isolate unique constraint violations
+                            INSERT INTO metabib.uncontrolled_record_attr_value ( attr, value ) VALUES ( attr_def.name, tmp_val );
+                        EXCEPTION WHEN unique_violation THEN END;
+                    END IF;
+                END LOOP;
+
+                SELECT ARRAY_AGG(id) INTO attr_vector_tmp FROM metabib.uncontrolled_record_attr_value WHERE attr = attr_def.name AND value = ANY( norm_attr_value );
+            ELSE
+                SELECT ARRAY_AGG(id) INTO attr_vector_tmp FROM config.coded_value_map WHERE ctype = attr_def.name AND code = ANY( norm_attr_value );
+            END IF;
+
+            -- Add the new value to the vector
+            attr_vector := attr_vector || attr_vector_tmp;
+        END IF;
+
+        IF attr_def.sorter THEN
+            DELETE FROM metabib.record_sorter WHERE source = rid AND attr = attr_def.name;
+            IF norm_attr_value[1] IS NOT NULL THEN
+                INSERT INTO metabib.record_sorter (source, attr, value) VALUES (rid, attr_def.name, norm_attr_value[1]);
+            END IF;
+        END IF;
+
+    END LOOP;
+
+/* We may need to rewrite the vlist to contain
+   the intersection of new values for requested
+   attrs and old values for ignored attrs. To
+   do this, we take the old attr vlist and
+   subtract any values that are valid for the
+   requested attrs, and then add back the new
+   set of attr values. */
+
+    IF ARRAY_LENGTH(pattr_list, 1) > 0 THEN 
+        SELECT vlist INTO attr_vector_tmp FROM metabib.record_attr_vector_list WHERE source = rid;
+        SELECT attr_vector_tmp - ARRAY_AGG(id::INT) INTO attr_vector_tmp FROM metabib.full_attr_id_map WHERE attr = ANY (pattr_list);
+        attr_vector := attr_vector || attr_vector_tmp;
+    END IF;
+
+    -- On to composite attributes, now that the record attrs have been pulled.  Processed in name order, so later composite
+    -- attributes can depend on earlier ones.
+    PERFORM metabib.compile_composite_attr_cache_init();
+    FOR attr_def IN SELECT * FROM config.record_attr_definition WHERE composite AND name = ANY( attr_list ) ORDER BY name LOOP
+
+        FOR ccvm_row IN SELECT * FROM config.coded_value_map c WHERE c.ctype = attr_def.name ORDER BY value LOOP
+
+            tmp_val := metabib.compile_composite_attr( ccvm_row.id );
+            CONTINUE WHEN tmp_val IS NULL OR tmp_val = ''; -- nothing to do
+
+            IF attr_def.filter THEN
+                IF attr_vector @@ tmp_val::query_int THEN
+                    attr_vector = attr_vector + intset(ccvm_row.id);
+                    EXIT WHEN NOT attr_def.multi;
+                END IF;
+            END IF;
+
+            IF attr_def.sorter THEN
+                IF attr_vector @@ tmp_val THEN
+                    DELETE FROM metabib.record_sorter WHERE source = rid AND attr = attr_def.name;
+                    INSERT INTO metabib.record_sorter (source, attr, value) VALUES (rid, attr_def.name, ccvm_row.code);
+                END IF;
+            END IF;
+
+        END LOOP;
+
+    END LOOP;
+
+    IF ARRAY_LENGTH(attr_vector, 1) > 0 THEN
+        IF rdeleted THEN -- initial insert OR revivication
+            DELETE FROM metabib.record_attr_vector_list WHERE source = rid;
+            INSERT INTO metabib.record_attr_vector_list (source, vlist) VALUES (rid, attr_vector);
+        ELSE
+            UPDATE metabib.record_attr_vector_list SET vlist = attr_vector WHERE source = rid;
+        END IF;
+    END IF;
+
+END;
+
+$func$ LANGUAGE PLPGSQL;
+
+CREATE INDEX config_coded_value_map_ctype_idx ON config.coded_value_map (ctype);
+
+
+SELECT evergreen.upgrade_deps_block_check('0986', :eg_version);
+
+CREATE EXTENSION IF NOT EXISTS unaccent SCHEMA public;
+
+CREATE OR REPLACE FUNCTION evergreen.unaccent_and_squash ( IN arg text) RETURNS text
+    IMMUTABLE STRICT AS $$
+	BEGIN
+	RETURN evergreen.lowercase(unaccent(regexp_replace(arg, '\s','','g')));
+	END;
+$$ LANGUAGE PLPGSQL;
+
+-- The unaccented indices for patron name fields
+CREATE INDEX actor_usr_first_given_name_unaccent_idx ON actor.usr (evergreen.unaccent_and_squash(first_given_name));
+CREATE INDEX actor_usr_second_given_name_unaccent_idx ON actor.usr (evergreen.unaccent_and_squash(second_given_name));
+CREATE INDEX actor_usr_family_name_unaccent_idx ON actor.usr (evergreen.unaccent_and_squash(family_name));
+
+-- DB setting to control behavior; true by default
+INSERT INTO config.org_unit_setting_type
+( name, grp, label, description, datatype )
+VALUES
+('circ.patron_search.diacritic_insensitive',
+ 'circ',
+ oils_i18n_gettext('circ.patron_search.diacritic_insensitive',
+     'Patron search diacritic insensitive',
+     'coust', 'label'),
+ oils_i18n_gettext('circ.patron_search.diacritic_insensitive',
+     'Match patron last, first, and middle names irrespective of usage of diacritical marks or spaces. (e.g., Ines will match Inés; de la Cruz will match Delacruz)',
+     'coust', 'description'),
+  'bool');
+
+INSERT INTO actor.org_unit_setting (
+    org_unit, name, value
+) VALUES (
+    (SELECT id FROM actor.org_unit WHERE parent_ou IS NULL),
+    'circ.patron_search.diacritic_insensitive',
+    'true'
+);
+
+
+
+
+SELECT evergreen.upgrade_deps_block_check('0987', :eg_version);
+
+INSERT INTO config.org_unit_setting_type ( name, grp, label, description, datatype )
+    VALUES (
+        'ui.circ.billing.amount_limit', 'gui',
+        oils_i18n_gettext(
+            'ui.circ.billing.amount_limit',
+            'Maximum payment amount allowed.',
+            'coust', 'label'),
+        oils_i18n_gettext(
+            'ui.circ.billing.amount_limit',
+            'The payment amount in the Patron Bills interface may not exceed the value of this setting.',
+            'coust', 'description'),
+        'currency'
+    );
+
+INSERT INTO config.org_unit_setting_type ( name, grp, label, description, datatype )
+    VALUES (
+        'ui.circ.billing.amount_warn', 'gui',
+        oils_i18n_gettext(
+            'ui.circ.billing.amount_warn',
+            'Payment amount threshold for Are You Sure? dialog.',
+            'coust', 'label'),
+        oils_i18n_gettext(
+            'ui.circ.billing.amount_warn',
+            'In the Patron Bills interface, a payment attempt will warn if the amount exceeds the value of this setting.',
+            'coust', 'description'),
+        'currency'
+    );
+
+
+SELECT evergreen.upgrade_deps_block_check('0988', :eg_version);
+
+CREATE OR REPLACE FUNCTION evergreen.maintain_901 () RETURNS TRIGGER AS $func$
+use strict;
+use MARC::Record;
+use MARC::File::XML (BinaryEncoding => 'UTF-8');
+use MARC::Charset;
+use Encode;
+use Unicode::Normalize;
+
+MARC::Charset->assume_unicode(1);
+
+my $schema = $_TD->{table_schema};
+my $marc = MARC::Record->new_from_xml($_TD->{new}{marc});
+
+my @old901s = $marc->field('901');
+$marc->delete_fields(@old901s);
+
+if ($schema eq 'biblio') {
+    my $tcn_value = $_TD->{new}{tcn_value};
+
+    # Set TCN value to record ID?
+    my $id_as_tcn = spi_exec_query("
+        SELECT enabled
+        FROM config.global_flag
+        WHERE name = 'cat.bib.use_id_for_tcn'
+    ");
+    if (($id_as_tcn->{processed}) && $id_as_tcn->{rows}[0]->{enabled} eq 't') {
+        $tcn_value = $_TD->{new}{id}; 
+        $_TD->{new}{tcn_value} = $tcn_value;
+    }
+
+    my $new_901 = MARC::Field->new("901", " ", " ",
+        "a" => $tcn_value,
+        "b" => $_TD->{new}{tcn_source},
+        "c" => $_TD->{new}{id},
+        "t" => $schema
+    );
+
+    if ($_TD->{new}{owner}) {
+        $new_901->add_subfields("o" => $_TD->{new}{owner});
+    }
+
+    if ($_TD->{new}{share_depth}) {
+        $new_901->add_subfields("d" => $_TD->{new}{share_depth});
+    }
+
+    if ($_TD->{new}{source}) {
+        my $plan = spi_prepare('
+            SELECT source
+            FROM config.bib_source
+            WHERE id = $1
+        ', 'INTEGER');
+        my $source_name =
+            spi_exec_prepared($plan, {limit => 1}, $_TD->{new}{source})->{rows}[0]{source};
+        spi_freeplan($plan);
+        $new_901->add_subfields("s" => $source_name) if $source_name;
+    }
+
+    $marc->append_fields($new_901);
+} elsif ($schema eq 'authority') {
+    my $new_901 = MARC::Field->new("901", " ", " ",
+        "c" => $_TD->{new}{id},
+        "t" => $schema,
+    );
+    $marc->append_fields($new_901);
+} elsif ($schema eq 'serial') {
+    my $new_901 = MARC::Field->new("901", " ", " ",
+        "c" => $_TD->{new}{id},
+        "t" => $schema,
+        "o" => $_TD->{new}{owning_lib},
+    );
+
+    if ($_TD->{new}{record}) {
+        $new_901->add_subfields("r" => $_TD->{new}{record});
+    }
+
+    $marc->append_fields($new_901);
+} else {
+    my $new_901 = MARC::Field->new("901", " ", " ",
+        "c" => $_TD->{new}{id},
+        "t" => $schema,
+    );
+    $marc->append_fields($new_901);
+}
+
+my $xml = $marc->as_xml_record();
+$xml =~ s/\n//sgo;
+$xml =~ s/^<\?xml.+\?\s*>//go;
+$xml =~ s/>\s+</></go;
+$xml =~ s/\p{Cc}//go;
+
+# Embed a version of OpenILS::Application::AppUtils->entityize()
+# to avoid having to set PERL5LIB for PostgreSQL as well
+
+$xml = NFC($xml);
+
+# Convert raw ampersands to entities
+$xml =~ s/&(?!\S+;)/&/gso;
+
+# Convert Unicode characters to entities
+$xml =~ s/([\x{0080}-\x{fffd}])/sprintf('&#x%X;',ord($1))/sgoe;
+
+$xml =~ s/[\x00-\x1f]//go;
+$_TD->{new}{marc} = $xml;
+
+return "MODIFY";
+$func$ LANGUAGE PLPERLU;
+
+
+SELECT evergreen.upgrade_deps_block_check('0989', :eg_version); -- berick/miker/gmcharlt
+
+CREATE OR REPLACE FUNCTION vandelay.overlay_authority_record ( import_id BIGINT, eg_id BIGINT, merge_profile_id INT ) RETURNS BOOL AS $$
+DECLARE
+    merge_profile   vandelay.merge_profile%ROWTYPE;
+    dyn_profile     vandelay.compile_profile%ROWTYPE;
+    editor_string   TEXT;
+    new_editor      INT;
+    new_edit_date   TIMESTAMPTZ;
+    source_marc     TEXT;
+    target_marc     TEXT;
+    eg_marc_row     authority.record_entry%ROWTYPE;
+    eg_marc         TEXT;
+    v_marc          TEXT;
+    replace_rule    TEXT;
+    match_count     INT;
+    update_query    TEXT;
+BEGIN
+
+    SELECT  * INTO eg_marc_row
+      FROM  authority.record_entry b
+            JOIN vandelay.authority_match m ON (m.eg_record = b.id AND m.queued_record = import_id)
+      LIMIT 1;
+
+    SELECT  q.marc INTO v_marc
+      FROM  vandelay.queued_record q
+            JOIN vandelay.authority_match m ON (m.queued_record = q.id AND q.id = import_id)
+      LIMIT 1;
+
+    eg_marc := eg_marc_row.marc;
+
+    IF eg_marc IS NULL OR v_marc IS NULL THEN
+        -- RAISE NOTICE 'no marc for vandelay or authority record';
+        RETURN FALSE;
+    END IF;
+
+    -- Extract the editor string before any modification to the vandelay
+    -- MARC occur.
+    editor_string := 
+        (oils_xpath('//*[@tag="905"]/*[@code="u"]/text()',v_marc))[1];
+
+    -- If an editor value can be found, update the authority record
+    -- editor and edit_date values.
+    IF editor_string IS NOT NULL AND editor_string <> '' THEN
+
+        -- Vandelay.pm sets the value to 'usrname' when needed.  
+        SELECT id INTO new_editor
+            FROM actor.usr WHERE usrname = editor_string;
+
+        IF new_editor IS NULL THEN
+            SELECT usr INTO new_editor
+                FROM actor.card WHERE barcode = editor_string;
+        END IF;
+
+        IF new_editor IS NOT NULL THEN
+            new_edit_date := NOW();
+        ELSE -- No valid editor, use current values
+            new_editor = eg_marc_row.editor;
+            new_edit_date = eg_marc_row.edit_date;
+        END IF;
+    ELSE
+        new_editor = eg_marc_row.editor;
+        new_edit_date = eg_marc_row.edit_date;
+    END IF;
+
+    dyn_profile := vandelay.compile_profile( v_marc );
+
+    IF merge_profile_id IS NOT NULL THEN
+        SELECT * INTO merge_profile FROM vandelay.merge_profile WHERE id = merge_profile_id;
+        IF FOUND THEN
+            dyn_profile.add_rule := BTRIM( dyn_profile.add_rule || ',' || COALESCE(merge_profile.add_spec,''), ',');
+            dyn_profile.strip_rule := BTRIM( dyn_profile.strip_rule || ',' || COALESCE(merge_profile.strip_spec,''), ',');
+            dyn_profile.replace_rule := BTRIM( dyn_profile.replace_rule || ',' || COALESCE(merge_profile.replace_spec,''), ',');
+            dyn_profile.preserve_rule := BTRIM( dyn_profile.preserve_rule || ',' || COALESCE(merge_profile.preserve_spec,''), ',');
+        END IF;
+    END IF;
+
+    IF dyn_profile.replace_rule <> '' AND dyn_profile.preserve_rule <> '' THEN
+        -- RAISE NOTICE 'both replace [%] and preserve [%] specified', dyn_profile.replace_rule, dyn_profile.preserve_rule;
+        RETURN FALSE;
+    END IF;
+
+    IF dyn_profile.replace_rule = '' AND dyn_profile.preserve_rule = '' AND dyn_profile.add_rule = '' AND dyn_profile.strip_rule = '' THEN
+        --Since we have nothing to do, just return a NOOP "we did it"
+        RETURN TRUE;
+    ELSIF dyn_profile.replace_rule <> '' THEN
+        source_marc = v_marc;
+        target_marc = eg_marc;
+        replace_rule = dyn_profile.replace_rule;
+    ELSE
+        source_marc = eg_marc;
+        target_marc = v_marc;
+        replace_rule = dyn_profile.preserve_rule;
+    END IF;
+
+    UPDATE  authority.record_entry
+      SET   marc = vandelay.merge_record_xml( target_marc, source_marc, dyn_profile.add_rule, replace_rule, dyn_profile.strip_rule ),
+            editor = new_editor,
+            edit_date = new_edit_date
+      WHERE id = eg_id;
+
+    IF NOT FOUND THEN 
+        -- Import/merge failed.  Nothing left to do.
+        RETURN FALSE;
+    END IF;
+
+    -- Authority record successfully merged / imported.
+
+    -- Update the vandelay record to show the successful import.
+    UPDATE  vandelay.queued_authority_record
+      SET   imported_as = eg_id,
+            import_time = NOW()
+      WHERE id = import_id;
+
+    RETURN TRUE;
+
+END;
+$$ LANGUAGE PLPGSQL;
+
+
+
+
+SELECT evergreen.upgrade_deps_block_check('0990', :eg_version);
+
+CREATE OR REPLACE FUNCTION rating.copy_count(badge_id INT)
+    RETURNS TABLE (record INT, value NUMERIC) AS $f$
+DECLARE
+    badge   rating.badge_with_orgs%ROWTYPE;
+BEGIN
+
+    SELECT * INTO badge FROM rating.badge_with_orgs WHERE id = badge_id;
+
+    PERFORM rating.precalc_bibs_by_copy(badge_id);
+
+    DELETE FROM precalc_copy_filter_bib_list WHERE id NOT IN (
+        SELECT id FROM precalc_filter_bib_list
+            INTERSECT
+        SELECT id FROM precalc_bibs_by_copy_list
+    );
+    ANALYZE precalc_copy_filter_bib_list;
+
+    RETURN QUERY
+     SELECT f.id::INT AS bib,
+            COUNT(f.copy)::NUMERIC
+      FROM  precalc_copy_filter_bib_list f
+            JOIN asset.copy cp ON (f.copy = cp.id)
+            JOIN asset.call_number cn ON (cn.id = cp.call_number)
+      WHERE cn.owning_lib = ANY (badge.orgs) GROUP BY 1;
+
+END;
+$f$ LANGUAGE PLPGSQL STRICT;
+
+INSERT INTO rating.popularity_parameter (id, name, func, require_percentile) VALUES (16, 'Copy Count', 'rating.copy_count', TRUE);
+
+
+
+SELECT evergreen.upgrade_deps_block_check('0991', :eg_version);
+
+CREATE OR REPLACE FUNCTION evergreen.ranked_volumes(
+    bibid BIGINT[], 
+    ouid INT,
+    depth INT DEFAULT NULL,
+    slimit HSTORE DEFAULT NULL,
+    soffset HSTORE DEFAULT NULL,
+    pref_lib INT DEFAULT NULL,
+    includes TEXT[] DEFAULT NULL::TEXT[]
+) RETURNS TABLE(id BIGINT, name TEXT, label_sortkey TEXT, rank BIGINT) AS $$
+    WITH RECURSIVE ou_depth AS (
+        SELECT COALESCE(
+            $3,
+            (
+                SELECT depth
+                FROM actor.org_unit_type aout
+                    INNER JOIN actor.org_unit ou ON ou_type = aout.id
+                WHERE ou.id = $2
+            )
+        ) AS depth
+    ), descendant_depth AS (
+        SELECT  ou.id,
+                ou.parent_ou,
+                out.depth
+        FROM  actor.org_unit ou
+                JOIN actor.org_unit_type out ON (out.id = ou.ou_type)
+                JOIN anscestor_depth ad ON (ad.id = ou.id),
+                ou_depth
+        WHERE ad.depth = ou_depth.depth
+            UNION ALL
+        SELECT  ou.id,
+                ou.parent_ou,
+                out.depth
+        FROM  actor.org_unit ou
+                JOIN actor.org_unit_type out ON (out.id = ou.ou_type)
+                JOIN descendant_depth ot ON (ot.id = ou.parent_ou)
+    ), anscestor_depth AS (
+        SELECT  ou.id,
+                ou.parent_ou,
+                out.depth
+        FROM  actor.org_unit ou
+                JOIN actor.org_unit_type out ON (out.id = ou.ou_type)
+        WHERE ou.id = $2
+            UNION ALL
+        SELECT  ou.id,
+                ou.parent_ou,
+                out.depth
+        FROM  actor.org_unit ou
+                JOIN actor.org_unit_type out ON (out.id = ou.ou_type)
+                JOIN anscestor_depth ot ON (ot.parent_ou = ou.id)
+    ), descendants as (
+        SELECT ou.* FROM actor.org_unit ou JOIN descendant_depth USING (id)
+    )
+
+    SELECT ua.id, ua.name, ua.label_sortkey, MIN(ua.rank) AS rank FROM (
+        SELECT acn.id, owning_lib.name, acn.label_sortkey,
+            evergreen.rank_cp(acp),
+            RANK() OVER w
+        FROM asset.call_number acn
+            JOIN asset.copy acp ON (acn.id = acp.call_number)
+            JOIN descendants AS aou ON (acp.circ_lib = aou.id)
+            JOIN actor.org_unit AS owning_lib ON (acn.owning_lib = owning_lib.id)
+        WHERE acn.record = ANY ($1)
+            AND acn.deleted IS FALSE
+            AND acp.deleted IS FALSE
+            AND CASE WHEN ('exclude_invisible_acn' = ANY($7)) THEN 
+                EXISTS (
+                    SELECT 1 
+                    FROM asset.opac_visible_copies 
+                    WHERE copy_id = acp.id AND record = acn.record
+                ) ELSE TRUE END
+        GROUP BY acn.id, evergreen.rank_cp(acp), owning_lib.name, acn.label_sortkey, aou.id
+        WINDOW w AS (
+            ORDER BY 
+                COALESCE(
+                    CASE WHEN aou.id = $2 THEN -20000 END,
+                    CASE WHEN aou.id = $6 THEN -10000 END,
+                    (SELECT distance - 5000
+                        FROM actor.org_unit_descendants_distance($6) as x
+                        WHERE x.id = aou.id AND $6 IN (
+                            SELECT q.id FROM actor.org_unit_descendants($2) as q)),
+                    (SELECT e.distance FROM actor.org_unit_descendants_distance($2) as e WHERE e.id = aou.id),
+                    1000
+                ),
+                evergreen.rank_cp(acp)
+        )
+    ) AS ua
+    GROUP BY ua.id, ua.name, ua.label_sortkey
+    ORDER BY rank, ua.name, ua.label_sortkey
+    LIMIT ($4 -> 'acn')::INT
+    OFFSET ($5 -> 'acn')::INT;
+$$ LANGUAGE SQL STABLE ROWS 10;
+
+
+
+SELECT evergreen.upgrade_deps_block_check('0992', :eg_version);
+
+ALTER TABLE config.copy_status
+    ADD COLUMN is_available BOOL NOT NULL DEFAULT FALSE;
+
+UPDATE config.copy_status SET is_available = TRUE
+    WHERE id IN (0, 7); -- available, reshelving.
+
+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;
+    circ_limit_set          config.circ_limit_set%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 <> 8 AND item_object.status NOT IN (
+        (SELECT id FROM config.copy_status WHERE is_available) ) 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_AGG(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 out by defined limit sets
+    FOR circ_limit_set IN SELECT ccls.* FROM config.circ_limit_set ccls
+      JOIN config.circ_matrix_limit_set_map ccmlsm ON ccmlsm.limit_set = ccls.id
+      WHERE ccmlsm.active AND ( ccmlsm.matchpoint = circ_matchpoint.id OR
+        ( ccmlsm.matchpoint IN (SELECT * FROM unnest(result.buildrows)) AND ccmlsm.fallthrough )
+        ) LOOP
+            IF circ_limit_set.items_out > 0 AND NOT renewal THEN
+                SELECT INTO context_org_list ARRAY_AGG(aou.id)
+                  FROM actor.org_unit_full_path( circ_ou ) aou
+                    JOIN actor.org_unit_type aout ON aou.ou_type = aout.id
+                  WHERE aout.depth >= circ_limit_set.depth;
+                IF circ_limit_set.global THEN
+                    WITH RECURSIVE descendant_depth AS (
+                        SELECT  ou.id,
+                            ou.parent_ou
+                        FROM  actor.org_unit ou
+                        WHERE ou.id IN (SELECT * FROM unnest(context_org_list))
+                            UNION
+                        SELECT  ou.id,
+                            ou.parent_ou
+                        FROM  actor.org_unit ou
+                            JOIN descendant_depth ot ON (ot.id = ou.parent_ou)
+                    ) SELECT INTO context_org_list ARRAY_AGG(ou.id) FROM actor.org_unit ou JOIN descendant_depth USING (id);
+                END IF;
+                SELECT INTO items_out COUNT(DISTINCT circ.id)
+                  FROM action.circulation circ
+                    JOIN asset.copy copy ON (copy.id = circ.target_copy)
+                    LEFT JOIN action.circulation_limit_group_map aclgm ON (circ.id = aclgm.circ)
+                  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 (copy.circ_modifier IN (SELECT circ_mod FROM config.circ_limit_set_circ_mod_map WHERE limit_set = circ_limit_set.id)
+                        OR copy.location IN (SELECT copy_loc FROM config.circ_limit_set_copy_loc_map WHERE limit_set = circ_limit_set.id)
+                        OR aclgm.limit_group IN (SELECT limit_group FROM config.circ_limit_set_group_map WHERE limit_set = circ_limit_set.id)
+                    );
+                IF items_out >= circ_limit_set.items_out THEN
+                    result.fail_part := 'config.circ_matrix_circ_mod_test';
+                    result.success := FALSE;
+                    done := TRUE;
+                    RETURN NEXT result;
+                END IF;
+            END IF;
+            SELECT INTO result.limit_groups result.limit_groups || ARRAY_AGG(limit_group) FROM config.circ_limit_set_group_map WHERE limit_set = circ_limit_set.id AND NOT check_only;
+    END LOOP;
+
+    -- If we passed everything, return the successful matchpoint
+    IF NOT done THEN
+        RETURN NEXT result;
+    END IF;
+
+    RETURN;
+END;
+$func$ LANGUAGE plpgsql;
+
+
+
+SELECT evergreen.upgrade_deps_block_check('0993', :eg_version);
+
+ALTER TABLE config.usr_activity_type 
+    ALTER COLUMN transient SET DEFAULT TRUE;
+
+-- Utility function for removing all activity entries by activity type,
+-- except for the most recent entry per user.  This is primarily useful
+-- when cleaning up rows prior to setting the transient flag on an
+-- activity type to true.  It allows for immediate cleanup of data (e.g.
+-- for patron privacy) and lets admins control when the data is deleted,
+-- which could be useful for huge activity tables.
+
+CREATE OR REPLACE FUNCTION 
+    actor.purge_usr_activity_by_type(act_type INTEGER) 
+    RETURNS VOID AS $$
+DECLARE
+    cur_usr INTEGER;
+BEGIN
+    FOR cur_usr IN SELECT DISTINCT(usr) 
+        FROM actor.usr_activity WHERE etype = act_type LOOP
+        DELETE FROM actor.usr_activity WHERE id IN (
+            SELECT id 
+            FROM actor.usr_activity 
+            WHERE usr = cur_usr AND etype = act_type
+            ORDER BY event_time DESC OFFSET 1
+        );
+
+    END LOOP;
+END $$ LANGUAGE PLPGSQL;
+
+
+
+
+SELECT evergreen.upgrade_deps_block_check('0994', :eg_version);
+
+CREATE OR REPLACE FUNCTION authority.propagate_changes 
+    (aid BIGINT, bid BIGINT) RETURNS BIGINT AS $func$
+DECLARE
+    bib_rec biblio.record_entry%ROWTYPE;
+    new_marc TEXT;
+BEGIN
+
+    SELECT INTO bib_rec * FROM biblio.record_entry WHERE id = bid;
+
+    new_marc := vandelay.merge_record_xml(
+        bib_rec.marc, authority.generate_overlay_template(aid));
+
+    IF new_marc = bib_rec.marc THEN
+        -- Authority record change had no impact on this bib record.
+        -- Nothing left to do.
+        RETURN aid;
+    END IF;
+
+    PERFORM 1 FROM config.global_flag 
+        WHERE name = 'ingest.disable_authority_auto_update_bib_meta' 
+            AND enabled;
+
+    IF NOT FOUND THEN 
+        -- update the bib record editor and edit_date
+        bib_rec.editor := (
+            SELECT editor FROM authority.record_entry WHERE id = aid);
+        bib_rec.edit_date = NOW();
+    END IF;
+
+    UPDATE biblio.record_entry SET
+        marc = new_marc,
+        editor = bib_rec.editor,
+        edit_date = bib_rec.edit_date
+    WHERE id = bid;
+
+    RETURN aid;
+
+END;
+$func$ LANGUAGE PLPGSQL;
+
+
+-- DATA
+-- Disabled by default
+INSERT INTO config.global_flag (name, enabled, label) VALUES (
+    'ingest.disable_authority_auto_update_bib_meta',  FALSE, 
+    oils_i18n_gettext(
+        'ingest.disable_authority_auto_update_bib_meta',
+        'Authority Automation: Disable automatic authority updates ' ||
+            'from modifying bib record editor and edit_date',
+        'cgf',
+        'label'
+    )
+);
+
+
+CREATE OR REPLACE FUNCTION authority.indexing_ingest_or_delete () RETURNS TRIGGER AS $func$
+DECLARE
+    ashs    authority.simple_heading%ROWTYPE;
+    mbe_row metabib.browse_entry%ROWTYPE;
+    mbe_id  BIGINT;
+    ash_id  BIGINT;
+BEGIN
+
+    IF NEW.deleted IS TRUE THEN -- If this authority is deleted
+        DELETE FROM authority.bib_linking WHERE authority = NEW.id; -- Avoid updating fields in bibs that are no longer visible
+        DELETE FROM authority.full_rec WHERE record = NEW.id; -- Avoid validating fields against deleted authority records
+        DELETE FROM authority.simple_heading WHERE record = NEW.id;
+          -- Should remove matching $0 from controlled fields at the same time?
+
+        -- XXX What do we about the actual linking subfields present in
+        -- authority records that target this one when this happens?
+        DELETE FROM authority.authority_linking
+            WHERE source = NEW.id OR target = NEW.id;
+
+        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;
+
+        -- Unless there's a setting stopping us, propagate these updates to any linked bib records when the heading changes
+        PERFORM * FROM config.internal_flag WHERE name = 'ingest.disable_authority_auto_update' AND enabled;
+
+        IF NOT FOUND AND NEW.heading <> OLD.heading THEN
+            PERFORM authority.propagate_changes(NEW.id);
+        END IF;
+	
+        DELETE FROM authority.simple_heading WHERE record = NEW.id;
+        DELETE FROM authority.authority_linking WHERE source = NEW.id;
+    END IF;
+
+    INSERT INTO authority.authority_linking (source, target, field)
+        SELECT source, target, field FROM authority.calculate_authority_linking(
+            NEW.id, NEW.control_set, NEW.marc::XML
+        );
+
+    FOR ashs IN SELECT * FROM authority.simple_heading_set(NEW.marc) LOOP
+
+        INSERT INTO authority.simple_heading (record,atag,value,sort_value,thesaurus)
+            VALUES (ashs.record, ashs.atag, ashs.value, ashs.sort_value, ashs.thesaurus);
+            ash_id := CURRVAL('authority.simple_heading_id_seq'::REGCLASS);
+
+        SELECT INTO mbe_row * FROM metabib.browse_entry
+            WHERE value = ashs.value AND sort_value = ashs.sort_value;
+
+        IF FOUND THEN
+            mbe_id := mbe_row.id;
+        ELSE
+            INSERT INTO metabib.browse_entry
+                ( value, sort_value ) VALUES
+                ( ashs.value, ashs.sort_value );
+
+            mbe_id := CURRVAL('metabib.browse_entry_id_seq'::REGCLASS);
+        END IF;
+
+        INSERT INTO metabib.browse_entry_simple_heading_map (entry,simple_heading) VALUES (mbe_id,ash_id);
+
+    END LOOP;
+
+    -- Flatten and insert the afr data
+    PERFORM * FROM config.internal_flag WHERE name = 'ingest.disable_authority_full_rec' AND enabled;
+    IF NOT FOUND THEN
+        PERFORM authority.reingest_authority_full_rec(NEW.id);
+        PERFORM * FROM config.internal_flag WHERE name = 'ingest.disable_authority_rec_descriptor' AND enabled;
+        IF NOT FOUND THEN
+            PERFORM authority.reingest_authority_rec_descriptor(NEW.id);
+        END IF;
+    END IF;
+
+    RETURN NEW;
+END;
+$func$ LANGUAGE PLPGSQL;
+
+
+
+SELECT evergreen.upgrade_deps_block_check('0995', :eg_version);
+
+INSERT INTO rating.badge (name, description, scope, weight, horizon_age, importance_age, importance_interval, importance_scale, recalc_interval, popularity_parameter, percentile)
+   VALUES('Top Holds Over Last 5 Years', 'The top 97th percentile for holds requested over the past five years on all materials. More weight is given to holds requested over the last year, with importance decreasing for every year after that.', 1, 3, '5 years', '5 years', '1 year', 2, '1 day', 2, 97);
+
+
+SELECT evergreen.upgrade_deps_block_check('0996', :eg_version);
+
+INSERT INTO config.usr_setting_type (
+    name,
+    opac_visible,
+    label,
+    description,
+    datatype
+) VALUES (
+    'circ.send_email_checkout_receipts',
+    TRUE,
+    oils_i18n_gettext('circ.send_email_checkout_receipts', 'Email checkout receipts by default?', 'cust', 'label'),
+    oils_i18n_gettext('circ.send_email_checkout_receipts', 'Email checkout receipts by default?', 'cust', 'description'),
+    'bool'
+);
+
+INSERT INTO action_trigger.hook (key, core_type, description, passive)
+VALUES (
+    'circ.checkout.batch_notify',
+    'circ',
+    oils_i18n_gettext(
+        'circ.checkout.batch_notify',
+        'Notification of a group of circs',
+        'ath',
+        'description'
+    ),
+    FALSE
+);
+
+INSERT INTO action_trigger.hook (key, core_type, description, passive)
+VALUES (
+    'circ.checkout.batch_notify.session',
+    'circ',
+    oils_i18n_gettext(
+        'circ.checkout.batch_notify.session',
+        'Notification of a group of circs at the end of a checkout session',
+        'ath',
+        'description'
+    ),
+    FALSE
+);
+
+INSERT INTO action_trigger.event_definition (
+    active,
+    owner,
+    name,
+    hook,
+    validator,
+    reactor,
+    usr_field,
+    opt_in_setting,
+    group_field,
+    template
+) VALUES (
+    TRUE,
+    1,
+    'Email Checkout Receipt',
+    'circ.checkout.batch_notify.session',
+    'NOOP_True',
+    'SendEmail',
+    'usr',
+    'circ.send_email_checkout_receipts',
+    'usr',
+    $$[%- USE date -%]
+[%- user = target.0.usr -%]
+To: [%- params.recipient_email || user.email %]
+From: [%- helpers.get_org_setting(target.0.circ_lib.id, 'org.bounced_emails') || params.sender_email || default_sender %]
+Subject: Checkout Receipt
+Auto-Submitted: auto-generated
+
+You checked out the following items:
+
+[% FOR circ IN target %]
+    [%- copy_details = helpers.get_copy_bib_basics(circ.target_copy.id) -%]
+    Title: [% copy_details.title %]
+    Author: [% copy_details.author %]
+    Call Number: [% circ.target_copy.call_number.label %]
+    Barcode: [% circ.target_copy.barcode %]
+    Due: [% date.format(helpers.format_date(circ.due_date), '%Y-%m-%d') %]
+    Library: [% circ.circ_lib.name %]
+
+[% END %]
+$$);
+
+INSERT INTO action_trigger.environment (
+    event_def,
+    path
+) VALUES (
+    currval('action_trigger.event_definition_id_seq'),
+    'target_copy.call_number'
+), (
+    currval('action_trigger.event_definition_id_seq'),
+    'target_copy.location'
+), (
+    currval('action_trigger.event_definition_id_seq'),
+    'usr'
+), (
+    currval('action_trigger.event_definition_id_seq'),
+    'circ_lib'
+);
+
+
+
+SELECT evergreen.upgrade_deps_block_check('0997', :eg_version);
+
+INSERT INTO config.copy_status (id, name, holdable, opac_visible) VALUES (18,oils_i18n_gettext(18, 'Canceled Transit', 'ccs', 'name'), 't', 't');
+
+
+
+SELECT evergreen.upgrade_deps_block_check('0998', :eg_version);
+
+DROP VIEW IF EXISTS action.all_circulation;
+CREATE VIEW action.all_circulation AS
+     SELECT aged_circulation.id, aged_circulation.usr_post_code,
+        aged_circulation.usr_home_ou, aged_circulation.usr_profile,
+        aged_circulation.usr_birth_year, aged_circulation.copy_call_number,
+        aged_circulation.copy_location, aged_circulation.copy_owning_lib,
+        aged_circulation.copy_circ_lib, aged_circulation.copy_bib_record,
+        aged_circulation.xact_start, aged_circulation.xact_finish,
+        aged_circulation.target_copy, aged_circulation.circ_lib,
+        aged_circulation.circ_staff, aged_circulation.checkin_staff,
+        aged_circulation.checkin_lib, aged_circulation.renewal_remaining,
+        aged_circulation.grace_period, aged_circulation.due_date,
+        aged_circulation.stop_fines_time, aged_circulation.checkin_time,
+        aged_circulation.create_time, aged_circulation.duration,
+        aged_circulation.fine_interval, aged_circulation.recurring_fine,
+        aged_circulation.max_fine, aged_circulation.phone_renewal,
+        aged_circulation.desk_renewal, aged_circulation.opac_renewal,
+        aged_circulation.duration_rule,
+        aged_circulation.recurring_fine_rule,
+        aged_circulation.max_fine_rule, aged_circulation.stop_fines,
+        aged_circulation.workstation, aged_circulation.checkin_workstation,
+        aged_circulation.checkin_scan_time, aged_circulation.parent_circ,
+        NULL AS usr
+       FROM action.aged_circulation
+UNION ALL
+     SELECT DISTINCT circ.id,
+        COALESCE(a.post_code, b.post_code) AS usr_post_code,
+        p.home_ou AS usr_home_ou, p.profile AS usr_profile,
+        date_part('year'::text, p.dob)::integer AS usr_birth_year,
+        cp.call_number AS copy_call_number, circ.copy_location,
+        cn.owning_lib AS copy_owning_lib, cp.circ_lib AS copy_circ_lib,
+        cn.record AS copy_bib_record, circ.xact_start, circ.xact_finish,
+        circ.target_copy, circ.circ_lib, circ.circ_staff,
+        circ.checkin_staff, circ.checkin_lib, circ.renewal_remaining,
+        circ.grace_period, circ.due_date, circ.stop_fines_time,
+        circ.checkin_time, circ.create_time, circ.duration,
+        circ.fine_interval, circ.recurring_fine, circ.max_fine,
+        circ.phone_renewal, circ.desk_renewal, circ.opac_renewal,
+        circ.duration_rule, circ.recurring_fine_rule, circ.max_fine_rule,
+        circ.stop_fines, circ.workstation, circ.checkin_workstation,
+        circ.checkin_scan_time, circ.parent_circ, circ.usr
+       FROM action.circulation circ
+  JOIN asset.copy cp ON circ.target_copy = cp.id
+JOIN asset.call_number cn ON cp.call_number = cn.id
+JOIN actor.usr p ON circ.usr = p.id
+LEFT JOIN actor.usr_address a ON p.mailing_address = a.id
+LEFT JOIN actor.usr_address b ON p.billing_address = b.id;
+
+
+CREATE OR REPLACE FUNCTION action.all_circ_chain (ctx_circ_id INTEGER) 
+    RETURNS SETOF action.all_circulation AS $$
+DECLARE
+    tmp_circ action.all_circulation%ROWTYPE;
+    circ_0 action.all_circulation%ROWTYPE;
+BEGIN
+
+    SELECT INTO tmp_circ * FROM action.all_circulation WHERE id = ctx_circ_id;
+
+    IF tmp_circ IS NULL THEN
+        RETURN NEXT tmp_circ;
+    END IF;
+    circ_0 := tmp_circ;
+
+    -- find the front of the chain
+    WHILE TRUE LOOP
+        SELECT INTO tmp_circ * FROM action.all_circulation 
+            WHERE id = tmp_circ.parent_circ;
+        IF tmp_circ IS NULL THEN
+            EXIT;
+        END IF;
+        circ_0 := tmp_circ;
+    END LOOP;
+
+    -- now send the circs to the caller, oldest to newest
+    tmp_circ := circ_0;
+    WHILE TRUE LOOP
+        IF tmp_circ IS NULL THEN
+            EXIT;
+        END IF;
+        RETURN NEXT tmp_circ;
+        SELECT INTO tmp_circ * FROM action.all_circulation 
+            WHERE parent_circ = tmp_circ.id;
+    END LOOP;
+
+END;
+$$ LANGUAGE 'plpgsql';
+
+CREATE OR REPLACE FUNCTION action.summarize_all_circ_chain 
+    (ctx_circ_id INTEGER) RETURNS action.circ_chain_summary AS $$
+
+DECLARE
+
+    -- first circ in the chain
+    circ_0 action.all_circulation%ROWTYPE;
+
+    -- last circ in the chain
+    circ_n action.all_circulation%ROWTYPE;
+
+    -- circ chain under construction
+    chain action.circ_chain_summary;
+    tmp_circ action.all_circulation%ROWTYPE;
+
+BEGIN
+    
+    chain.num_circs := 0;
+    FOR tmp_circ IN SELECT * FROM action.all_circ_chain(ctx_circ_id) LOOP
+
+        IF chain.num_circs = 0 THEN
+            circ_0 := tmp_circ;
+        END IF;
+
+        chain.num_circs := chain.num_circs + 1;
+        circ_n := tmp_circ;
+    END LOOP;
+
+    chain.start_time := circ_0.xact_start;
+    chain.last_stop_fines := circ_n.stop_fines;
+    chain.last_stop_fines_time := circ_n.stop_fines_time;
+    chain.last_checkin_time := circ_n.checkin_time;
+    chain.last_checkin_scan_time := circ_n.checkin_scan_time;
+    SELECT INTO chain.checkout_workstation name FROM actor.workstation WHERE id = circ_0.workstation;
+    SELECT INTO chain.last_checkin_workstation name FROM actor.workstation WHERE id = circ_n.checkin_workstation;
+
+    IF chain.num_circs > 1 THEN
+        chain.last_renewal_time := circ_n.xact_start;
+        SELECT INTO chain.last_renewal_workstation name FROM actor.workstation WHERE id = circ_n.workstation;
+    END IF;
+
+    RETURN chain;
+
+END;
+$$ LANGUAGE 'plpgsql';
+
+
+
+
+SELECT evergreen.upgrade_deps_block_check('0999', :eg_version);
+
+CREATE TABLE staging.setting_stage (
+        row_id          BIGSERIAL PRIMARY KEY,
+        row_date        TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
+        usrname         TEXT NOT NULL,
+        setting         TEXT NOT NULL,
+        value           TEXT NOT NULL,
+        complete        BOOL DEFAULT FALSE
+);
+
+-- Add Spanish to config.i18n_locale table
+
+
+SELECT evergreen.upgrade_deps_block_check('1000', :eg_version);
+
+INSERT INTO config.i18n_locale (code,marc_code,name,description)
+    VALUES ('es-ES', 'spa', oils_i18n_gettext('es-ES', 'Spanish', 'i18n_l', 'name'),
+        oils_i18n_gettext('es-ES', 'Spanish', 'i18n_l', 'description'));
+
+COMMIT;
+
+\qecho
+\qecho
+\qecho Now running an update to set the 901$s for bibliographic
+\qecho records that have a source set. This may take a while.
+\qecho
+\qecho The update can be cancelled now and run later
+\qecho using the following SQL statement:
+\qecho
+\qecho UPDATE biblio.record_entry SET id = id WHERE source IS NOT NULL;
+\qecho
+UPDATE biblio.record_entry SET id = id WHERE source IS NOT NULL;
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 7b2b3f5..46eeab1 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/?p=Evergreen.git;a=shortlog;h=refs/heads/tags/rel_2_11_0</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 0613a13..bba5230 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/?p=Evergreen.git;a=shortlog;h=refs/heads/tags/rel_2_11_0");
 pref("open-ils.repository.author","$Author$");
 pref("open-ils.repository.revision","$Revision$");
 pref("open-ils.repository.date","$Date$");
diff --git a/Open-ILS/xul/staff_client/windowssetup.nsi b/Open-ILS/xul/staff_client/windowssetup.nsi
index a954357..5ebcd7a 100644
--- a/Open-ILS/xul/staff_client/windowssetup.nsi
+++ b/Open-ILS/xul/staff_client/windowssetup.nsi
@@ -3,7 +3,7 @@
 ; HM NIS Edit Wizard helper defines
 ; Old versions of makensis don't like this, moved to Makefile
 ;!define /file PRODUCT_VERSION "client/VERSION"
-!define PRODUCT_TAG "Master"
+!define PRODUCT_TAG "2.11"
 !define PRODUCT_INSTALL_TAG "${PRODUCT_TAG}"
 !define UI_IMAGESET "beta"
 ;!define UI_IMAGESET "release"
diff --git a/README b/README
deleted file mode 120000
index b57451a..0000000
--- a/README
+++ /dev/null
@@ -1 +0,0 @@
-docs/installation/server_installation.txt
\ No newline at end of file
diff --git a/README b/README
new file mode 100644
index 0000000..1918d37
--- /dev/null
+++ b/README
@@ -0,0 +1,706 @@
+Installing the Evergreen server
+===============================
+:toc:
+:numbered:
+
+Preamble: referenced user accounts
+----------------------------------
+
+In subsequent sections, we will refer to a number of different accounts, as
+follows:
+
+  * Linux user accounts:
+    ** The *user* Linux account is the account that you use to log onto the
+       Linux system as a regular user.
+    ** The *root* Linux account is an account that has system administrator
+       privileges. On Debian and Fedora you can switch to this account from
+       your *user* account by issuing the `su -` command and entering the
+       password for the *root* account when prompted. On Ubuntu you can switch
+       to this account from your *user* account using the `sudo su -` command
+       and entering the password for your *user* account when prompted.
+    ** The *opensrf* Linux account is an account that you create when installing
+       OpenSRF. You can switch to this account from the *root* account by
+       issuing the `su - opensrf` command.
+    ** The *postgres* Linux account is created automatically when you install
+       the PostgreSQL database server. You can switch to this account from the
+       *root* account by issuing the `su - postgres` command.
+  * PostgreSQL user accounts:
+    ** The *evergreen* PostgreSQL account is a superuser account that you will
+       create to connect to the PostgreSQL database server.
+  * Evergreen administrator account:
+    ** The *egadmin* Evergreen account is an administrator account for
+       Evergreen that you will use to test connectivity and configure your
+       Evergreen instance.
+
+Preamble: developer instructions
+--------------------------------
+
+[NOTE]
+Skip this section if you are using an official release tarball downloaded
+from http://evergreen-ils.org/egdownloads
+
+Developers working directly with the source code from the Git repository,
+rather than an official release tarball, must perform one step before they 
+can proceed with the `./configure` step.
+
+As the *user* Linux account, issue the following command in the Evergreen
+source directory to generate the configure script and Makefiles:
+
+[source, bash]
+------------------------------------------------------------------------------
+autoreconf -i
+------------------------------------------------------------------------------
+
+Installing prerequisites
+------------------------
+
+  * **PostgreSQL**: Version 9.3 is recommended. The minimum supported version
+    is 9.1.
+  * **Linux**: Evergreen 2.8 has been tested on Debian Jessie (8.0), 
+    Debian Wheezy (7.0), Ubuntu Xenial Xerus (16.04), 
+    Ubuntu Trusty Tahr (14.04), and Fedora. 
+    If you are running an older version of these distributions, you may want 
+    to upgrade before upgrading Evergreen. For instructions on upgrading these
+    distributions, visit the Debian, Ubuntu or Fedora websites.
+  * **OpenSRF**: The minimum supported version of OpenSRF is 2.4.0.
+
+
+Evergreen has a number of prerequisite packages that must be installed
+before you can successfully configure, compile, and install Evergreen.
+
+1. Begin by installing the most recent version of OpenSRF (2.4.0 or later).
+   You can download OpenSRF releases from http://evergreen-ils.org/opensrf-downloads/
+2. On some distributions, it is necessary to install PostgreSQL 9.1+ from external
+   repositories.
++
+  * Debian (Wheezy and Jessie) and Ubuntu (Trusty and Xenial) comes with
+    PostgreSQL 9.1+, so no additional steps are required.
+  * Fedora 19 and 20 come with PostgreSQL 9.2+, so no additional steps are required.
++
+3. On Debian and Ubuntu, run `aptitude update` as the *root* Linux account to
+   retrieve the new packages from the backports repository.
+4. Issue the following commands as the *root* Linux account to install
+   prerequisites using the `Makefile.install` prerequisite installer,
+   substituting `debian-jessie`, `debian-wheezy`, `fedora`, 
+   `ubuntu-xenial`, or `ubuntu-trusty` for <osname> below:
++
+[source, bash]
+------------------------------------------------------------------------------
+make -f Open-ILS/src/extras/Makefile.install <osname>
+------------------------------------------------------------------------------
++
+5. Add the libdbi-libdbd libraries to the system dynamic library path by
+   issuing the following commands as the *root* Linux account:
++
+[NOTE]
+You should skip this step if installing on Ubuntu Trusty, Ubuntu Xenial or Debian Jessie. The Ubuntu
+and Debian Jessie targets use libdbd-pgsql from packages.
++
+.Debian Wheezy
+[source, bash]
+------------------------------------------------------------------------------
+echo "/usr/local/lib/dbd" > /etc/ld.so.conf.d/eg.conf
+ldconfig
+------------------------------------------------------------------------------
++
+.Fedora
+[source, bash]
+------------------------------------------------------------------------------
+echo "/usr/lib64/dbd" > /etc/ld.so.conf.d/eg.conf
+ldconfig
+------------------------------------------------------------------------------
+
+6. OPTIONAL: Developer additions
++
+To perform certain developer tasks from a Git source code checkout, 
+additional packages may be required.  As the *root* Linux account:
++
+ * To install packages needed for retriving and managing web dependencies,
+   use the <osname>-developer Makefile.install target.  Currently, 
+   this is only needed for building and installing the (preview) browser 
+   staff client.
++
+[source, bash]
+------------------------------------------------------------------------------
+make -f Open-ILS/src/extras/Makefile.install <osname>-developer
+------------------------------------------------------------------------------
++
+ * To install packages required for building Evergreen release bundles, use
+   the <osname>-packager Makefile.install target.
++
+[source, bash]
+------------------------------------------------------------------------------
+make -f Open-ILS/src/extras/Makefile.install <osname>-packager
+------------------------------------------------------------------------------
+
+Optional: Extra steps for browser-based staff client
+----------------------------------------------------
+
+[NOTE]
+Skip this entire section if you are using an official release tarball downloaded
+from http://evergreen-ils.org/downloads
+
+[NOTE]
+You make skip the subsection `Install dependencies for browser-based staff client'
+if you are installing on either Debian Jessie, Ubuntu Trusty, or Ubuntu Xenial and you have
+installed the `Optional: Developer Additions' described above.  You will still
+need to do the steps in `Install files for browser-based staff client' below.
+
+Install dependencies for browser-based staff client
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+1. Install Node.js.  For more information see also:
+   https://github.com/joyent/node/wiki/installation[Node.js Installation]
++
+[source,sh]
+------------------------------------------------------------------------------
+# Go to a temporary directory
+cd /tmp
+
+# Clone the code and checkout the necessary version
+git clone https://github.com/joyent/node.git
+cd node
+git checkout -b v0.10.28 v0.10.28
+
+# set -j to the number of CPU cores on the server + 1
+./configure && make -j2 && sudo make install
+
+# update packages
+% sudo npm update
+------------------------------------------------------------------------------
++
+2. Install Grunt CLI
++
+[source,sh]
+------------------------------------------------------------------------------
+% sudo npm install -g grunt-cli
+------------------------------------------------------------------------------
++
+3. Install Bower
++
+[source,sh]
+------------------------------------------------------------------------------
+% sudo npm install -g bower
+------------------------------------------------------------------------------
+
+Install files for browser-based staff client
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+1. Building, Testing, Minification: The remaining steps all take place within
+   the staff JS web root:
++
+[source,sh]
+------------------------------------------------------------------------------
+cd $EVERGREEN_ROOT/Open-ILS/web/js/ui/default/staff/
+------------------------------------------------------------------------------
++
+2. Install Project-local Dependencies. npm inspects the 'package.json' file
+   for dependencies and fetches them from the Node package network.
++
+[source,sh]
+------------------------------------------------------------------------------
+npm install   # fetch Grunt dependencies
+bower install # fetch JS dependencies
+------------------------------------------------------------------------------
++
+3. Run the build script.
++
+[source,sh]
+------------------------------------------------------------------------------
+# build, run tests, concat+minify
+grunt all
+------------------------------------------------------------------------------
+
+
+Configuration and compilation instructions
+------------------------------------------
+
+For the time being, we are still installing everything in the `/openils/`
+directory. From the Evergreen source directory, issue the following commands as
+the *user* Linux account to configure and build Evergreen:
+
+[source, bash]
+------------------------------------------------------------------------------
+PATH=/openils/bin:$PATH ./configure --prefix=/openils --sysconfdir=/openils/conf
+make
+------------------------------------------------------------------------------
+
+These instructions assume that you have also installed OpenSRF under `/openils/`.
+If not, please adjust PATH as needed so that the Evergreen `configure` script
+can find `osrf_config`.
+
+Installation instructions
+-------------------------
+
+1. Once you have configured and compiled Evergreen, issue the following
+   command as the *root* Linux account to install Evergreen, build the server
+   portion of the staff client, and copy example configuration files to
+   `/openils/conf`.
+   Change the value of the `STAFF_CLIENT_STAMP_ID` variable to match the version
+   of the staff client that you will use to connect to the Evergreen server.
++
+[source, bash]
+------------------------------------------------------------------------------
+make STAFF_CLIENT_STAMP_ID=rel_2_11_0 install
+------------------------------------------------------------------------------
++
+2. The server portion of the staff client expects `http://hostname/xul/server`
+   to resolve. Issue the following commands as the *root* Linux account to
+   create a symbolic link pointing to the `server` subdirectory of the server
+   portion of the staff client that we just built using the staff client ID
+   'rel_name':
++
+[source, bash]
+------------------------------------------------------------------------------
+cd /openils/var/web/xul
+ln -sf rel_name/server server
+------------------------------------------------------------------------------
+
+Change ownership of the Evergreen files
+---------------------------------------
+
+All files in the `/openils/` directory and subdirectories must be owned by the
+`opensrf` user. Issue the following command as the *root* Linux account to
+change the ownership on the files:
+
+[source, bash]
+------------------------------------------------------------------------------
+chown -R opensrf:opensrf /openils
+------------------------------------------------------------------------------
+
+Additional Instructions for Developers
+--------------------------------------
+
+[NOTE]
+Skip this section if you are using an official release tarball downloaded
+from http://evergreen-ils.org/egdownloads
+
+Developers working directly with the source code from the Git repository,
+rather than an official release tarball, need to install the Dojo Toolkit
+set of JavaScript libraries. The appropriate version of Dojo is included in
+Evergreen release tarballs. Developers should install the Dojo 1.3.3 version
+of Dojo by issuing the following commands as the *opensrf* Linux account:
+
+[source, bash]
+------------------------------------------------------------------------------
+wget http://download.dojotoolkit.org/release-1.3.3/dojo-release-1.3.3.tar.gz
+tar -C /openils/var/web/js -xzf dojo-release-1.3.3.tar.gz
+cp -r /openils/var/web/js/dojo-release-1.3.3/* /openils/var/web/js/dojo/.
+------------------------------------------------------------------------------
+
+
+Configure the Apache Web server
+-------------------------------
+
+1. Use the example configuration files in `Open-ILS/examples/apache/` (for
+Apache versions below 2.4) or `Open-ILS/examples/apache_24/` (for Apache
+versions 2.4 or greater) to configure your Web server for the Evergreen
+catalog, staff client, Web services, and administration interfaces. Issue the
+following commands as the *root* Linux account:
++
+.Debian Wheezy
+[source,bash]
+------------------------------------------------------------------------------
+cp Open-ILS/examples/apache/eg.conf       /etc/apache2/sites-available/
+cp Open-ILS/examples/apache/eg_vhost.conf /etc/apache2/
+cp Open-ILS/examples/apache/eg_startup    /etc/apache2/
+# Now set up SSL
+mkdir /etc/apache2/ssl
+cd /etc/apache2/ssl
+------------------------------------------------------------------------------
++
+.Ubuntu Trusty, Ubuntu Xenial, and Debian Jessie
+[source,bash]
+------------------------------------------------------------------------------------
+cp Open-ILS/examples/apache_24/eg_24.conf       /etc/apache2/sites-available/eg.conf
+cp Open-ILS/examples/apache_24/eg_vhost_24.conf /etc/apache2/eg_vhost.conf
+cp Open-ILS/examples/apache/eg_startup    	/etc/apache2/
+# Now set up SSL
+mkdir /etc/apache2/ssl
+cd /etc/apache2/ssl
+------------------------------------------------------------------------------------
++
+.Fedora
+[source,bash]
+------------------------------------------------------------------------------
+cp Open-ILS/examples/apache_24/eg_24.conf       /etc/httpd/conf.d/
+cp Open-ILS/examples/apache_24/eg_vhost_24.conf /etc/httpd/eg_vhost.conf
+cp Open-ILS/examples/apache/eg_startup          /etc/httpd/
+# Now set up SSL
+mkdir /etc/httpd/ssl
+cd /etc/httpd/ssl
+------------------------------------------------------------------------------
++
+2. The `openssl` command cuts a new SSL key for your Apache server. For a
+production server, you should purchase a signed SSL certificate, but you can
+just use a self-signed certificate and accept the warnings in the staff client
+and browser during testing and development. Create an SSL key for the Apache
+server by issuing the following command as the *root* Linux account:
++
+[source,bash]
+------------------------------------------------------------------------------
+openssl req -new -x509 -days 365 -nodes -out server.crt -keyout server.key
+------------------------------------------------------------------------------
++
+3. As the *root* Linux account, edit the `eg.conf` file that you copied into
+place.
+  a. To enable access to the offline upload / execute interface from any
+     workstation on any network, make the following change (and note that
+     you *must* secure this for a production instance):
+     * (Apache 2.2): Replace `Allow from 10.0.0.0/8` with `Allow from all`
+     * (Apache 2.4): Replace `Require host 10.0.0.0/8` with `Require all granted`
+  b. (Fedora): Change references from the non-existent `/etc/apache2/` directory
+     to `/etc/httpd/`.
+4. Change the user for the Apache server.
+  * (Debian and Ubuntu): As the *root* Linux account, edit
+    `/etc/apache2/envvars`.  Change `export APACHE_RUN_USER=www-data` to 
+    `export APACHE_RUN_USER=opensrf`.
+  * (Fedora): As the *root* Linux account , edit `/etc/httpd/conf/httpd.conf`.
+    Change `User apache` to `User opensrf`.
+5. Configure Apache with performance settings appropriate for Evergreen:
+  * (Debian and Ubuntu): As the *root* Linux account, edit
+    `/etc/apache2/apache2.conf`:
+  * (Fedora): As the *root* Linux account, edit `/etc/httpd/conf/httpd.conf`:
+    a. Change `KeepAliveTimeout` to `1`. Higher values reduce the chance of
+       a request timing out unexpectedly, but increase the risk of using up
+       all available Apache child processes.
+    b. 'Optional': Change `MaxKeepAliveRequests` to `100`
+    c. (Debian Wheezy and Fedora) Update the prefork configuration 
+       section to suit your environment. The following settings apply to a busy 
+       system:
++
+[source,bash]
+------------------------------------------------------------------------------
+<IfModule mpm_prefork_module>
+   StartServers           20
+   MinSpareServers         5
+   MaxSpareServers        15
+   MaxClients            150
+   MaxRequestsPerChild 10000
+</IfModule>
+------------------------------------------------------------------------------
+    d. (Ubuntu Trusty, Ubuntu Xenial, Debian Jessie) As the *root* user, edit 
+       /etc/apache2/mods-available/mpm_prefork.conf to match the above values.  
+       Then, also as the *root* user, enable the mpm_prefork module by doing:
++
+[source,bash]
+------------------------------------------------------------------------------
+a2dismod mpm_event
+a2enmod mpm_prefork
+------------------------------------------------------------------------------
++
+6. (Fedora): As the *root* Linux account, edit the `/etc/httpd/eg_vhost.conf`
+   file to change references from the non-existent `/etc/apache2/` directory
+   to `/etc/httpd/`.
+7. (Debian Wheezy): As the *root* Linux account, enable the Evergreen site:
++
+[source,bash]
+------------------------------------------------------------------------------
+a2dissite default  # OPTIONAL: disable the default site (the "It Works" page)
+a2ensite eg.conf
+------------------------------------------------------------------------------
++
+(Ubuntu Trusty, Ubuntu Xenial, Debian Jessie):
++
+[source,bash]
+------------------------------------------------------------------------------
+a2dissite 000-default  # OPTIONAL: disable the default site (the "It Works" page)
+a2ensite eg.conf
+------------------------------------------------------------------------------
++
+8. (Ubuntu): As the *root* Linux account, enable Apache to write
+   to the lock directory; this is currently necessary because Apache
+   is running as the `opensrf` user:
++
+[source,bash]
+------------------------------------------------------------------------------
+chown opensrf /var/lock/apache2
+------------------------------------------------------------------------------
++
+9. Learn more about additional Apache options in the following sections:
+  * <<_apache_rewrite_tricks,Apache Rewrite Tricks>>
+  * <<_apache_access_handler_perl_module,Apache Access Handler Perl Module>>
+
+Configure OpenSRF for the Evergreen application
+-----------------------------------------------
+There are a number of example OpenSRF configuration files in `/openils/conf/`
+that you can use as a template for your Evergreen installation. Issue the
+following commands as the *opensrf* Linux account:
+
+[source, bash]
+------------------------------------------------------------------------------
+cp -b /openils/conf/opensrf_core.xml.example /openils/conf/opensrf_core.xml
+cp -b /openils/conf/opensrf.xml.example /openils/conf/opensrf.xml
+------------------------------------------------------------------------------
+
+When you installed OpenSRF, you created four Jabber users on two
+separate domains and edited the `opensrf_core.xml` file accordingly. Please
+refer back to the OpenSRF README and, as the *opensrf* Linux account, edit the
+Evergreen version of the `opensrf_core.xml` file using the same Jabber users
+and domains as you used while installing and testing OpenSRF.
+
+[NOTE]
+The `-b` flag tells the `cp` command to create a backup version of the
+destination file. The backup version of the destination file has a tilde (`~`)
+appended to the file name, so if you have forgotten the Jabber users and
+domains, you can retrieve the settings from the backup version of the files.
+
+`eg_db_config`, described in the following section, sets the database
+connection information in `opensrf.xml` for you.
+
+Creating the Evergreen database
+-------------------------------
+
+Setting up the PostgreSQL server
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+For production use, most libraries install the PostgreSQL database server on a
+dedicated machine. Therefore, by default, the `Makefile.install` prerequisite
+installer does *not* install the PostgreSQL 9 database server that is required
+by every Evergreen system. You can install the packages required by Debian or
+Ubuntu on the machine of your choice using the following commands as the
+*root* Linux account:
+
+.(Debian / Ubuntu / Fedora) Installing PostgreSQL server packages
+
+Each OS build target provides the postgres server installation packages
+required for each operating system.  To install Postgres server packages, 
+use the make target 'postgres-server-<OSTYPE>'.  Choose the most appropriate 
+command below based on your operating system.
+
+[source, bash]
+------------------------------------------------------------------------------
+make -f Open-ILS/src/extras/Makefile.install postgres-server-debian-jessie
+make -f Open-ILS/src/extras/Makefile.install postgres-server-debian-wheezy
+make -f Open-ILS/src/extras/Makefile.install postgres-server-ubuntu-trusty
+make -f Open-ILS/src/extras/Makefile.install postgres-server-ubuntu-xenial
+make -f Open-ILS/src/extras/Makefile.install postgres-server-fedora
+------------------------------------------------------------------------------
+
+.(Fedora) Postgres initialization
+
+Installing Postgres on Fedora also requires you to initialize the PostgreSQL
+cluster and start the service. Issue the following commands as the *root* user:
+
+[source, bash]
+------------------------------------------------------------------------------
+postgresql-setup initdb
+systemctl start postgresql
+------------------------------------------------------------------------------
+
+For a standalone PostgreSQL server, install the following Perl modules for your
+distribution as the *root* Linux account:
+
+.(Debian Wheezy, Ubuntu Trusty, and Ubuntu Xenial) 
+No extra modules required for these distributions.
+
+.(Fedora)
+[source, bash]
+------------------------------------------------------------------------------
+cpan Rose::URI
+------------------------------------------------------------------------------
+
+You need to create a PostgreSQL superuser to create and access the database.
+Issue the following command as the *postgres* Linux account to create a new
+PostgreSQL superuser named `evergreen`. When prompted, enter the new user's
+password:
+
+[source, bash]
+------------------------------------------------------------------------------
+createuser -s -P evergreen
+------------------------------------------------------------------------------
+
+.Enabling connections to the PostgreSQL database
+
+Your PostgreSQL database may be configured by default to prevent connections,
+for example, it might reject attempts to connect via TCP/IP or from other
+servers. To enable TCP/IP connections from localhost, check your `pg_hba.conf`
+file, found in the `/etc/postgresql/` directory on Debian and Ubuntu, and in
+the `/var/lib/pgsql/data/` directory on Fedora. A simple way to enable TCP/IP
+connections from localhost to all databases with password authentication, which
+would be suitable for a test install of Evergreen on a single server, is to
+ensure the file contains the following entries _before_ any "host ... ident"
+entries:
+
+------------------------------------------------------------------------------
+host    all             all             ::1/128                 md5
+host    all             all             127.0.0.1/32            md5
+------------------------------------------------------------------------------
+
+When you change the `pg_hba.conf` file, you will need to reload PostgreSQL to
+make the changes take effect.  For more information on configuring connectivity
+to PostgreSQL, see
+http://www.postgresql.org/docs/devel/static/auth-pg-hba-conf.html
+
+Creating the Evergreen database and schema
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Once you have created the *evergreen* PostgreSQL account, you also need to
+create the database and schema, and configure your configuration files to point
+at the database server. Issue the following command as the *root* Linux account
+from inside the Evergreen source directory, replacing <user>, <password>,
+<hostname>, <port>, and <dbname> with the appropriate values for your
+PostgreSQL database (where <user> and <password> are for the *evergreen*
+PostgreSQL account you just created), and replace <admin-user> and <admin-pass>
+with the values you want for the *egadmin* Evergreen administrator account:
+
+[source, bash]
+------------------------------------------------------------------------------
+perl Open-ILS/src/support-scripts/eg_db_config --update-config \
+       --service all --create-database --create-schema --create-offline \
+       --user <user> --password <password> --hostname <hostname> --port <port> \
+       --database <dbname> --admin-user <admin-user> --admin-pass <admin-pass>
+------------------------------------------------------------------------------
+
+This creates the database and schema and configures all of the services in
+your `/openils/conf/opensrf.xml` configuration file to point to that database.
+It also creates the configuration files required by the Evergreen `cgi-bin`
+administration scripts, and sets the user name and password for the *egadmin*
+Evergreen administrator account to your requested values.
+
+You can get a complete set of options for `eg_db_config` by passing the
+`--help` parameter.
+
+Loading sample data
+~~~~~~~~~~~~~~~~~~~
+If you add the `--load-all-sample` parameter to the `eg_db_config` command,
+a set of authority and bibliographic records, call numbers, copies, staff
+and regular users, and transactions will be loaded into your target
+database. This sample dataset is commonly referred to as the _concerto_
+sample data, and can be useful for testing out Evergreen functionality and
+for creating problem reports that developers can easily recreate with their
+own copy of the _concerto_ sample data.
+
+Creating the database on a remote server
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+In a production instance of Evergreen, your PostgreSQL server should be
+installed on a dedicated server.
+
+PostgreSQL 9.1 and later
+^^^^^^^^^^^^^^^^^^^^^^^^
+To create the database instance on a remote database server running PostgreSQL
+9.1 or later, simply use the `--create-database` flag on `eg_db_config`.
+
+Starting Evergreen
+------------------
+1. As the *root* Linux account, start the `memcached` and `ejabberd` services
+(if they aren't already running):
++
+[source, bash]
+------------------------------------------------------------------------------
+/etc/init.d/ejabberd start
+/etc/init.d/memcached start
+------------------------------------------------------------------------------
++
+2. As the *opensrf* Linux account, start Evergreen. The `-l` flag in the
+following command is only necessary if you want to force Evergreen to treat the
+hostname as `localhost`; if you configured `opensrf.xml` using the real
+hostname of your machine as returned by `perl -ENet::Domain 'print
+Net::Domain::hostfqdn() . "\n";'`, you should not use the `-l` flag.
++
+[source, bash]
+------------------------------------------------------------------------------
+osrf_control -l --start-all
+------------------------------------------------------------------------------
++
+  ** If you receive the error message `bash: osrf_control: command not found`,
+     then your environment variable `PATH` does not include the `/openils/bin`
+     directory; this should have been set in the *opensrf* Linux account's
+     `.bashrc` configuration file. To manually set the `PATH` variable, edit the
+     configuration file `~/.bashrc` as the *opensrf* Linux account and add the
+     following line:
++
+[source, bash]
+------------------------------------------------------------------------------
+export PATH=$PATH:/openils/bin
+------------------------------------------------------------------------------
++
+3. As the *opensrf* Linux account, generate the Web files needed by the staff
+   client and catalogue and update the organization unit proximity (you need to do
+   this the first time you start Evergreen, and after that each time you change the library org unit configuration.
+):
++
+[source, bash]
+------------------------------------------------------------------------------
+autogen.sh
+------------------------------------------------------------------------------
++
+4. As the *root* Linux account, restart the Apache Web server:
++
+[source, bash]
+------------------------------------------------------------------------------
+/etc/init.d/apache2 restart
+------------------------------------------------------------------------------
++
+If the Apache Web server was running when you started the OpenSRF services, you
+might not be able to successfully log in to the OPAC or staff client until the
+Apache Web server is restarted.
+
+Testing connections to Evergreen
+--------------------------------
+
+Once you have installed and started Evergreen, test your connection to
+Evergreen via `srfsh`. As the *opensrf* Linux account, issue the following
+commands to start `srfsh` and try to log onto the Evergreen server using the
+*egadmin* Evergreen administrator user name and password that you set using the
+`eg_db_config` command:
+
+[source, bash]
+------------------------------------------------------------------------------
+/openils/bin/srfsh
+srfsh% login <admin-user> <admin-pass>
+------------------------------------------------------------------------------
+
+You should see a result like:
+
+    Received Data: "250bf1518c7527a03249858687714376"
+    ------------------------------------
+    Request Completed Successfully
+    Request Time in seconds: 0.045286
+    ------------------------------------
+
+    Received Data: {
+       "ilsevent":0,
+       "textcode":"SUCCESS",
+       "desc":" ",
+       "pid":21616,
+       "stacktrace":"oils_auth.c:304",
+       "payload":{
+          "authtoken":"e5f9827cc0f93b503a1cc66bee6bdd1a",
+          "authtime":420
+       }
+
+    }
+
+    ------------------------------------
+    Request Completed Successfully
+    Request Time in seconds: 1.336568
+    ------------------------------------
+[[install-troubleshooting-1]]
+If this does not work, it's time to do some troubleshooting.
+
+  * As the *opensrf* Linux account, run the `settings-tester.pl` script to see
+    if it finds any system configuration problems. The script is found at
+    `Open-ILS/src/support-scripts/settings-tester.pl` in the Evergreen source
+    tree.
+  * Follow the steps in the http://evergreen-ils.org/dokuwiki/doku.php?id=troubleshooting:checking_for_errors[troubleshooting guide].
+  * If you have faithfully followed the entire set of installation steps
+    listed here, you are probably extremely close to a working system.
+    Gather your configuration files and log files and contact the
+    http://evergreen-ils.org/communicate/mailing-lists/[Evergreen development 
+mailing list] for assistance before making any drastic changes to your system
+    configuration.
+
+Getting help
+------------
+
+Need help installing or using Evergreen? Join the mailing lists at
+http://evergreen-ils.org/communicate/mailing-lists/ or contact us on the Freenode
+IRC network on the #evergreen channel.
+
+License
+-------
+This work is licensed under the Creative Commons Attribution-ShareAlike 3.0
+Unported License. To view a copy of this license, visit
+http://creativecommons.org/licenses/by-sa/3.0/ or send a letter to Creative
+Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.
diff --git a/configure.ac b/configure.ac
index 74e6b3b..537fb6e 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.11.0, open-ils-dev at list.georgialibraries.org)
+AM_INIT_AUTOMAKE([OpenILS], [2.11.0])
 AC_REVISION($Revision: 0.1 $)
 AC_CONFIG_SRCDIR([configure.ac])
 AC_CONFIG_SUBDIRS([Open-ILS/xul/staff_client/external/libmar])

commit d5ccc21e2ace9fe14e9c0549d39e487b3138bd57
Author: Dan Wells <dbw2 at calvin.edu>
Date:   Thu Aug 25 18:08:07 2016 -0400

    Update release notes
    
    Signed-off-by: Dan Wells <dbw2 at calvin.edu>

diff --git a/docs/RELEASE_NOTES_2_11.adoc b/docs/RELEASE_NOTES_2_11.adoc
new file mode 100644
index 0000000..2f6b239
--- /dev/null
+++ b/docs/RELEASE_NOTES_2_11.adoc
@@ -0,0 +1,536 @@
+Evergreen 2.11.0 Release Notes
+==============================
+:toc:
+:numbered:
+
+Upgrade notes
+-------------
+
+New Features
+------------
+
+
+
+Administration
+~~~~~~~~~~~~~~
+
+
+
+Add Date Header to Action Trigger Email/SMS Templates
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+The Date: header specified in RFC 2822 has been added to the seed data
+for the example Action Trigger email and SMS templates, but no attempt
+has been made to automatically modify existing templates. To add this
+header (and end any "Why are my library emails from 1969/70?" questions
+you may have heard) make sure the following lines are in all templates
+that use the SendEmail or SendSMS reactors:
+
+The first is already in most sample templates, but you may need to add
+it to the top of any custom templates:
+`[%- USE date -%]`
+
+And this line should be inserted into the header block of each template:
+`Date: [%- date.format(date.now, '%a, %d %b %Y %T -0000', gmt => 1) %]`
+
+
+
+
+
+Tablefunc Extension No Longer Required
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Changes in the behavior of the connectby function in PostgreSQL 9.5
+have prompted its removal from the database.  It is easier for
+Evergreen to maintain compatibility with previous versions of
+PostgreSQL without this function.
+
+By eliminating the use of the connectby function, we eliminate the
+requirement for the tablefunc database extension.  It is no longer
+installed when the database is created.  If you are upgrading and wish
+to remove it from your database, you may run the following statement
+in the database to drop it:
+
+ DROP EXTENSION tablefunc;
+
+
+
+
+
+Support for Ubuntu 16.04
+^^^^^^^^^^^^^^^^^^^^^^^^
+Adds support for Ubuntu Xenial Xerus (16.04).
+
+
+
+
+
+Purge User Activity
+^^^^^^^^^^^^^^^^^^^
+
+User activity types are now set to transient by default for new
+Evergreen installs..  This means only the most recent activity entry per
+user per activity type is retained in the database.
+
+This change does not affect existing activity types, which were set to
+non-transient by default.  To make an activity type transient, modify the
+'Transient' field of the desired type in the staff client under Admin -> 
+Server Administration -> User Activity Types.
+
+Setting an activity type to transient means data for a given user will
+be cleaned up automatically if and when the user performs the activity
+in question.  However, administrators can also force an activity
+cleanup via SQL.  This is useful for ensuring that all old activity
+data is deleted and for controlling when the cleanup occurs, which 
+may be useulf on very large actor.usr_activity tables.
+
+To force clean all activity types:
+
+[source,sql]
+------------------------------------------------------------
+SELECT actor.purge_usr_activity_by_type(etype.id)
+    FROM config.usr_activity_type etype;
+------------------------------------------------------------
+
+NOTE: This could take hours to run on a very large actor.usr_activity table.
+
+
+
+
+
+Cataloging
+~~~~~~~~~~
+
+
+
+Authority Record Import Updates Editor, Edit Date.
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Importing an authority record via MARC Batch Import/Export now causes the 
+authority record's editor and edit_date fields to be updated.  The editor
+value may come from the MARC 905u field or, if none is present, the user 
+performing the import.
+
+
+
+
+Authority Propagation Updates Bib Editor / Edit Date
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+When a bib record is automatically updated as a result of the
+modification of a linked authority record, the bib record's "Last Edit
+Data/Time" and "Last Editing User" fields will be updated to match the
+time of the update and the editor of the modified authority record.
+
+A new global flag is available to control this behavior called
+'ingest.disable_authority_auto_update_bib_meta' ("Authority Automation:
+Disable automatic authority updates from modifying bib record editor
+and edit_date").  When enabled, theses fields will not be updated.  By
+default, this setting is disabled.
+
+An additional speed improvement is included in this feature.  No attempt
+will be made to update linked bib records when the normalized heading of
+the modified authority record is unchanged by the authority record update.
+
+
+
+
+Bibliographic Record Source Now Copied to 901$s
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+If a bibliographic record has a source set, the name of that source
+is now copied to the 901$s whenever the record is created or updated.
+This allows the source to be used for record matching and MARC
+field queries.
+
+
+
+
+Option to Update Bib Source and Edit Details on Record Import
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+When importing records through the client, users will now have the ability to
+define whether the bib source, last editor, and last edit date should be updated
+on a record merge/overlay.
+
+In MARC Batch Import / Export, select the _Merge / Overlay_ tab.  Each entry in
+the table has a value in the new _Update bib. source_ column. If that value is
+True, then the bib source, last editor, and last edit date will be updated.
+
+The two system-defined entries have been pre-set to appropriate values (Full
+Overlay = true; Match-Only Merge = false).
+
+
+
+
+Circulation
+~~~~~~~~~~~
+
+
+
+Staff Client Honors Aged Circulations
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The browser and XUL clients now better represent copy checkout history 
+by honoring and displaying information from aged circulations.  
+
+ * Browser client 'Recent Circ History' and the analogous XUL client 
+   'Circulation History' tabs show summary data for aged circulations
+   as well as regular/active circulations.  When aged circulation data
+   is displayed, any references to patron names are replaced by the string
+   "<Aged Circulation>".
+
+ * Browser client 'Circ History List' and the analogous XUL client 
+   'Last Few Circulations' tabs behave as above, plus their 'Add 
+   Billing' buttons are disabled when displaying aged circulation data.
+
+ * XUL client 'Retrieve Last Patron' actions from various UI's report, 
+   "Item XXX circulation is an aged circulation and has no linked user".
+   Browser client analog uses 'Circ History List' instead; no additional
+   changes required.
+
+
+
+
+
+"Canceled Transit" Item Status
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Previously, when a transit was aborted, the transited item would either go into
+"Reshelving" status or would return to whatever status it was in when it went
+into transit, even when the item itself was in a different status (including
+"Checked out").  Now, for most transits that get aborted, the item is put into a 
+new status, "Canceled Transit", which signals to staff the actual state of the
+item.  This feature only affects items with a status of "In transit" and does
+not affect items that were in the following statuses at the time they were sent
+into transit:
+
+* Bindery
+* Lost
+* Missing
+* On order
+* ILL
+* Damaged
+* Long Overdue
+* Lost and Paid
+* Any custom statuses
+
+This change should help clear up confusing situations caused by the previous
+"abort transit" behavior, such as items showing "Available" when they are actually
+en route, and patrons' items mysteriously disappearing from their accounts and
+showing "Available" at the item-owning library without evidence of check-in.
+
+
+
+
+Copy Status "Is Available" Flag
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+A new boolean field is now available for copy statuses to indicate when copies
+having a given status should be considered available.  The field has 2 main
+effects:
+
+1. Checking out an "available" copy will no longer result in an override-able
+   "COPY_NOT_AVAILABLE" alert for staff.  The copy will checkout without 
+   status warnings.
+
+2. "Available" copies will appear in catalog searches where "limit to
+   available" is selected as a search filter.
+
+By default, the "Available" and "Reshelving" statuses have the "Is Available" 
+flag set.  The flag may be applied to local/custom statues via the copy
+status admin interface.
+
+
+
+
+
+Email Checkout Receipts
+^^^^^^^^^^^^^^^^^^^^^^^
+This feature allows patrons to receive checkout receipts through email
+at the circulation desk and in the Evergreen self-checkout interface.
+Patrons need to opt in to receive email receipts by default and must
+have an email address associated with their account. Opt in can be staff
+mediated at the time of account creation or in existing accounts.
+Patrons can also opt in directly in their OPAC account or through patron
+self-registration. This feature does not affect the behavior of
+checkouts from SIP2 devices.
+
+Patrons can opt in to receive email checkout receipts by default via
+a new _Email checkout reciepts by default_ patron setting.
+
+This feature also enhances the patron staging tables so that patron
+settings can be chosen during self-registration.
+
+The web staff interface's checkout screen now includes a "Quick
+Receipt" button that allows staff members to generate a receipt
+at any time.
+
+
+
+
+Set Per-OU Limits on Allowed Payment Amounts
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Two new settings have been added to prevent clerks from accidentally clearing
+all patron bills by scanning a barcode into the Payment Amount field, or
+accidentally entering the amount without a decimal point (such as you
+would when using a cash register).
+
+Both settings are available via the Library Settings Editor. The _Payment
+amount threshold for Are You Sure? dialog_ (ui.circ.billing.amount_warn)
+setting identifies the amount above
+which staff will be asked if they're sure they want to apply the payment.
+The _Maximum payment amount allowed_ (ui.circ.billing.amount_limit)
+setting identifies the maximum amount of
+money that can be accepted through the staff client.
+
+These settings only effect the staff client, not credit
+cards accepted through the OPAC, or direct API calls
+from third party tools.
+
+
+
+
+Client
+~~~~~~
+
+
+
+Additional Fields Available for Display in Some Interfaces
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+The holds age protection field will now be available for display in the
+following interfaces:
+
+* Item status list view column picker
+* Item status alternate view
+* Holdings maintenance column picker
+
+The asset.copy.cost field, which records the amount paid for an item when
+an invoice is processed, will be available for display in the following
+interfaces:
+
+* Items status list view column picker
+* Item status alternate view
+* Copy editor
+
+
+
+
+
+OPAC
+~~~~
+
+
+
+Merge Notification Preferences Tables in TPAC
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+The patron notification preference page in the public catalog
+used to have two tables, separating notification settings
+based on their source. Since that distinction does not matter
+to patrons, and since the two tables aren't styled consistently,
+they are merged together.
+
+
+
+
+Improved Holds Screens in My Account
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+The grids in the My Account _Items on Hold_ and _Holds History_ interfaces are
+simplified. Data previously contained in their own Activate, Active, and Date
+Fulfilled columns are now incorporated into the Status columns. To further
+declutter the interface, the holds queue position will only show when the user
+most needs the information - before the hold has been captured. 
+
+Distinct CSS classes have also been added for each hold status and each date
+that could potentially display in these holds interfaces. A new default style
+highlights the _Available_ status in green and the _Suspended_ status
+in red.
+
+
+
+
+
+
+Popularity Boost for Ranking Search Results
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+This feature uses factors such as  circulation and hold activity, record and item age, and item ownership counts to generate popularity badges for bibliographic
+records. Each badge will have a five-point scale, where more points indicates a more popular record.  The average of the badge points earned by each record will constitute a "popularity rating". The number and types of badges will break ties for average popularity, and relevance will sort items with like popularity. 
+
+A new sort axis of popularity is created to sort first on the weighted average popularity of each record, followed by the query-specific relevance available today.  A new option is created in the dropdown called _Most Popular_ that sorts on the combination of "activity metric" (aka badge ranking, aka popularity) first and then the existing, stock relevance ranking when those are equal.  For instance, given two records that both have a badge ranking of "4.5", they sort in the order of the query relevance ranking that is calculated today as a tie breaker.  Those two records will sort above other records with lower badge rankings regardless of what today's relevance ranking says about them.
+
+In addition, a new sort axis of _Popularity-Adjusted Relevance_ is created that augments the normal Relevance sort with a normalized popularity value by multiplying the base relevance by a value controlled by a new global flag, generally set to a decimal number between 1 and 2.
+
+Finally, there will continue to be a pure _Relevance_ sort option, which is the version that exists today.
+
+Administrators can comment out one of the available sort methods by editing the
+filtersort.tt2 file.A global flag will allow Evergreen sites to select a default sort method.
+
+Badge Configuration
+^^^^^^^^^^^^^^^^^^^
+
+Administrative interfaces to configure badges are only available in the web
+client. Administrators can also configure badges directly via the database. 	
+
+Available Popluarity Parameters available for badges include:
+
+* Holds Filled Over Time
+* Holds Requested Over Time
+* Current Hold Count
+* Circulations Over Time
+* Current Circulation Count
+* Out/Total Ratio
+* Holds/Total Ratio
+* Holds/Holdable Ratio
+* Percent of Time Circulating
+* Bibliographic Record Age (days)
+* Publication Age (days)
+* Available On-Line (for e-books, etc)
+* Copy Count
+
+Badges can be configured to apply to a targeted group of bibliographic records
+based on the following available filters:
+
+* Record attribute
+* Bibliographic source
+* Circulation modifier
+* Copy location group
+
+Badges can also be be restricted to materials owned by a specific organiztional
+unit.
+
+This new feature comes with a starter badge based on the top 97th percentile of
+holds requested over the past five years.
+
+Display in the OPAC
++++++++++++++++++++
+
+Ratings for records will be displayed in the catalog in the following ways:
+
+* On the record result page, the overall average popularity rating is displayed with a label of _Popularity_.
+
+* On the record detail page, each individual badge earned by the record is
+displayed with its rating. 
+
+New Global Flags
+++++++++++++++++
+* **OPAC Default Sort (opac.default_sort)**: Identifies the default sort method
+to be used in the catlaog.
+
+* **Maximum popularity importance multiplier for popularity-adjusted relevance
+searches (search.max_popularity_importance_multiplier):** A multiplier identifying
+the importance of popularity in the Popularity-Adjusted Relevance ranked 
+searches. The number should be a decimal ranging between 1.0 and 2.0. The
+default value is 1.1.
+
+More detailed information is available TechRef docs directory in the
+Evergreen source code.
+
+
+
+
+Removal of Advanced Hold Options link when part holds are expected
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+If a user attempts to place a metarecord hold when all eligible copies
+contain parts, the hold will fail. To help prevent the user from reaching
+a dead end while placing holds, the *Advanced Hold Options* link is removed
+from the Place Hold page in cases where all copies on the record contain
+parts. The *Advanced Hold Options* link will remain for records that have
+a mix of parted and non-parted copies.
+
+
+
+
+
+SIP
+~~~
+
+
+
+SIP Renewals
+^^^^^^^^^^^^^
+Renewals attempted via SIP will now consider whether a penalty is configured
+to block renewals before blocking the renewal. Previously, any penalty, even
+if it wasn't set to block renewals, would prevent a renewal from succeeding
+via SIP. 
+
+
+
+
+
+Treat SIP Location Field as Login Workstation
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+When using a version of SIPServer that supports the feature,
+the Location (CP) field of the Login (93) message will be
+used as the workstation name if supplied. Blank or missing
+location fields will be ignored. This allows users or reports
+to determine which selfcheck performed a circulation.
+
+
+
+
+
+Translations
+~~~~~~~~~~~~
+
+
+
+Translation Updates
+^^^^^^^^^^^^^^^^^^^
+Translations in this release have been significantly increased.  In
+particular, Spanish has received a huge update with over 9,000 new
+translations, Czech has received a sizeable update of over 800
+translations, and additional smaller updates have been added for
+Arabic, French (Canada), and Armenian.
+
+
+
+Acknowledgments
+---------------
+The Evergreen project would like to acknowledge the following
+organizations that commissioned developments in this release of
+Evergreen:
+
+ * Bibliomation
+ * Georgia Public Library Service
+ * MassLNC
+ * Pennsylvania Integrated Library System
+ * Pioneer Library System
+
+We would also like to thank the following individuals who contributed
+code, management, translations, documentation patches and tests to this
+release of Evergreen:
+
+ * Jason Boyer
+ * Eva Cerninakova
+ * Galen Charlton
+ * Bill Erickson
+ * Blake Henderson
+ * Jeff Godin
+ * Kathy Lussier
+ * Michele Morgan
+ * Dan Pearl
+ * Dan Scott
+ * Chris Sharp
+ * Ben Shum
+ * Mike Rylander
+ * Jason Stephenson
+ * Anahi Valdez
+ * Dan Wells
+
+
+We also thank the following organizations whose employees contributed
+patches:
+
+ * Calvin College
+ * Central/Wester Massachusetts Automated Resource Sharing
+ * Equinox Software, Inc.
+ * Emerald Data Networks, Inc.
+ * Evergreen Indiana
+ * Georgia Public Library Serivce
+ * King County Library System
+ * Knihovna Jabok
+ * Laurentian University
+ * MassLNC
+ * MOBIUS
+ * North of Boston Library Exchange
+ * Traverse Area District Library
+
+We regret any omissions.  If a contributor has been inadvertantly
+missed, please open a bug at http://bugs.launchpad.net/evergreen/
+with a correction.
+
diff --git a/docs/RELEASE_NOTES_NEXT/Administration/Action_Trigger_Email_Headers.adoc b/docs/RELEASE_NOTES_NEXT/Administration/Action_Trigger_Email_Headers.adoc
deleted file mode 100644
index a38fdc4..0000000
--- a/docs/RELEASE_NOTES_NEXT/Administration/Action_Trigger_Email_Headers.adoc
+++ /dev/null
@@ -1,16 +0,0 @@
-Add Date Header to Action Trigger Email/SMS Templates
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-The Date: header specified in RFC 2822 has been added to the seed data
-for the example Action Trigger email and SMS templates, but no attempt
-has been made to automatically modify existing templates. To add this
-header (and end any "Why are my library emails from 1969/70?" questions
-you may have heard) make sure the following lines are in all templates
-that use the SendEmail or SendSMS reactors:
-
-The first is already in most sample templates, but you may need to add
-it to the top of any custom templates:
-`[%- USE date -%]`
-
-And this line should be inserted into the header block of each template:
-`Date: [%- date.format(date.now, '%a, %d %b %Y %T -0000', gmt => 1) %]`
-
diff --git a/docs/RELEASE_NOTES_NEXT/Administration/lp1568046-tablefunc-extension-removed.adoc b/docs/RELEASE_NOTES_NEXT/Administration/lp1568046-tablefunc-extension-removed.adoc
deleted file mode 100644
index c7fe7a1..0000000
--- a/docs/RELEASE_NOTES_NEXT/Administration/lp1568046-tablefunc-extension-removed.adoc
+++ /dev/null
@@ -1,15 +0,0 @@
-Tablefunc Extension No Longer Required
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-Changes in the behavior of the connectby function in PostgreSQL 9.5
-have prompted its removal from the database.  It is easier for
-Evergreen to maintain compatibility with previous versions of
-PostgreSQL without this function.
-
-By eliminating the use of the connectby function, we eliminate the
-requirement for the tablefunc database extension.  It is no longer
-installed when the database is created.  If you are upgrading and wish
-to remove it from your database, you may run the following statement
-in the database to drop it:
-
- DROP EXTENSION tablefunc;
-
diff --git a/docs/RELEASE_NOTES_NEXT/Administration/user-activity-purge.adoc b/docs/RELEASE_NOTES_NEXT/Administration/user-activity-purge.adoc
deleted file mode 100644
index 03522cb..0000000
--- a/docs/RELEASE_NOTES_NEXT/Administration/user-activity-purge.adoc
+++ /dev/null
@@ -1,29 +0,0 @@
-Purge User Activity
-^^^^^^^^^^^^^^^^^^^
-
-User activity types are now set to transient by default for new
-Evergreen installs..  This means only the most recent activity entry per
-user per activity type is retained in the database.
-
-This change does not affect existing activity types, which were set to
-non-transient by default.  To make an activity type transient, modify the
-'Transient' field of the desired type in the staff client under Admin -> 
-Server Administration -> User Activity Types.
-
-Setting an activity type to transient means data for a given user will
-be cleaned up automatically if and when the user performs the activity
-in question.  However, administrators can also force an activity
-cleanup via SQL.  This is useful for ensuring that all old activity
-data is deleted and for controlling when the cleanup occurs, which 
-may be useulf on very large actor.usr_activity tables.
-
-To force clean all activity types:
-
-[source,sql]
-------------------------------------------------------------
-SELECT actor.purge_usr_activity_by_type(etype.id)
-    FROM config.usr_activity_type etype;
-------------------------------------------------------------
-
-NOTE: This could take hours to run on a very large actor.usr_activity table.
-
diff --git a/docs/RELEASE_NOTES_NEXT/Cataloging/auth_bib_update.adoc b/docs/RELEASE_NOTES_NEXT/Cataloging/auth_bib_update.adoc
deleted file mode 100644
index 72af4b8..0000000
--- a/docs/RELEASE_NOTES_NEXT/Cataloging/auth_bib_update.adoc
+++ /dev/null
@@ -1,6 +0,0 @@
-Authority Record Import Updates Editor, Edit Date.
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-Importing an authority record via MARC Batch Import/Export now causes the 
-authority record's editor and edit_date fields to be updated.  The editor
-value may come from the MARC 905u field or, if none is present, the user 
-performing the import.
diff --git a/docs/RELEASE_NOTES_NEXT/Cataloging/auth_prop_bib_update.adoc b/docs/RELEASE_NOTES_NEXT/Cataloging/auth_prop_bib_update.adoc
deleted file mode 100644
index 6116040..0000000
--- a/docs/RELEASE_NOTES_NEXT/Cataloging/auth_prop_bib_update.adoc
+++ /dev/null
@@ -1,16 +0,0 @@
-Authority Propagation Updates Bib Editor / Edit Date
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-When a bib record is automatically updated as a result of the
-modification of a linked authority record, the bib record's "Last Edit
-Data/Time" and "Last Editing User" fields will be updated to match the
-time of the update and the editor of the modified authority record.
-
-A new global flag is available to control this behavior called
-'ingest.disable_authority_auto_update_bib_meta' ("Authority Automation:
-Disable automatic authority updates from modifying bib record editor
-and edit_date").  When enabled, theses fields will not be updated.  By
-default, this setting is disabled.
-
-An additional speed improvement is included in this feature.  No attempt
-will be made to update linked bib records when the normalized heading of
-the modified authority record is unchanged by the authority record update.
diff --git a/docs/RELEASE_NOTES_NEXT/Cataloging/bib_source_in_901s.txt b/docs/RELEASE_NOTES_NEXT/Cataloging/bib_source_in_901s.txt
deleted file mode 100644
index b68dbb2..0000000
--- a/docs/RELEASE_NOTES_NEXT/Cataloging/bib_source_in_901s.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Bibliographic Record Source Now Copied to 901$s
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-If a bibliographic record has a source set, the name of that source
-is now copied to the 901$s whenever the record is created or updated.
-This allows the source to be used for record matching and MARC
-field queries.
diff --git a/docs/RELEASE_NOTES_NEXT/Cataloging/marc_bib_update.adoc b/docs/RELEASE_NOTES_NEXT/Cataloging/marc_bib_update.adoc
deleted file mode 100644
index d134f51..0000000
--- a/docs/RELEASE_NOTES_NEXT/Cataloging/marc_bib_update.adoc
+++ /dev/null
@@ -1,12 +0,0 @@
-Option to Update Bib Source and Edit Details on Record Import
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-When importing records through the client, users will now have the ability to
-define whether the bib source, last editor, and last edit date should be updated
-on a record merge/overlay.
-
-In MARC Batch Import / Export, select the _Merge / Overlay_ tab.  Each entry in
-the table has a value in the new _Update bib. source_ column. If that value is
-True, then the bib source, last editor, and last edit date will be updated.
-
-The two system-defined entries have been pre-set to appropriate values (Full
-Overlay = true; Match-Only Merge = false).
diff --git a/docs/RELEASE_NOTES_NEXT/Circulation/aged-circs-see-light-of-day.adoc b/docs/RELEASE_NOTES_NEXT/Circulation/aged-circs-see-light-of-day.adoc
deleted file mode 100644
index fd357a2..0000000
--- a/docs/RELEASE_NOTES_NEXT/Circulation/aged-circs-see-light-of-day.adoc
+++ /dev/null
@@ -1,21 +0,0 @@
-Staff Client Honors Aged Circulations
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-The browser and XUL clients now better represent copy checkout history 
-by honoring and displaying information from aged circulations.  
-
- * Browser client 'Recent Circ History' and the analogous XUL client 
-   'Circulation History' tabs show summary data for aged circulations
-   as well as regular/active circulations.  When aged circulation data
-   is displayed, any references to patron names are replaced by the string
-   "<Aged Circulation>".
-
- * Browser client 'Circ History List' and the analogous XUL client 
-   'Last Few Circulations' tabs behave as above, plus their 'Add 
-   Billing' buttons are disabled when displaying aged circulation data.
-
- * XUL client 'Retrieve Last Patron' actions from various UI's report, 
-   "Item XXX circulation is an aged circulation and has no linked user".
-   Browser client analog uses 'Circ History List' instead; no additional
-   changes required.
-
diff --git a/docs/RELEASE_NOTES_NEXT/Circulation/canceled-transit-copy-status.adoc b/docs/RELEASE_NOTES_NEXT/Circulation/canceled-transit-copy-status.adoc
deleted file mode 100644
index 465f4dc..0000000
--- a/docs/RELEASE_NOTES_NEXT/Circulation/canceled-transit-copy-status.adoc
+++ /dev/null
@@ -1,26 +0,0 @@
-"Canceled Transit" Item Status
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Previously, when a transit was aborted, the transited item would either go into
-"Reshelving" status or would return to whatever status it was in when it went
-into transit, even when the item itself was in a different status (including
-"Checked out").  Now, for most transits that get aborted, the item is put into a 
-new status, "Canceled Transit", which signals to staff the actual state of the
-item.  This feature only affects items with a status of "In transit" and does
-not affect items that were in the following statuses at the time they were sent
-into transit:
-
-* Bindery
-* Lost
-* Missing
-* On order
-* ILL
-* Damaged
-* Long Overdue
-* Lost and Paid
-* Any custom statuses
-
-This change should help clear up confusing situations caused by the previous
-"abort transit" behavior, such as items showing "Available" when they are actually
-en route, and patrons' items mysteriously disappearing from their accounts and
-showing "Available" at the item-owning library without evidence of check-in.
diff --git a/docs/RELEASE_NOTES_NEXT/Circulation/copy-status-is-avail.adoc b/docs/RELEASE_NOTES_NEXT/Circulation/copy-status-is-avail.adoc
deleted file mode 100644
index 41ac125..0000000
--- a/docs/RELEASE_NOTES_NEXT/Circulation/copy-status-is-avail.adoc
+++ /dev/null
@@ -1,18 +0,0 @@
-Copy Status "Is Available" Flag
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-A new boolean field is now available for copy statuses to indicate when copies
-having a given status should be considered available.  The field has 2 main
-effects:
-
-1. Checking out an "available" copy will no longer result in an override-able
-   "COPY_NOT_AVAILABLE" alert for staff.  The copy will checkout without 
-   status warnings.
-
-2. "Available" copies will appear in catalog searches where "limit to
-   available" is selected as a search filter.
-
-By default, the "Available" and "Reshelving" statuses have the "Is Available" 
-flag set.  The flag may be applied to local/custom statues via the copy
-status admin interface.
-
diff --git a/docs/RELEASE_NOTES_NEXT/Circulation/email_cko_receipts.adoc b/docs/RELEASE_NOTES_NEXT/Circulation/email_cko_receipts.adoc
deleted file mode 100644
index 1c52201..0000000
--- a/docs/RELEASE_NOTES_NEXT/Circulation/email_cko_receipts.adoc
+++ /dev/null
@@ -1,20 +0,0 @@
-Email Checkout Receipts
-^^^^^^^^^^^^^^^^^^^^^^^
-This feature allows patrons to receive checkout receipts through email
-at the circulation desk and in the Evergreen self-checkout interface.
-Patrons need to opt in to receive email receipts by default and must
-have an email address associated with their account. Opt in can be staff
-mediated at the time of account creation or in existing accounts.
-Patrons can also opt in directly in their OPAC account or through patron
-self-registration. This feature does not affect the behavior of
-checkouts from SIP2 devices.
-
-Patrons can opt in to receive email checkout receipts by default via
-a new _Email checkout reciepts by default_ patron setting.
-
-This feature also enhances the patron staging tables so that patron
-settings can be chosen during self-registration.
-
-The web staff interface's checkout screen now includes a "Quick
-Receipt" button that allows staff members to generate a receipt
-at any time.
diff --git a/docs/RELEASE_NOTES_NEXT/Circulation/limit_payment_amounts_accepted.txt b/docs/RELEASE_NOTES_NEXT/Circulation/limit_payment_amounts_accepted.txt
deleted file mode 100644
index b5fee19..0000000
--- a/docs/RELEASE_NOTES_NEXT/Circulation/limit_payment_amounts_accepted.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-Set Per-OU Limits on Allowed Payment Amounts
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-Two new settings have been added to prevent clerks from accidentally clearing
-all patron bills by scanning a barcode into the Payment Amount field, or
-accidentally entering the amount without a decimal point (such as you
-would when using a cash register).
-
-Bothe settings are available via the Library Settings Editor. The _Payment
-amount threshold for Are You Sure? dialog_ (ui.circ.billing.amount_warn)
-setting identifies the amount above
-which staff will be asked if they're sure they want to apply the payment.
-The _Maximum payment amount allowed_ (ui.circ.billing.amount_limit)
-setting identifies the maximum amount of
-money that can be accepted through the staff client.
-
-These settings only effect the staff client, not credit
-cards accepted through the OPAC, or direct API calls
-from third party tools.
diff --git a/docs/RELEASE_NOTES_NEXT/Client/added-fields-for-client-interfaces.adoc b/docs/RELEASE_NOTES_NEXT/Client/added-fields-for-client-interfaces.adoc
deleted file mode 100644
index 3861ab2..0000000
--- a/docs/RELEASE_NOTES_NEXT/Client/added-fields-for-client-interfaces.adoc
+++ /dev/null
@@ -1,17 +0,0 @@
-Additional Fields Available for Display in Some Interfaces
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-The holds age protection field will now be available for display in the
-following interfaces:
-
-* Item status list view column picker
-* Item status alternate view
-* Holdings maintenance column picker
-
-The asset.copy.cost field, which records the amount paid for an item when
-an invoice is processed, will be available for display in the following
-interfaces:
-
-* Items status list view column picker
-* Item status alternate view
-* Copy editor
-
diff --git a/docs/RELEASE_NOTES_NEXT/OPAC/combine_notice_prefs_tables.adoc b/docs/RELEASE_NOTES_NEXT/OPAC/combine_notice_prefs_tables.adoc
deleted file mode 100644
index d9e4b29..0000000
--- a/docs/RELEASE_NOTES_NEXT/OPAC/combine_notice_prefs_tables.adoc
+++ /dev/null
@@ -1,7 +0,0 @@
-Merge Notification Preferences Tables in TPAC
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-The patron notification preference page in the public catalog
-used to have two tables, separating notification settings
-based on their source. Since that distinction does not matter
-to patrons, and since the two tables aren't styled consistently,
-they are merged together.
diff --git a/docs/RELEASE_NOTES_NEXT/OPAC/improved-myopac-holds-screens.adoc b/docs/RELEASE_NOTES_NEXT/OPAC/improved-myopac-holds-screens.adoc
deleted file mode 100644
index a733af5..0000000
--- a/docs/RELEASE_NOTES_NEXT/OPAC/improved-myopac-holds-screens.adoc
+++ /dev/null
@@ -1,14 +0,0 @@
-Improved Holds Screens in My Account
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-The grids in the My Account _Items on Hold_ and _Holds History_ interfaces are
-simplified. Data previously contained in their own Activate, Active, and Date
-Fulfilled columns are now incorporated into the Status columns. To further
-declutter the interface, the holds queue position will only show when the user
-most needs the information - before the hold has been captured. 
-
-Distinct CSS classes have also been added for each hold status and each date
-that could potentially display in these holds interfaces. A new default style
-highlights the _Available_ status in green and the _Suspended_ status
-in red.
-
-
diff --git a/docs/RELEASE_NOTES_NEXT/OPAC/popularity-rating.txt b/docs/RELEASE_NOTES_NEXT/OPAC/popularity-rating.txt
deleted file mode 100644
index 817766e..0000000
--- a/docs/RELEASE_NOTES_NEXT/OPAC/popularity-rating.txt
+++ /dev/null
@@ -1,74 +0,0 @@
-Popularity Boost for Ranking Search Results
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-This feature uses factors such as  circulation and hold activity, record and item age, and item ownership counts to generate popularity badges for bibliographic
-records. Each badge will have a five-point scale, where more points indicates a more popular record.  The average of the badge points earned by each record will constitute a "popularity rating". The number and types of badges will break ties for average popularity, and relevance will sort items with like popularity. 
-
-A new sort axis of popularity is created to sort first on the weighted average popularity of each record, followed by the query-specific relevance available today.  A new option is created in the dropdown called _Most Popular_ that sorts on the combination of "activity metric" (aka badge ranking, aka popularity) first and then the existing, stock relevance ranking when those are equal.  For instance, given two records that both have a badge ranking of "4.5", they sort in the order of the query relevance ranking that is calculated today as a tie breaker.  Those two records will sort above other records with lower badge rankings regardless of what today's relevance ranking says about them.
-
-In addition, a new sort axis of _Popularity-Adjusted Relevance_ is created that augments the normal Relevance sort with a normalized popularity value by multiplying the base relevance by a value controlled by a new global flag, generally set to a decimal number between 1 and 2.
-
-Finally, there will continue to be a pure _Relevance_ sort option, which is the version that exists today.
-
-Administrators can comment out one of the available sort methods by editing the
-filtersort.tt2 file.A global flag will allow Evergreen sites to select a default sort method.
-
-Badge Configuration
-^^^^^^^^^^^^^^^^^^^
-
-Administrative interfaces to configure badges are only available in the web
-client. Administrators can also configure badges directly via the database. 	
-
-Available Popluarity Parameters available for badges include:
-
-* Holds Filled Over Time
-* Holds Requested Over Time
-* Current Hold Count
-* Circulations Over Time
-* Current Circulation Count
-* Out/Total Ratio
-* Holds/Total Ratio
-* Holds/Holdable Ratio
-* Percent of Time Circulating
-* Bibliographic Record Age (days)
-* Publication Age (days)
-* Available On-Line (for e-books, etc)
-* Copy Count
-
-Badges can be configured to apply to a targeted group of bibliographic records
-based on the following available filters:
-
-* Record attribute
-* Bibliographic source
-* Circulation modifier
-* Copy location group
-
-Badges can also be be restricted to materials owned by a specific organiztional
-unit.
-
-This new feature comes with a starter badge based on the top 97th percentile of
-holds requested over the past five years.
-
-Display in the OPAC
-+++++++++++++++++++
-
-Ratings for records will be displayed in the catalog in the following ways:
-
-* On the record result page, the overall average popularity rating is displayed with a label of _Popularity_.
-
-* On the record detail page, each individual badge earned by the record is
-displayed with its rating. 
-
-New Global Flags
-++++++++++++++++
-* **OPAC Default Sort (opac.default_sort)**: Identifies the default sort method
-to be used in the catlaog.
-
-* **Maximum popularity importance multiplier for popularity-adjusted relevance
-searches (search.max_popularity_importance_multiplier):** A multiplier identifying
-the importance of popularity in the Popularity-Adjusted Relevance ranked 
-searches. The number should be a decimal ranging between 1.0 and 2.0. The
-default value is 1.1.
-
-More detailed information is available TechRef docs directory in the
-Evergreen source code.
diff --git a/docs/RELEASE_NOTES_NEXT/OPAC/remove_advanced_hold_options_for_parts.adoc b/docs/RELEASE_NOTES_NEXT/OPAC/remove_advanced_hold_options_for_parts.adoc
deleted file mode 100644
index f92d58f..0000000
--- a/docs/RELEASE_NOTES_NEXT/OPAC/remove_advanced_hold_options_for_parts.adoc
+++ /dev/null
@@ -1,9 +0,0 @@
-Removal of Advanced Hold Options link when part holds are expected
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-If a user attempts to place a metarecord hold when all eligible copies
-contain parts, the hold will fail. To help prevent the user from reaching
-a dead end while placing holds, the *Advanced Hold Options* link is removed
-from the Place Hold page in cases where all copies on the record contain
-parts. The *Advanced Hold Options* link will remain for records that have
-a mix of parted and non-parted copies.
-
diff --git a/docs/RELEASE_NOTES_NEXT/SIP/SIP_Workstation_Name.adoc b/docs/RELEASE_NOTES_NEXT/SIP/SIP_Workstation_Name.adoc
deleted file mode 100644
index ad834e6..0000000
--- a/docs/RELEASE_NOTES_NEXT/SIP/SIP_Workstation_Name.adoc
+++ /dev/null
@@ -1,8 +0,0 @@
-Treat SIP Location Field as Login Workstation
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-When using a version of SIPServer that supports the feature,
-the Location (CP) field of the Login (93) message will be
-used as the workstation name if supplied. Blank or missing
-location fields will be ignored. This allows users or reports
-to determine which selfcheck performed a circulation.
-
diff --git a/docs/RELEASE_NOTES_NEXT/SIP/SIP_renewal_blocks.adoc b/docs/RELEASE_NOTES_NEXT/SIP/SIP_renewal_blocks.adoc
deleted file mode 100644
index 5613a30..0000000
--- a/docs/RELEASE_NOTES_NEXT/SIP/SIP_renewal_blocks.adoc
+++ /dev/null
@@ -1,7 +0,0 @@
-SIP Renewals
-^^^^^^^^^^^^^
-Renewals attempted via SIP will now consider whether a penalty is configured
-to block renewals before blocking the renewal. Previously, any penalty, even
-if it wasn't set to block renewals, would prevent a renewal from succeeding
-via SIP. 
-
diff --git a/docs/RELEASE_NOTES_NEXT/Translations/Updates.adoc b/docs/RELEASE_NOTES_NEXT/Translations/Updates.adoc
deleted file mode 100644
index a9fabd8..0000000
--- a/docs/RELEASE_NOTES_NEXT/Translations/Updates.adoc
+++ /dev/null
@@ -1,7 +0,0 @@
-Translation Updates
-^^^^^^^^^^^^^^^^^^^
-Translations in this release have been significantly increased.  In
-particular, Spanish has received a huge update with over 9,000 new
-translations, Czech has received a sizeable update of over 800
-translations, and additional smaller updates have been added for
-Arabic, French (Canada), and Armenian.
diff --git a/docs/installation/server_upgrade.txt b/docs/installation/server_upgrade.txt
index 773c250..8c989aa 100644
--- a/docs/installation/server_upgrade.txt
+++ b/docs/installation/server_upgrade.txt
@@ -8,7 +8,7 @@ Software Prerequisites
 
  * **PostgreSQL**: Version 9.3 is recommended. The minimum supported version
     is 9.1.
-  * **Linux**: Evergreen 2.10.1 has been tested on Debian Jessie (8.0),
+  * **Linux**: Evergreen 2.11.0 has been tested on Debian Jessie (8.0),
     Debian Wheezy (7.0), Ubuntu Xenial Xerus (16.04), Ubuntu Trusty Tahr (14.04),
     and Fedora.
     If you are running an older version of these distributions, you may want
@@ -44,12 +44,12 @@ osrf_control --localhost --stop-all
  .. Back up the /openils directory.
 . Upgrade OpenSRF. Download and install the latest version of OpenSRF from
 the https://evergreen-ils.org/opensrf-downloads/[OpenSRF download page].
-. As the *opensrf* user, download and extract Evergreen 2.10.1:
+. As the *opensrf* user, download and extract Evergreen 2.11.0:
 +
 [source, bash]
 -----------------------------------------------
-wget https://evergreen-ils.org/downloads/Evergreen-ILS-2.10.1.tar.gz
-tar xzf Evergreen-ILS-2.10.1.tar.gz
+wget https://evergreen-ils.org/downloads/Evergreen-ILS-2.11.0.tar.gz
+tar xzf Evergreen-ILS-2.11.0.tar.gz
 -----------------------------------------------
 +
 [NOTE]
@@ -59,7 +59,7 @@ For the latest edition of Evergreen, check the https://evergreen-ils.org/egdownl
 +
 [source, bash]
 ---------------------------------------------
-cd /home/opensrf/Evergreen-ILS-2.10.1
+cd /home/opensrf/Evergreen-ILS-2.11.0
 ---------------------------------------------
 +
 On the next command, replace `[distribution]` with one of these values for your
@@ -84,7 +84,7 @@ make -f Open-ILS/src/extras/Makefile.install [distribution]
 +
 [source, bash]
 ------------------------------------------------------------
-cd /home/opensrf/Evergreen-ILS-2.10.1
+cd /home/opensrf/Evergreen-ILS-2.11.0
 PATH=/openils/bin:$PATH ./configure --prefix=/openils --sysconfdir=/openils/conf
 make
 ------------------------------------------------------------
@@ -95,8 +95,8 @@ These instructions assume that you have also installed OpenSRF under /openils/.
 +
 [source, bash]
 ------------------------------------------------------------
-cd /home/opensrf/Evergreen-ILS-2.10.1
-make STAFF_CLIENT_STAMP_ID=rel_2_10_1 install
+cd /home/opensrf/Evergreen-ILS-2.11.0
+make STAFF_CLIENT_STAMP_ID=rel_2_11_0 install
 ------------------------------------------------------------
 +
 . As the *root* user, change all files to be owned by the opensrf user and group:
@@ -112,7 +112,7 @@ chown -R opensrf:opensrf /openils
 -----------------------------------------------------------
 cd /openils/var/web/xul/
 rm server
-ln -sf rel_2_10_1/server server
+ln -sf rel_2_11_0/server server
 ----------------------------------------------------------
 +
 . As the *opensrf* user, update opensrf_core.xml and opensrf.xml by copying the
@@ -132,7 +132,7 @@ Copying these configuration files will remove any customizations you have made t
 +
 [source, bash]
 -------------------------------------------------------------------------
-cd /home/opensrf/Evergreen-ILS-2.10.1
+cd /home/opensrf/Evergreen-ILS-2.11.0
 perl Open-ILS/src/support-scripts/eg_db_config --update-config --service all \
 --create-offline --database evergreen --host localhost --user evergreen --password evergreen
 -------------------------------------------------------------------------
@@ -156,21 +156,21 @@ The diff command can be used to show the differences between the distribution ve
 +
 [source, bash]
 ----------------------------------------------------------
-cp /home/opensrf/Evergreen-ILS-2.10.1/Open-ILS/examples/apache/eg_startup /etc/apache2/eg_startup
+cp /home/opensrf/Evergreen-ILS-2.11.0/Open-ILS/examples/apache/eg_startup /etc/apache2/eg_startup
 ----------------------------------------------------------
 +
 .. Update /etc/apache2/eg_vhost.conf by copying the example from Open-ILS/examples/apache/eg_vhost.conf.
 +
 [source, bash]
 ----------------------------------------------------------
-cp /home/opensrf/Evergreen-ILS-2.10.1/Open-ILS/examples/apache/eg_vhost.conf /etc/apache2/eg_vhost.conf
+cp /home/opensrf/Evergreen-ILS-2.11.0/Open-ILS/examples/apache/eg_vhost.conf /etc/apache2/eg_vhost.conf
 ----------------------------------------------------------
 +
 .. Update /etc/apache2/sites-available/eg.conf by copying the example from Open-ILS/examples/apache/eg.conf.
 +
 [source, bash]
 ----------------------------------------------------------
-cp /home/opensrf/Evergreen-ILS-2.10.1/Open-ILS/examples/apache/eg.conf /etc/apache2/sites-available/eg.conf
+cp /home/opensrf/Evergreen-ILS-2.11.0/Open-ILS/examples/apache/eg.conf /etc/apache2/sites-available/eg.conf
 ----------------------------------------------------------
 
 Upgrade the Evergreen database schema
@@ -193,36 +193,22 @@ anything goes wrong during the upgrade.
 =============
 Evergreen provides incremental upgrade scripts that allow you to upgrade
 from one minor version to the next until you have the current version of
-the schema. For example, if you want to upgrade from 2.5.1 to 2.10.1, you
+the schema. For example, if you want to upgrade from 2.5.1 to 2.6.3, you
 would run the following upgrade scripts:
 
 - 2.5.1-2.5.2-upgrade-db.sql
 - 2.5.2-2.5.3-upgrade-db.sql
 - 2.5.3-2.6.0-upgrade-db.sql (this is a major version upgrade)
+- 2.6.0-2.6.1-upgrade-db.sql
+- 2.6.1-2.6.2-upgrade-db.sql
 - 2.6.2-2.6.3-upgrade-db.sql
-- 2.6.3-2.7.0-upgrade-db.sql (this is a major version upgrade)
-- 2.7.0-2.7.1-upgrade-db.sql
-- 2.7.1-2.7.2-upgrade-db.sql
-- 2.7.2-2.7.3-upgrade-db.sql
-- 2.7.3-2.7.4-upgrade-db.sql
-- 2.7.4-2.8.0-upgrade-db.sql (this is a major version upgrade)
-- 2.8.0-2.8.1-upgrade-db.sql
-- 2.8.1-2.8.2-upgrade-db.sql
-- 2.8.2-2.8.3-upgrade-db.sql
-- 2.8.3-2.8.4-upgrade-db.sql
-- 2.8.4-2.9.0-upgrade-db.sql (this is a major version upgrade)
-- 2.9.0-2.9.1-upgrade-db.sql
-- 2.9.1-2.9.2-upgrade-db.sql
-- 2.9.2-2.9.3-upgrade-db.sql
-- 2.9.3-2.10.0-upgrade-db.sql
-- 2.10.0-2.10.1-upgrade-db.sql
 
 Note that you do *not* want to run additional 2.5 scripts to upgrade to the
 newest version of 2.5, since currently there is no automated way to upgrade
 from 2.5.4+ to 2.6. Only upgrade as far as necessary to reach the major
 version upgrade script (in this example, as far as 2.5.3).
 
-To upgrade across multiple major versions (e.g. from 2.3.0 to 2.10.1), use
+To upgrade across multiple major versions (e.g. from 2.3.0 to 2.7.4), use
 the same logic to utilize the provided major version upgrade scripts. For
 example:
 
@@ -235,12 +221,6 @@ example:
 - (run all incremental scripts from 2.6.0 to 2.6.3)
 - 2.6.3-2.7.0-upgrade-db.sql
 - (run all incremental scripts from 2.7.0 to 2.7.4)
-- 2.7.4-2.8.0-upgrade-db.sql
-- (run all incremental scripts from 2.8.0 to 2.8.4)
-- 2.8.4-2.9.0-upgrade-db.sql
-- (run all incremental scripts from 2.9.0 to 2.9.3)
-- 2.9.3-2.10.0-upgrade-db.sql
-- (run all incremental scripts from 2.10.0 to 2.10.1)
 =============
 
 [CAUTION]
@@ -249,13 +229,13 @@ that you cannot resolve yourself through additional troubleshooting, please
 report the errors to the https://evergreen-ils.org/communicate/mailing-lists/[Evergreen
 Technical Discussion List].
 
-Run the following steps (including other upgrade scripts, as noted above)
+Run the following steps (using appropriate upgrade scripts, as noted above)
 as a user with the ability to connect to the database server.
 
 [source, bash]
 ----------------------------------------------------------
-cd /home/opensrf/Evergreen-ILS-2.10.0/Open-ILS/src/sql/Pg
-psql -U evergreen -h localhost -f version-upgrade/2.10.0-2.10.1-upgrade-db.sql evergreen
+cd /home/opensrf/Evergreen-ILS-2.11.0/Open-ILS/src/sql/Pg
+psql -U evergreen -h localhost -f version-upgrade/[appropriate versions here]-upgrade-db.sql evergreen
 ----------------------------------------------------------
 
 [TIP]
@@ -336,6 +316,6 @@ from the Evergreen community.
 Review Release Notes
 ~~~~~~~~~~~~~~~~~~~~
 
-Review the <<_evergreen_2_10_release_notes,2.10 release notes>> for other tasks
+Review the <<_evergreen_2_11_release_notes,2.11 release notes>> for other tasks
 that need to be done after upgrading.  If you have upgraded over several 
 major versions, you will need to review the release notes for each version also.

commit ccceb089a6011894aa174c1b7895933dd1e9fdb6
Author: Dan Wells <dbw2 at calvin.edu>
Date:   Thu Jul 28 18:51:35 2016 -0400

    Bumping Perl version string for 2.11.0
    
    Signed-off-by: Dan Wells <dbw2 at calvin.edu>

diff --git a/Open-ILS/src/perlmods/lib/OpenILS.pm b/Open-ILS/src/perlmods/lib/OpenILS.pm
index d7235ce..01a573b 100644
--- a/Open-ILS/src/perlmods/lib/OpenILS.pm
+++ b/Open-ILS/src/perlmods/lib/OpenILS.pm
@@ -6,6 +6,6 @@ OpenILS - Client and server support for the Evergreen open source library system
 
 =cut
 
-our $VERSION = '2.4';
+our $VERSION = '2.1100';
 
 1;

commit 0c156fa06433c7b97ac7277a13dbc918dec4bb7e
Author: Dan Wells <dbw2 at calvin.edu>
Date:   Wed Sep 21 16:08:05 2016 -0400

    Translation updates - po files
    
    Signed-off-by: Dan Wells <dbw2 at calvin.edu>

diff --git a/build/i18n/po/acq/cs-CZ.po b/build/i18n/po/acq/cs-CZ.po
index 24ce0cc..16d97f6 100644
--- a/build/i18n/po/acq/cs-CZ.po
+++ b/build/i18n/po/acq/cs-CZ.po
@@ -8,14 +8,14 @@ msgstr ""
 "Project-Id-Version: evergreen\n"
 "Report-Msgid-Bugs-To: FULL NAME <EMAIL at ADDRESS>\n"
 "POT-Creation-Date: 2016-08-26 13:08+0000\n"
-"PO-Revision-Date: 2016-09-08 10:28+0000\n"
+"PO-Revision-Date: 2016-09-09 09:15+0000\n"
 "Last-Translator: Eva Cerninakova <Unknown>\n"
 "Language-Team: Czech <cs at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2016-09-09 05:56+0000\n"
-"X-Generator: Launchpad (build 18184)\n"
+"X-Launchpad-Export-Date: 2016-09-10 06:28+0000\n"
+"X-Generator: Launchpad (build 18186)\n"
 
 #: ../../Open-ILS/src/templates/acq/invoice/view.tt2:6
 msgid " Invoice "
@@ -732,19 +732,19 @@ msgstr "Fronta importu"
 
 #: ../../Open-ILS/src/templates/acq/po/search.tt2:56
 msgid "In Process"
-msgstr ""
+msgstr "Zpracovává se"
 
 #: ../../Open-ILS/src/templates/acq/fund/list.tt2:95
 msgid "Include Funds for Descendant Org Units:"
-msgstr ""
+msgstr "Zahrnout fondy pro podřízené organizační jednotky"
 
 #: ../../Open-ILS/src/templates/acq/common/claim_dialog.tt2:27
 msgid "Initiate New Claims"
-msgstr ""
+msgstr "Zahájit nové reklamace"
 
 #: ../../Open-ILS/src/templates/acq/common/vlagent.tt2:46
 msgid "Insufficient Quality Fall-Through Profile"
-msgstr ""
+msgstr "Profil pro propadnutí nedostatečné kvality"
 
 #: ../../Open-ILS/src/templates/acq/invoice/view.tt2:68
 msgid "Invoice"
@@ -752,7 +752,7 @@ msgstr "Faktura"
 
 #: ../../Open-ILS/src/templates/acq/common/inv_dialog.tt2:8
 msgid "Invoice #"
-msgstr ""
+msgstr "Faktura č."
 
 #: ../../Open-ILS/src/templates/acq/invoice/view.tt2:2 ../../Open-ILS/src/templates/acq/po/view.tt2:75
 msgid "Invoicing"
@@ -760,7 +760,7 @@ msgstr "Fakturace"
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:286
 msgid "Item Count: "
-msgstr ""
+msgstr "Počet položek: "
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:127 ../../Open-ILS/src/templates/acq/financial/claim_eligible.tt2:22
 msgid "Items"
@@ -768,11 +768,11 @@ msgstr "Exempláře"
 
 #: ../../Open-ILS/src/templates/acq/financial/claim_eligible.tt2:2 ../../Open-ILS/src/templates/acq/financial/claim_eligible.tt2:5
 msgid "Items Eligible For Claiming"
-msgstr ""
+msgstr "Jednotky k reklamaci"
 
 #: ../../Open-ILS/src/templates/acq/picklist/from_bib.tt2:2
 msgid "Items by Bibliographic ID"
-msgstr ""
+msgstr "Jednotky podle ID bib. záznamu"
 
 #. ("<span id=\"oils-acq-picklist-attr-edate\"></span>")
 #: ../../Open-ILS/src/templates/acq/picklist/view.tt2:10
@@ -785,7 +785,7 @@ msgstr ""
 
 #: ../../Open-ILS/src/templates/acq/invoice/view.tt2:282
 msgid "Limit to Invoiceable Items"
-msgstr ""
+msgstr "Omezit na fakturovatelné položky"
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:121
 msgid "Line Items"
@@ -793,31 +793,31 @@ msgstr "Položky"
 
 #: ../../Open-ILS/src/templates/acq/settings/li_attr.tt2:5
 msgid "Lineitem Attribute Attribute"
-msgstr ""
+msgstr "Atribut atributu položky"
 
 #: ../../Open-ILS/src/templates/acq/lineitem/history.tt2:2 ../../Open-ILS/src/templates/acq/lineitem/history.tt2:3
 msgid "Lineitem History"
-msgstr ""
+msgstr "Hostorie položky"
 
 #: ../../Open-ILS/src/templates/acq/lineitem/search.tt2:2 ../../Open-ILS/src/templates/acq/lineitem/search.tt2:5
 msgid "Lineitem Search"
-msgstr ""
+msgstr "Hledání položky"
 
 #: ../../Open-ILS/src/templates/acq/lineitem/worksheet.tt2:11 ../../Open-ILS/src/templates/acq/lineitem/worksheet.tt2:2
 msgid "Lineitem Worksheet"
-msgstr ""
+msgstr "Pracovní list položky"
 
 #: ../../Open-ILS/src/templates/acq/lineitem/search.tt2:15
 msgid "Lineitem state"
-msgstr ""
+msgstr "Stav položky"
 
 #: ../../Open-ILS/src/templates/acq/common/vlagent.tt2:70
 msgid "Lineitems Processed"
-msgstr ""
+msgstr "Položka zpracována"
 
 #: ../../Open-ILS/src/templates/acq/invoice/view.tt2:25
 msgid "Lineitems: "
-msgstr ""
+msgstr "Položky: "
 
 #: ../../Open-ILS/src/templates/acq/common/inv_dialog.tt2:27
 msgid "Link"
@@ -825,236 +825,236 @@ msgstr "Připojit"
 
 #: ../../Open-ILS/src/templates/acq/po/view.tt2:87
 msgid "Link Invoice"
-msgstr ""
+msgstr "Připojit fakturu"
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:40
 msgid "Link Selected Line Items to Invoice"
-msgstr ""
+msgstr "Připojit vybrané položky na fakturu"
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:181
 msgid "Link To Catalog Record"
-msgstr ""
+msgstr "Napojit na bibliografiký záznam"
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:34
 msgid "Load Bibs and Items"
-msgstr ""
+msgstr "Zavést bibliografikcé  záznamy a exempláře"
 
 #: ../../Open-ILS/src/templates/acq/common/vlagent.tt2:60
 msgid "Load Items for Imported Records"
-msgstr ""
+msgstr "Nahrát jednotky pro importované záznamy"
 
 #: ../../Open-ILS/src/templates/acq/lineitem/worksheet.tt2:16
 msgid "Loading Worksheet..."
-msgstr ""
+msgstr "Nahrávám pracovní list"
 
 #: ../../Open-ILS/src/templates/acq/lineitem/findbib.tt2:2
 msgid "Locate Bib Record"
-msgstr ""
+msgstr "Lokalizovat bibliografický záznam"
 
 #: ../../Open-ILS/src/templates/acq/common/jubgrid.tt2:173
 msgid "Location: "
-msgstr ""
+msgstr "Umístění: "
 
 #: ../../Open-ILS/src/templates/acq/settings/li_attr.tt2:61
 msgid "MARC Attributes"
-msgstr ""
+msgstr "Atributy MARC"
 
 #: ../../Open-ILS/src/templates/acq/common/info.tt2:17
 msgid "MARC ILS Record"
-msgstr ""
+msgstr "Záznamy MARC v knihovním systému"
 
 #: ../../Open-ILS/src/templates/acq/common/info.tt2:16
 msgid "MARC Order Record"
-msgstr ""
+msgstr "MARC záznamy objednávky"
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:25
 msgid "Mark Ready for Order"
-msgstr ""
+msgstr "Označit jako připravené k objednání"
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:24
 msgid "Mark Ready for Selector"
-msgstr ""
+msgstr "Označit jako připravené pro výběr"
 
 #: ../../Open-ILS/src/templates/acq/common/jubgrid.tt2:195
 msgid "Mark Selected Copies Received"
-msgstr ""
+msgstr "Označit vybrané exempláře jako přijaté"
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:37
 msgid "Mark Selected Line Items as Received"
-msgstr ""
+msgstr "Označit vybrané položky jako přijaté"
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:584
 msgid "Mark all"
-msgstr ""
+msgstr "Označit vše"
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:582
 msgid "Mark selected"
-msgstr ""
+msgstr "Označit vybrané"
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:381
 msgid "Mark Received"
-msgstr ""
+msgstr "Označit Přijaté"
 
 #: ../../Open-ILS/src/templates/acq/picklist/list.tt2:58 ../../Open-ILS/src/templates/acq/search/unified.tt2:179
 msgid "Merge"
-msgstr ""
+msgstr "Sloučit"
 
 #: ../../Open-ILS/src/templates/acq/common/vlagent.tt2:35
 msgid "Merge On Best Match"
-msgstr ""
+msgstr "sloučit při nejlepší shodě"
 
 #: ../../Open-ILS/src/templates/acq/common/vlagent.tt2:27
 msgid "Merge On Exact Match (901c)"
-msgstr ""
+msgstr "Sloučit při přesné shodě (901c)"
 
 #: ../../Open-ILS/src/templates/acq/common/vlagent.tt2:31
 msgid "Merge On Single Match"
-msgstr ""
+msgstr "sloučit při prosté shodě"
 
 #: ../../Open-ILS/src/templates/acq/common/vlagent.tt2:18
 msgid "Merge Profile"
-msgstr ""
+msgstr "Profil pro sloučení"
 
 #: ../../Open-ILS/src/templates/acq/picklist/list.tt2:49 ../../Open-ILS/src/templates/acq/search/unified.tt2:162
 msgid "Merge Selected"
-msgstr ""
+msgstr "Sloučit vybrané"
 
 #: ../../Open-ILS/src/templates/acq/picklist/list.tt2:7
 msgid "My Selection Lists"
-msgstr ""
+msgstr "Moje akviziční seznamy"
 
 #: ../../Open-ILS/src/templates/acq/fund/view.tt2:161 ../../Open-ILS/src/templates/acq/funding_source/view.tt2:103 ../../Open-ILS/src/templates/acq/po/view.tt2:18 ../../Open-ILS/src/templates/acq/search/unified.tt2:111 ../../Open-ILS/src/templates/acq/search/unified.tt2:202
 msgid "Name"
-msgstr ""
+msgstr "Název"
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:467
 msgid "Name (optional)"
-msgstr ""
+msgstr "Název  (nepovinné)"
 
 #: ../../Open-ILS/src/templates/acq/picklist/list.tt2:19 ../../Open-ILS/src/templates/acq/search/unified.tt2:129
 msgid "Name:"
-msgstr ""
+msgstr "Název:"
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:214 ../../Open-ILS/src/templates/acq/po/search.tt2:55
 msgid "New"
-msgstr ""
+msgstr "Nový"
 
 #: ../../Open-ILS/src/templates/acq/common/notes.tt2:24
 msgid "New Alert"
-msgstr ""
+msgstr "Nové upozorňění"
 
 #: ../../Open-ILS/src/templates/acq/picklist/brief_record.tt2:2
 msgid "New Brief Record"
-msgstr ""
+msgstr "Vytvořit zkrácený záznam"
 
 #: ../../Open-ILS/src/templates/acq/po/item_table.tt2:31
 msgid "New Charge"
-msgstr ""
+msgstr "Nový poplatek"
 
 #: ../../Open-ILS/src/templates/acq/common/jubgrid.tt2:158
 msgid "New Copy"
-msgstr ""
+msgstr "Nový exemplář"
 
 #: ../../Open-ILS/src/templates/acq/currency_type/list.tt2:5
 msgid "New Currency Type"
-msgstr ""
+msgstr "Nový typ měny"
 
 #: ../../Open-ILS/src/templates/acq/fund/list.tt2:41
 msgid "New Fund"
-msgstr ""
+msgstr "Nový fond"
 
 #: ../../Open-ILS/src/templates/acq/funding_source/list.tt2:26
 msgid "New Funding Source"
-msgstr ""
+msgstr "Nový finanční zdroj"
 
 #: ../../Open-ILS/src/templates/acq/picklist/list.tt2:36 ../../Open-ILS/src/templates/acq/search/unified.tt2:148
 msgid "New Name:"
-msgstr ""
+msgstr "Nový název:"
 
 #: ../../Open-ILS/src/templates/acq/common/notes.tt2:11
 msgid "New Note"
-msgstr ""
+msgstr "Nová poznámka"
 
 #: ../../Open-ILS/src/templates/acq/common/vlagent.tt2:42
 msgid "New Record Quality / Quality of Best Match"
-msgstr ""
+msgstr "Kvalita nového záznamu / Kvalita nejlepší shody"
 
 #: ../../Open-ILS/src/templates/acq/picklist/bib_search.tt2:59
 msgid "New Search"
-msgstr ""
+msgstr "Nové hledání"
 
 #: ../../Open-ILS/src/templates/acq/picklist/list.tt2:15 ../../Open-ILS/src/templates/acq/search/unified.tt2:124
 msgid "New Selection List"
-msgstr ""
+msgstr "Nový akviziční seznam"
 
 #: ../../Open-ILS/src/templates/acq/lineitem/search.tt2:80
 msgid "New brief record like this"
-msgstr ""
+msgstr "Nový předběžný záznam jako tento"
 
 #: ../../Open-ILS/src/templates/acq/common/li_table_pager.tt2:15 ../../Open-ILS/src/templates/acq/invoice/view.tt2:274
 msgid "Next"
-msgstr ""
+msgstr "Další"
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:59
 msgid "Next »"
-msgstr ""
+msgstr "Další »"
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:252
 msgid "No Copies"
-msgstr ""
+msgstr "Žádné exempláře"
 
 #: ../../Open-ILS/src/templates/acq/invoice/view.tt2:290
 msgid "No Results"
-msgstr ""
+msgstr "Žádné výsledky"
 
 #: ../../Open-ILS/src/templates/acq/lineitem/search.tt2:33
 msgid "No further attributes to search by"
-msgstr ""
+msgstr "Žádné další atributy pro hledání"
 
 #: ../../Open-ILS/src/templates/acq/common/jubgrid.tt2:78
 msgid "No. Copies"
-msgstr ""
+msgstr "Č.  exemplářů"
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:237 ../../Open-ILS/src/templates/acq/fund/view.tt2:127 ../../Open-ILS/src/templates/acq/po/item_table.tt2:10
 msgid "Note"
-msgstr ""
+msgstr "Poznámka"
 
 #: ../../Open-ILS/src/templates/acq/common/notes.tt2:16
 msgid "Note is vendor-public"
-msgstr ""
+msgstr "Poznámka je viditelná pro dodavatele"
 
 #: ../../Open-ILS/src/templates/acq/common/final_claim_dialog.tt2:4
 msgid "Note:"
-msgstr ""
+msgstr "Poznámka:"
 
 #: ../../Open-ILS/src/templates/acq/fund/view.tt2:54 ../../Open-ILS/src/templates/acq/funding_source/view.tt2:22 ../../Open-ILS/src/templates/acq/funding_source/view.tt2:76
 msgid "Note: "
-msgstr ""
+msgstr "Poznámka: "
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:128 ../../Open-ILS/src/templates/acq/common/li_table.tt2:365 ../../Open-ILS/src/templates/acq/po/view.tt2:48
 msgid "Notes"
-msgstr ""
+msgstr "Poznámky"
 
 #. ("<span name=\"notes_count\">0</span>")
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:202
 msgid "Notes(%1)"
-msgstr ""
+msgstr "Poznámky(%1)"
 
 #: ../../Open-ILS/src/templates/acq/po/search.tt2:58
 msgid "On order"
-msgstr ""
+msgstr "Objednáno"
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:219
 msgid "On-Order"
-msgstr ""
+msgstr "Objednáno"
 
 #: ../../Open-ILS/src/templates/acq/common/vlagent.tt2:9
 msgid "Or create a new queue"
-msgstr ""
+msgstr "Nebo vytvořit novou frontu"
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:164
 msgid "Order Identifier"
-msgstr ""
+msgstr "Identifikátor objednávky"
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:216
 msgid "Order-Ready"
diff --git a/build/i18n/po/acq/cs-CZ.po b/build/i18n/po/acq/es-ES.po
similarity index 90%
copy from build/i18n/po/acq/cs-CZ.po
copy to build/i18n/po/acq/es-ES.po
index 24ce0cc..8f80b67 100644
--- a/build/i18n/po/acq/cs-CZ.po
+++ b/build/i18n/po/acq/es-ES.po
@@ -1,4 +1,4 @@
-# Czech translation for evergreen
+# Spanish translation for evergreen
 # Copyright (c) 2016 Rosetta Contributors and Canonical Ltd 2016
 # This file is distributed under the same license as the evergreen package.
 # FIRST AUTHOR <EMAIL at ADDRESS>, 2016.
@@ -8,30 +8,30 @@ msgstr ""
 "Project-Id-Version: evergreen\n"
 "Report-Msgid-Bugs-To: FULL NAME <EMAIL at ADDRESS>\n"
 "POT-Creation-Date: 2016-08-26 13:08+0000\n"
-"PO-Revision-Date: 2016-09-08 10:28+0000\n"
-"Last-Translator: Eva Cerninakova <Unknown>\n"
-"Language-Team: Czech <cs at li.org>\n"
+"PO-Revision-Date: 2016-09-20 20:29+0000\n"
+"Last-Translator: Anahi Valdez <avaldez at emeralddata.net>\n"
+"Language-Team: Spanish <es at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2016-09-09 05:56+0000\n"
-"X-Generator: Launchpad (build 18184)\n"
+"X-Launchpad-Export-Date: 2016-09-21 06:09+0000\n"
+"X-Generator: Launchpad (build 18204)\n"
 
 #: ../../Open-ILS/src/templates/acq/invoice/view.tt2:6
 msgid " Invoice "
-msgstr " Faktura "
+msgstr " Factura "
 
 #: ../../Open-ILS/src/templates/acq/invoice/receive.tt2:39
 msgid " Select All"
-msgstr " Vybrat vše"
+msgstr " Seleccionar Todo"
 
 #: ../../Open-ILS/src/templates/acq/invoice/view.tt2:90
 msgid "# Invoiced / # Paid"
-msgstr "# Fakturováno / # Zaplaceno"
+msgstr "# Facturado / # Pagado"
 
 #: ../../Open-ILS/src/templates/acq/common/notes.tt2:7
 msgid "#x2196; Return"
-msgstr "#x2196; Zpět"
+msgstr "#x2196; Retorno"
 
 #. ("<span id=\"acq-po-view-total-estimated\"></span>")
 #. ("<span id=\"acq-po-view-total-enc\"></span>")
@@ -43,216 +43,216 @@ msgstr "$%1"
 #. ("<span id=\"records-up\">0</span>")
 #: ../../Open-ILS/src/templates/acq/lineitem/search.tt2:99
 msgid "%1 term(s) prepared for search"
-msgstr "%1 položek připraveno pro vyhledání"
+msgstr "%1 termino(s) preparado para la búsqueda"
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:58
 msgid "« Previous"
-msgstr "« Previous"
+msgstr "« Previos"
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:284 ../../Open-ILS/src/templates/acq/common/li_table.tt2:397 ../../Open-ILS/src/templates/acq/lineitem/worksheet.tt2:12
 msgid "&#x2196; Return"
-msgstr "&#x2196; Zpět"
+msgstr "&#x2196; Retorno"
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:282
 msgid "&#x2196; Return To Invoice"
-msgstr "&#x2196; Zpět na fakturu"
+msgstr "&#x2196; Volver A Factura"
 
 #: ../../Open-ILS/src/templates/acq/picklist/view.tt2:20 ../../Open-ILS/src/templates/acq/po/view.tt2:133
 msgid "&#x2196; Return to Invoice"
-msgstr "&#x2196; Zpět na fakturu"
+msgstr "&#x2196; Volver a Factura"
 
 #: ../../Open-ILS/src/templates/acq/picklist/view.tt2:17 ../../Open-ILS/src/templates/acq/po/view.tt2:130
 msgid "&#x2196; Return to Search"
-msgstr "&#x2196; Zpět na hledání"
+msgstr "&#x2196; Regresar a Busqueda"
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:182
 msgid "&#x270D; worksheet"
-msgstr "&#x270D; pracovní list"
+msgstr "& # X270D; hoja de cálculo"
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:180
 msgid "&#x279F; catalog"
-msgstr "&#x279F; katalog"
+msgstr "&#x279F; catalogo"
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:189
 msgid "&#x27AC; queue"
-msgstr "&#x27AC; fronta"
+msgstr "& # X27AC; cola"
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:181
 msgid "&#x27BE; link to catalog"
-msgstr "&#x27BE; odkaz do katalogu"
+msgstr "&#x27BE; enlace a catalogo"
 
 #: ../../Open-ILS/src/templates/acq/invoice/view.tt2:220
 msgid "(building the results list progressively)"
-msgstr "(postupné sestavení výsledků vyhledávání)"
+msgstr "(construir la lista de resultados de forma progresiva)"
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:206
 msgid "-- Actions --"
-msgstr "-- Akce --"
+msgstr "-- Acciones --"
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:29
 msgid "----PO----"
-msgstr "----OBJ----"
+msgstr "----PO----"
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:22
 msgid "--Actions--"
-msgstr "--Akce--"
+msgstr "--Acciones--"
 
 #: ../../Open-ILS/src/templates/acq/common/vlagent.tt2:82
 msgid "ACQ Copies Processed"
-msgstr "Akviziční exempláře zpracovány"
+msgstr "Copias ACQ Procesados"
 
 #: ../../Open-ILS/src/templates/acq/lineitem/search.tt2:62
 msgid "ALL of the following terms match"
-msgstr "Shoda u VŠECH následujících položek"
+msgstr "TODOS los siguientes términos coinciden"
 
 #: ../../Open-ILS/src/templates/acq/lineitem/search.tt2:55
 msgid "ANY of the following terms match"
-msgstr "Shoda u LIBOVOLNÉ z následujících položek"
+msgstr "ALGUNO de los siguientes términos coincidencia"
 
 #: ../../Open-ILS/src/templates/acq/invoice/receive.tt2:2
 msgid "Acquisitions Invoice Receiving"
-msgstr "Příjem akviziční faktury"
+msgstr "Recepción de Factura Adquisiciones"
 
 #: ../../Open-ILS/src/templates/acq/search/unified.tt2:11 ../../Open-ILS/src/templates/acq/search/unified.tt2:2
 msgid "Acquisitions Search"
-msgstr "Vyhledávání v akvizici"
+msgstr "Búsqueda de adquisiciones"
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:129
 msgid "Actions"
-msgstr "Akce"
+msgstr "Acciones"
 
 #: ../../Open-ILS/src/templates/acq/po/view.tt2:26
 msgid "Activatable?"
-msgstr "Lze aktivovat?"
+msgstr "Activable?"
 
 #: ../../Open-ILS/src/templates/acq/po/search.tt2:20 ../../Open-ILS/src/templates/acq/po/view.tt2:31
 msgid "Activate Order"
-msgstr "Aktivovat objednávku"
+msgstr "Activar Orden"
 
 #: ../../Open-ILS/src/templates/acq/picklist/upload.tt2:16
 msgid "Activate Purchase Order"
-msgstr "Aktivovat objednávku"
+msgstr "Activar la Orden de Compra"
 
 #: ../../Open-ILS/src/templates/acq/po/view.tt2:35
 msgid "Activate Without Loading Items"
-msgstr "Aktivovat bez zavedení exemplářů"
+msgstr "Activar Sin Cargar Artículos"
 
 #: ../../Open-ILS/src/templates/acq/common/jubgrid.tt2:62
 msgid "Actual Price"
-msgstr "Aktuální cena"
+msgstr "Precio Actual"
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:27
 msgid "Add Brief Record"
-msgstr "Přidat stručný záznam"
+msgstr "Agregar Breve Registro"
 
 #: ../../Open-ILS/src/templates/acq/invoice/view.tt2:145
 msgid "Add Charge..."
-msgstr "Přidat poplatek ..."
+msgstr "Agregar Cargo..."
 
 #: ../../Open-ILS/src/templates/acq/invoice/view.tt2:340
 msgid "Add New Items"
-msgstr "Přidat nové položky"
+msgstr "Agregar Nuevos Articulos"
 
 #: ../../Open-ILS/src/templates/acq/invoice/view.tt2:262 ../../Open-ILS/src/templates/acq/search/unified.tt2:83
 msgid "Add Search Term"
-msgstr "Přidat vyhledávací termín"
+msgstr "Agregar Articulos de Búsqueda"
 
 #: ../../Open-ILS/src/templates/acq/invoice/view.tt2:268
 msgid "Add Selected Items to Invoice"
-msgstr "Přidat vybrané položky na fakturu"
+msgstr "Agregar Articulos Seleccionados a Factura"
 
 #: ../../Open-ILS/src/templates/acq/fund/view.tt2:236
 msgid "Add Tag"
-msgstr "Přidat štítek"
+msgstr "Agregar Etiqueta"
 
 #: ../../Open-ILS/src/templates/acq/picklist/brief_record.tt2:10
 msgid "Add To Selection List"
-msgstr "Přidat do akvizičního seznamu"
+msgstr "Agregar a Lista de Seleccion"
 
 #: ../../Open-ILS/src/templates/acq/lineitem/search.tt2:102
 msgid "Add file"
-msgstr "Přidat soubor"
+msgstr "Añadir archivo"
 
 #: ../../Open-ILS/src/templates/acq/lineitem/search.tt2:75
 msgid "Add more search terms"
-msgstr "Přidat více termínů pro vyhledávání"
+msgstr "Agregar mas terminos de búsqueda"
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:31 ../../Open-ILS/src/templates/acq/lineitem/related.tt2:44
 msgid "Add to Purchase Order"
-msgstr "Přidat k objednávce"
+msgstr "Agregar a Orden de Compra"
 
 #: ../../Open-ILS/src/templates/acq/lineitem/related.tt2:41 ../../Open-ILS/src/templates/acq/picklist/upload.tt2:30 ../../Open-ILS/src/templates/acq/picklist/user_request.tt2:68
 msgid "Add to Selection List"
-msgstr "Přidat do akvizičního seznamu"
+msgstr "Agregar a la Lista de Selección"
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:523
 msgid "Add to Selection List: "
-msgstr "Přidat do akvizičního seznamu: "
+msgstr "Agregar a la Lista de Selección: "
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:273
 msgid "Add/Edit Items"
-msgstr "Přidat/upravit položky"
+msgstr "Añadir/Editar Articulos"
 
 #: ../../Open-ILS/src/templates/acq/picklist/brief_record.tt2:14
 msgid "Adding to Purchase Order"
-msgstr "Přidávám do objednávky"
+msgstr "Añadiendo a la Orden de Compra"
 
 #: ../../Open-ILS/src/templates/acq/common/notes.tt2:31
 msgid "Additional comments"
-msgstr "Doplňující poznámky"
+msgstr "Comentarios adicionales"
 
 #. ("<span id=\"acq-lit-li-claim-dia-li-title\"></span>", "<span id=\"acq-lit-li-claim-dia-li-id\"></span>")
 #: ../../Open-ILS/src/templates/acq/common/claim_dialog.tt2:6
 msgid "Against item: %1 (%2)"
-msgstr "Proti položce: %1 (%2)"
+msgstr "En contra de articulo: %1 (%2)"
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:483
 msgid "All Line Items"
-msgstr "Všechny položky"
+msgstr "Todos los elementos de línea"
 
 #: ../../Open-ILS/src/templates/acq/funding_source/view.tt2:36
 msgid "Allocate to Fund"
-msgstr "Přidělit do  fondu"
+msgstr "Asignar para financiar"
 
 #: ../../Open-ILS/src/templates/acq/fund/view.tt2:179 ../../Open-ILS/src/templates/acq/funding_source/view.tt2:139
 msgid "Allocations"
-msgstr "Přidělené prostředky"
+msgstr "Las Asignaciones"
 
 #: ../../Open-ILS/src/templates/acq/po/view.tt2:136
 msgid "Allow activation with <br/> zero-copy lineitems"
-msgstr "Povolit aktivaci s  <br/> nulovým počtem položek"
+msgstr "Permitir la activación con <br/> ArtículosLínea copia-cero"
 
 #: ../../Open-ILS/src/templates/acq/fund/view.tt2:82
 msgid "Amount to transfer from"
-msgstr "Částka k přesunu z"
+msgstr "La cantidad a transferir desde"
 
 #: ../../Open-ILS/src/templates/acq/fund/view.tt2:33 ../../Open-ILS/src/templates/acq/funding_source/view.tt2:16 ../../Open-ILS/src/templates/acq/funding_source/view.tt2:57
 msgid "Amount: "
-msgstr "Částka: "
+msgstr "Cantidad: "
 
 #: ../../Open-ILS/src/templates/acq/fund/view.tt2:61 ../../Open-ILS/src/templates/acq/funding_source/view.tt2:29 ../../Open-ILS/src/templates/acq/funding_source/view.tt2:83 ../../Open-ILS/src/templates/acq/settings/li_attr.tt2:40
 msgid "Apply"
-msgstr "Použít"
+msgstr "Aplicar"
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:36
 msgid "Apply Claim Policy to Selected Line Items"
-msgstr "Použít reklamační politiku na vybrané položky"
+msgstr "Aplicar directiva de reclamación a elementos de línea seleccionados"
 
 #: ../../Open-ILS/src/templates/acq/funding_source/view.tt2:12
 msgid "Apply Credit"
-msgstr "Použít kredit"
+msgstr "Aplicar Credito"
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:111
 msgid "Apply to Selected"
-msgstr "Použít na vybrané"
+msgstr "Aplicar a selecciónados"
 
 #: ../../Open-ILS/src/templates/acq/common/jubgrid.tt2:138
 msgid "Approve Selected Titles"
-msgstr "Odslouhlasit zvolené tituly"
+msgstr "Aprobar Titulos Seleccionados"
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:217
 msgid "Approved"
-msgstr "Odsouhlaseno"
+msgstr "Aprobado"
 
 #: ../../Open-ILS/src/templates/acq/common/jubgrid.tt2:59 ../../Open-ILS/src/templates/acq/po/item_table.tt2:9
 msgid "Author"
@@ -260,363 +260,363 @@ msgstr "Autor"
 
 #: ../../Open-ILS/src/templates/acq/fund/view.tt2:165 ../../Open-ILS/src/templates/acq/funding_source/view.tt2:105 ../../Open-ILS/src/templates/acq/invoice/view.tt2:162
 msgid "Balance"
-msgstr "Zůstatek"
+msgstr "Balance"
 
 #: ../../Open-ILS/src/templates/acq/common/jubgrid.tt2:122 ../../Open-ILS/src/templates/acq/common/jubgrid.tt2:95 ../../Open-ILS/src/templates/acq/common/li_table.tt2:231 ../../Open-ILS/src/templates/acq/common/li_table.tt2:364 ../../Open-ILS/src/templates/acq/common/li_table.tt2:415 ../../Open-ILS/src/templates/acq/invoice/receive.tt2:47
 msgid "Barcode"
-msgstr "Čárový kód"
+msgstr "Codigo de barras"
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:349
 msgid "Batch Update"
-msgstr "Dávková aktualizace"
+msgstr "Cabios en bloque"
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:554
 msgid "Batch Update Funds"
-msgstr "Dávková aktualizace fondu"
+msgstr "Fondos Lotes Actualizar"
 
 #: ../../Open-ILS/src/templates/acq/picklist/from_bib.tt2:17
 msgid "Begin a new search"
-msgstr "Začít nové hledání"
+msgstr "Iniciar una nueva búsqueda"
 
 #: ../../Open-ILS/src/templates/acq/common/vlagent.tt2:39
 msgid "Best/Single Match Minimum Quality Ratio"
-msgstr "Nejlepší/jediný shoda poměru minimální kvality"
+msgstr "Mejor Relación/Individual de ajuste de calidad mínimo"
 
 #: ../../Open-ILS/src/templates/acq/common/vlagent.tt2:78
 msgid "Bib Records Merged/Imported"
-msgstr "Bibliografický záznam byl sloučen/importován"
+msgstr "Bib registros combinados / importadas"
 
 #: ../../Open-ILS/src/templates/acq/invoice/view.tt2:81
 msgid "Bibliographic Items"
-msgstr "Bibliografické jednotky"
+msgstr "Productos bibliográficos"
 
 #: ../../Open-ILS/src/templates/acq/invoice/view.tt2:125 ../../Open-ILS/src/templates/acq/invoice/view.tt2:91
 msgid "Billed"
-msgstr "Naúčtováno"
+msgstr "Facturado"
 
 #: ../../Open-ILS/src/templates/acq/common/jubgrid.tt2:119 ../../Open-ILS/src/templates/acq/common/jubgrid.tt2:91 ../../Open-ILS/src/templates/acq/common/li_table.tt2:230
 msgid "Branch"
-msgstr "Pobočka"
+msgstr "Rama"
 
 #: ../../Open-ILS/src/templates/acq/common/jubgrid.tt2:123 ../../Open-ILS/src/templates/acq/common/jubgrid.tt2:99 ../../Open-ILS/src/templates/acq/common/li_table.tt2:232
 msgid "Call Number"
-msgstr "Signatura"
+msgstr "Número De Llamada"
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:336 ../../Open-ILS/src/templates/acq/common/li_table.tt2:363 ../../Open-ILS/src/templates/acq/common/li_table.tt2:414 ../../Open-ILS/src/templates/acq/invoice/receive.tt2:46
 msgid "Callnumber"
-msgstr "Signatura"
+msgstr "Llame el número"
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:381 ../../Open-ILS/src/templates/acq/common/li_table.tt2:499 ../../Open-ILS/src/templates/acq/common/li_table.tt2:570 ../../Open-ILS/src/templates/acq/common/li_table.tt2:589 ../../Open-ILS/src/templates/acq/invoice/view.tt2:338
 msgid "Cancel"
-msgstr "Zrušit"
+msgstr "Cancelar"
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:540
 msgid "Cancel Copy"
-msgstr "Zrušit exempláře"
+msgstr "Cancelar Copia"
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:48
 msgid "Cancel Line Items"
-msgstr "Zrušit položky"
+msgstr "Cancelar Articulo de Linea"
 
 #: ../../Open-ILS/src/templates/acq/picklist/user_request.tt2:71 ../../Open-ILS/src/templates/acq/picklist/user_request.tt2:79
 msgid "Cancel Request"
-msgstr "Zrušit žádost"
+msgstr "Cancelar petición"
 
 #: ../../Open-ILS/src/templates/acq/po/events.tt2:9
 msgid "Cancel Selected"
-msgstr "Zrušit vybrané"
+msgstr "Cancelar Seleccionada"
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:35
 msgid "Cancel Selected Line Items"
-msgstr "Zrušit vybrané položky"
+msgstr "Cancelar Articulos de línea seleccionados"
 
 #: ../../Open-ILS/src/templates/acq/po/view.tt2:112 ../../Open-ILS/src/templates/acq/po/view.tt2:120
 msgid "Cancel order"
-msgstr "Zrušit objednávku"
+msgstr "Cancelar pedido"
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:221
 msgid "Canceled"
-msgstr "Zrušeno"
+msgstr "Cancelado"
 
 #: ../../Open-ILS/src/templates/acq/invoice/view.tt2:122 ../../Open-ILS/src/templates/acq/po/item_table.tt2:6
 msgid "Charge Type"
-msgstr "Účtovaný typ"
+msgstr "Tipo de Cambio"
 
 #: ../../Open-ILS/src/templates/acq/common/notes.tt2:27
 msgid "Choose alert code "
-msgstr "Zvolte kód varování "
+msgstr "Elige código de alerta "
 
 #: ../../Open-ILS/src/templates/acq/common/inv_dialog.tt2:3
 msgid "Choose invoice"
-msgstr "Zvolte fakturu"
+msgstr "Elija factura"
 
 #: ../../Open-ILS/src/templates/acq/picklist/list.tt2:53 ../../Open-ILS/src/templates/acq/search/unified.tt2:171
 msgid "Choose the Lead Selection List:"
-msgstr "Zvolte řídící akviziční seznam"
+msgstr "Elija la Lista de Selección de Ejecución:"
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:235 ../../Open-ILS/src/templates/acq/common/li_table.tt2:335 ../../Open-ILS/src/templates/acq/common/li_table.tt2:362 ../../Open-ILS/src/templates/acq/common/li_table.tt2:413 ../../Open-ILS/src/templates/acq/common/li_table.tt2:84 ../../Open-ILS/src/templates/acq/invoice/receive.tt2:44
 msgid "Circ Modifier"
-msgstr "Modifikátor výpůjčky"
+msgstr "Modificador Circ"
 
 #: ../../Open-ILS/src/templates/acq/common/final_claim_dialog.tt2:6 ../../Open-ILS/src/templates/acq/common/li_table.tt2:381
 msgid "Claim"
-msgstr "Reklamace"
+msgstr "Reclamación"
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:543
 msgid "Claim policy:"
-msgstr "Reklamační politika"
+msgstr "Reclamar la política:"
 
 #: ../../Open-ILS/src/templates/acq/common/claim_dialog.tt2:58
 msgid "Claim selected"
-msgstr "Reklamovat vybrané"
+msgstr "Reclamo seleccionado"
 
 #: ../../Open-ILS/src/templates/acq/financial/claim_eligible.tt2:16 ../../Open-ILS/src/templates/acq/financial/claim_eligible.tt2:46
 msgid "Claim selected items"
-msgstr "REklamovat vybrané položky"
+msgstr "Reclamo de articulos seleccionados"
 
 #: ../../Open-ILS/src/templates/acq/common/final_claim_dialog.tt2:2
 msgid "Claim type:"
-msgstr "Typ reklamace"
+msgstr "Tipo de Reclamo:"
 
 #: ../../Open-ILS/src/templates/acq/common/claim_dialog.tt2:5 ../../Open-ILS/src/templates/acq/common/li_table.tt2:209
 msgid "Claims"
-msgstr "Reklamace"
+msgstr "Reclamaciones"
 
 #: ../../Open-ILS/src/templates/acq/picklist/bib_search.tt2:44
 msgid "Clear Form"
-msgstr "Vymazat formulář"
+msgstr "Limpiar Formulario"
 
 #: ../../Open-ILS/src/templates/acq/lineitem/search.tt2:104
 msgid "Clear loaded search terms"
-msgstr "Vymazat nahrané vyhledávací termíni"
+msgstr "Limpiar terminos de busqueda cargados"
 
 #: ../../Open-ILS/src/templates/acq/picklist/list.tt2:41 ../../Open-ILS/src/templates/acq/search/unified.tt2:155
 msgid "Clone"
-msgstr "Klonovat"
+msgstr "Clonar"
 
 #: ../../Open-ILS/src/templates/acq/picklist/list.tt2:32 ../../Open-ILS/src/templates/acq/search/unified.tt2:143
 msgid "Clone Selected"
-msgstr "Klonovat vybrané"
+msgstr "Clon Seleccionado"
 
 #: ../../Open-ILS/src/templates/acq/invoice/view.tt2:175
 msgid "Close"
-msgstr "Zavřít"
+msgstr "Cerrar"
 
 #: ../../Open-ILS/src/templates/acq/fund/view.tt2:162 ../../Open-ILS/src/templates/acq/funding_source/view.tt2:104 ../../Open-ILS/src/templates/acq/settings/li_attr.tt2:50
 msgid "Code"
-msgstr "Kód"
+msgstr "Código"
 
 #: ../../Open-ILS/src/templates/acq/settings/li_attr.tt2:10
 msgid "Code:"
-msgstr "Kód:"
+msgstr "Código:"
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:236 ../../Open-ILS/src/templates/acq/common/li_table.tt2:333 ../../Open-ILS/src/templates/acq/common/li_table.tt2:360 ../../Open-ILS/src/templates/acq/common/li_table.tt2:78 ../../Open-ILS/src/templates/acq/invoice/receive.tt2:43
 msgid "Collection Code"
-msgstr "Kód sbírky"
+msgstr "Código de la colección"
 
 #: ../../Open-ILS/src/templates/acq/financial/claim_eligible.tt2:34
 msgid "Consider individual copies for claiming"
-msgstr "Pro reklamaci brát zřetel na jednotlivé kopie"
+msgstr "Examinar cosas individuales para reclamar"
 
 #: ../../Open-ILS/src/templates/acq/fund/list.tt2:126 ../../Open-ILS/src/templates/acq/picklist/upload.tt2:26 ../../Open-ILS/src/templates/acq/picklist/user_request.tt2:13 ../../Open-ILS/src/templates/acq/po/events.tt2:23
 msgid "Context Org Unit"
-msgstr "Související organizační jednotka"
+msgstr "Unidad de Contexto Org"
 
 #: ../../Open-ILS/src/templates/acq/fund/list.tt2:91
 msgid "Context Org Unit:"
-msgstr "Související organizační jednotka:"
+msgstr "Unidad de Contexto Org"
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:391 ../../Open-ILS/src/templates/acq/common/li_table.tt2:69
 msgid "Copies"
-msgstr "Exempláře"
+msgstr "Copias"
 
 #. ("<span name=\"count\">0</span>")
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:200
 msgid "Copies(%1)"
-msgstr "Exempláře (%1)"
+msgstr "Copias(%1)"
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:234 ../../Open-ILS/src/templates/acq/common/li_table.tt2:332 ../../Open-ILS/src/templates/acq/common/li_table.tt2:359 ../../Open-ILS/src/templates/acq/common/li_table.tt2:412 ../../Open-ILS/src/templates/acq/common/li_table.tt2:75 ../../Open-ILS/src/templates/acq/invoice/receive.tt2:42
 msgid "Copy Location"
-msgstr "Umístění"
+msgstr "Ubicación de la copia"
 
 #: ../../Open-ILS/src/templates/acq/common/jubgrid.tt2:184 ../../Open-ILS/src/templates/acq/common/notes.tt2:19 ../../Open-ILS/src/templates/acq/common/notes.tt2:34 ../../Open-ILS/src/templates/acq/picklist/list.tt2:24 ../../Open-ILS/src/templates/acq/search/unified.tt2:136
 msgid "Create"
-msgstr "Vytvořit"
+msgstr "Crear"
 
 #: ../../Open-ILS/src/templates/acq/fund/view.tt2:11
 msgid "Create Allocation"
-msgstr "Vytvořit přidělení"
+msgstr "Crear Asignación"
 
 #: ../../Open-ILS/src/templates/acq/po/view.tt2:84
 msgid "Create Invoice"
-msgstr "Vytvořit fakturu"
+msgstr "Crear Factura"
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:39
 msgid "Create Invoice From Selected Line Items"
-msgstr "Vytvořit fakturu z označených položek"
+msgstr "Crear Factura de Elementos de Línea Seleccionados"
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:30 ../../Open-ILS/src/templates/acq/lineitem/related.tt2:47 ../../Open-ILS/src/templates/acq/picklist/upload.tt2:10 ../../Open-ILS/src/templates/acq/po/create.tt2:2 ../../Open-ILS/src/templates/acq/po/create.tt2:3
 msgid "Create Purchase Order"
-msgstr "Vytvořit objednávku"
+msgstr "Crear Pedido de Compra"
 
 #: ../../Open-ILS/src/templates/acq/picklist/user_request.tt2:39
 msgid "Create Request"
-msgstr "Vtvoořit požadavek"
+msgstr "Crear Solicitud"
 
 #. ("<span id=\"oils-acq-picklist-attr-cdate\"></span>")
 #: ../../Open-ILS/src/templates/acq/picklist/view.tt2:9
 msgid "Create date: %1"
-msgstr "Datum vytvoření: %1"
+msgstr "Fecha de creación: 1%"
 
 #: ../../Open-ILS/src/templates/acq/funding_source/view.tt2:117
 msgid "Credits"
-msgstr "Příspěvky"
+msgstr "Créditos"
 
 #: ../../Open-ILS/src/templates/acq/currency_type/list.tt2:3 ../../Open-ILS/src/templates/acq/fund/view.tt2:163 ../../Open-ILS/src/templates/acq/funding_source/view.tt2:108
 msgid "Currency Type"
-msgstr "Typ měny"
+msgstr "Tipo de Moneda"
 
 #: ../../Open-ILS/src/templates/acq/fund/view.tt2:207
 msgid "Debits"
-msgstr "Dluh"
+msgstr "Débitos"
 
 #: ../../Open-ILS/src/templates/acq/common/vlagent.tt2:86
 msgid "Debits Encumbered"
-msgstr "Zatížení"
+msgstr "Débitos Gravados"
 
 #: ../../Open-ILS/src/templates/acq/common/notes.tt2:55 ../../Open-ILS/src/templates/acq/invoice/view.tt2:128 ../../Open-ILS/src/templates/acq/invoice/view.tt2:139
 msgid "Delete"
-msgstr "Smazat"
+msgstr "Eliminar"
 
 #: ../../Open-ILS/src/templates/acq/currency_type/list.tt2:6 ../../Open-ILS/src/templates/acq/fund/list.tt2:42 ../../Open-ILS/src/templates/acq/funding_source/list.tt2:27 ../../Open-ILS/src/templates/acq/picklist/list.tt2:64 ../../Open-ILS/src/templates/acq/search/unified.tt2:186
 msgid "Delete Selected"
-msgstr "Smazat vybrané"
+msgstr "Eliminar seleccionados"
 
 #: ../../Open-ILS/src/templates/acq/common/jubgrid.tt2:192
 msgid "Delete Selected Copy"
-msgstr "Smazat vybrané exempláře"
+msgstr "Eliminar Seleccionado Copia"
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:26
 msgid "Delete Selected Items"
-msgstr "Smazat vybrané položky"
+msgstr "Borrar los elementos seleccionados"
 
 #: ../../Open-ILS/src/templates/acq/settings/li_attr.tt2:51
 msgid "Description"
-msgstr "Popis"
+msgstr "Descripción"
 
 #: ../../Open-ILS/src/templates/acq/settings/li_attr.tt2:14
 msgid "Description: "
-msgstr "Popis: "
+msgstr "Descripción: "
 
 #: ../../Open-ILS/src/templates/acq/fund/view.tt2:106
 msgid "Destination amount"
-msgstr "Cílová částka"
+msgstr "Cantidad de destino"
 
 #: ../../Open-ILS/src/templates/acq/fund/view.tt2:96
 msgid "Destination fund"
-msgstr "Cílový fond"
+msgstr "Fondo de destino"
 
 #: ../../Open-ILS/src/templates/acq/invoice/view.tt2:109 ../../Open-ILS/src/templates/acq/invoice/view.tt2:94
 msgid "Detach"
-msgstr "Odpojit"
+msgstr "Despegar"
 
 #: ../../Open-ILS/src/templates/acq/invoice/view.tt2:115 ../../Open-ILS/src/templates/acq/po/item_table.tt2:2
 msgid "Direct Charges, Taxes, Fees, etc."
-msgstr "Přímé platby, daně, poplatky apod."
+msgstr "Cargos Directos, Impuestos, Tarifas, etc."
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:87
 msgid "Distribution Formula"
-msgstr "Distribuční vzorec"
+msgstr "Fórmula de distribución"
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:307
 msgid "Distribution Formulas"
-msgstr "Distribuční vzorce"
+msgstr "Las fórmulas de distribución"
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:317
 msgid "Distribution formulas applied to this lineitem:"
-msgstr "Distribuční vzorce použité na tuto položku"
+msgstr "Fórmulas de distribución aplicados a esta línea de pedido:"
 
 #: ../../Open-ILS/src/templates/acq/fund/list.tt2:99
 msgid "Dry Run: "
-msgstr "Testovací běh: "
+msgstr "Simulacro: "
 
 #: ../../Open-ILS/src/templates/acq/po/edi_messages.tt2:2 ../../Open-ILS/src/templates/acq/po/edi_messages.tt2:6 ../../Open-ILS/src/templates/acq/po/view.tt2:57
 msgid "EDI Messages"
-msgstr "EDI zprávy"
+msgstr "Mensajes EDI"
 
 #. (ctx.page_args.0)
 #: ../../Open-ILS/src/templates/acq/po/edi_messages.tt2:4
 msgid "EDI Messages (Purchase Order %1)"
-msgstr "EDI Zprávy (objednávka %1)"
+msgstr "Mensajes EDI (Orden de Compra %1)"
 
 #: ../../Open-ILS/src/templates/acq/picklist/brief_record.tt2:26
 msgid "Edit MARC"
-msgstr "Editace MARCu"
+msgstr "Editar MARC"
 
 #: ../../Open-ILS/src/templates/acq/common/info.tt2:19
 msgid "Edit MARC Order Record"
-msgstr "Editovat  MARC v záznam objednávky"
+msgstr "Editar MARC Registro de Orden"
 
 #: ../../Open-ILS/src/templates/acq/po/events.tt2:38
 msgid "End Date Range"
-msgstr "Rozsah data ukončení"
+msgstr "Gama Fecha de Finalización"
 
 #: ../../Open-ILS/src/templates/acq/common/add_to_po.tt2:45
 msgid "Enter the PO Name: "
-msgstr "Zadejte jméno objednávky: "
+msgstr "Introduzca el nombre de PO: "
 
 #: ../../Open-ILS/src/templates/acq/picklist/list.tt2:84 ../../Open-ILS/src/templates/acq/search/unified.tt2:205
 msgid "Entry Count"
-msgstr "Počet položek"
+msgstr "Contador de entrada"
 
 #. ("<span id=\"oils-acq-picklist-attr-count\"></span>")
 #: ../../Open-ILS/src/templates/acq/picklist/view.tt2:12
 msgid "Entry Count: %1"
-msgstr "Počet položek: %1"
+msgstr "Recuento de Entradas: %1"
 
 #: ../../Open-ILS/src/templates/acq/po/item_table.tt2:11
 msgid "Estimated Cost"
-msgstr "Odhadované náklady"
+msgstr "Costo Estimado"
 
 #: ../../Open-ILS/src/templates/acq/common/jubgrid.tt2:68 ../../Open-ILS/src/templates/acq/common/li_table.tt2:131
 msgid "Estimated Price"
-msgstr "Odhadované cena"
+msgstr "Precio Estimado"
 
 #: ../../Open-ILS/src/templates/acq/picklist/bib_search.tt2:21
 msgid "Evergreen Catalog"
-msgstr "Katalog Evergreen"
+msgstr "Evergreen Catálogo"
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:198
 msgid "Expand"
-msgstr "Rozbalit"
+msgstr "Expandir"
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:125
 msgid "Expand All"
-msgstr "Rozbalit vše"
+msgstr "Expandir todo"
 
 #: ../../Open-ILS/src/templates/acq/invoice/view.tt2:27
 msgid "Expected Cost: "
-msgstr "Očekávané náklady: "
+msgstr "Costo Esperado: "
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:44
 msgid "Export List"
-msgstr "Exportovat seznam"
+msgstr "Exportar Lista"
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:28
 msgid "Export Single Attribute List"
-msgstr "Exportovat seznam jedinečných atributů"
+msgstr "Exportar la Lista Solo Atributo"
 
 #: ../../Open-ILS/src/templates/acq/invoice/view.tt2:330
 msgid "Extra Items"
-msgstr "Zvláštní  položky"
+msgstr "Elementos extra"
 
 #: ../../Open-ILS/src/templates/acq/settings/li_attr.tt2:29
 msgid "False"
-msgstr "Nepravda"
+msgstr "Falso"
 
 #: ../../Open-ILS/src/templates/acq/picklist/upload.tt2:52
 msgid "File to Upload:"
-msgstr "Soubor k nahrání"
+msgstr "Archivo a subir:"
 
 #: ../../Open-ILS/src/templates/acq/invoice/view.tt2:53
 msgid "Final invoice for Blanket order?"
@@ -628,15 +628,15 @@ msgstr ""
 
 #: ../../Open-ILS/src/templates/acq/picklist/upload.tt2:36
 msgid "Fiscal Year"
-msgstr "Fiskální rok"
+msgstr ""
 
 #: ../../Open-ILS/src/templates/acq/common/jubgrid.tt2:116 ../../Open-ILS/src/templates/acq/common/jubgrid.tt2:87 ../../Open-ILS/src/templates/acq/common/li_table.tt2:233 ../../Open-ILS/src/templates/acq/common/li_table.tt2:334 ../../Open-ILS/src/templates/acq/common/li_table.tt2:361 ../../Open-ILS/src/templates/acq/common/li_table.tt2:81 ../../Open-ILS/src/templates/acq/invoice/receive.tt2:45 ../../Open-ILS/src/templates/acq/invoice/view.tt2:123 ../../Open-ILS/src/templates/acq/po/item_table.tt2:7
 msgid "Fund"
-msgstr "Finanční fond"
+msgstr ""
 
 #: ../../Open-ILS/src/templates/acq/fund/view.tt2:5
 msgid "Fund Details"
-msgstr "Detaily fondu"
+msgstr ""
 
 #: ../../Open-ILS/src/templates/acq/fund/list.tt2:45
 msgid "Fund Propagation & Rollover"
@@ -644,71 +644,71 @@ msgstr ""
 
 #: ../../Open-ILS/src/templates/acq/common/jubgrid.tt2:166 ../../Open-ILS/src/templates/acq/funding_source/view.tt2:49
 msgid "Fund: "
-msgstr "Finanční fond: "
+msgstr ""
 
 #: ../../Open-ILS/src/templates/acq/funding_source/view.tt2:5
 msgid "Funding Source Details"
-msgstr "Detaily finančního zdroje"
+msgstr ""
 
 #: ../../Open-ILS/src/templates/acq/fund/view.tt2:25
 msgid "Funding Source: "
-msgstr "Finanční zdroj: "
+msgstr ""
 
 #: ../../Open-ILS/src/templates/acq/funding_source/list.tt2:24
 msgid "Funding Sources"
-msgstr "Finanční zdroje"
+msgstr ""
 
 #: ../../Open-ILS/src/templates/acq/fund/list.tt2:2 ../../Open-ILS/src/templates/acq/fund/list.tt2:38
 msgid "Funds"
-msgstr "Fond financí"
+msgstr ""
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:182
 msgid "Generate Worksheet"
-msgstr "Generovat pracovní list"
+msgstr ""
 
 #: ../../Open-ILS/src/templates/acq/settings/li_attr.tt2:66
 msgid "Generated Attributes"
-msgstr "Generované atributy"
+msgstr ""
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:289 ../../Open-ILS/src/templates/acq/common/li_table.tt2:590
 msgid "Go"
-msgstr "Potvrdit"
+msgstr ""
 
 #: ../../Open-ILS/src/templates/acq/lineitem/findbib.tt2:65
 msgid "Hide"
-msgstr "Skrýt"
+msgstr ""
 
 #: ../../Open-ILS/src/templates/acq/invoice/view.tt2:36
 msgid "Hide Details"
-msgstr "Skrýt podrobnosti"
+msgstr ""
 
 #: ../../Open-ILS/src/templates/acq/search/unified.tt2:14
 msgid "Hide Search Form"
-msgstr "Skrýt vyhledávací formulář"
+msgstr ""
 
 #: ../../Open-ILS/src/templates/acq/po/view.tt2:66
 msgid "History"
-msgstr "Historie"
+msgstr ""
 
 #: ../../Open-ILS/src/templates/acq/picklist/bib_search.tt2:35
 msgid "Hits Per Source"
-msgstr "Počet úspěšných na zdroj"
+msgstr ""
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:208
 msgid "Holdings Maint."
-msgstr "Správa exemplářů"
+msgstr ""
 
 #: ../../Open-ILS/src/templates/acq/common/jubgrid.tt2:115 ../../Open-ILS/src/templates/acq/common/jubgrid.tt2:57 ../../Open-ILS/src/templates/acq/common/jubgrid.tt2:86 ../../Open-ILS/src/templates/acq/fund/view.tt2:160 ../../Open-ILS/src/templates/acq/funding_source/view.tt2:102 ../../Open-ILS/src/templates/acq/po/search.tt2:39 ../../Open-ILS/src/templates/acq/po/search.tt2:99 ../../Open-ILS/src/templates/acq/po/view.tt2:13 ../../Open-ILS/src/templates/acq/settings/li_attr.tt2:49
 msgid "ID"
-msgstr "ID"
+msgstr ""
 
 #: ../../Open-ILS/src/templates/acq/common/jubgrid.tt2:60 ../../Open-ILS/src/templates/acq/common/li_table.tt2:167
 msgid "ISBN"
-msgstr "ISBN"
+msgstr ""
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:169
 msgid "ISSN"
-msgstr "ISSN"
+msgstr ""
 
 #: ../../Open-ILS/src/templates/acq/settings/li_attr.tt2:26
 msgid "Identifer Field?: "
@@ -716,19 +716,19 @@ msgstr ""
 
 #: ../../Open-ILS/src/templates/acq/receiving/process.tt2:11 ../../Open-ILS/src/templates/acq/settings/li_attr.tt2:54
 msgid "Identifier"
-msgstr "Identifikátor"
+msgstr ""
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:491
 msgid "Import Bibs and Create Copies"
-msgstr "Importovat bib. záznamy a vytvořit exempláře"
+msgstr ""
 
 #: ../../Open-ILS/src/templates/acq/common/vlagent.tt2:22
 msgid "Import Non-Matching Records"
-msgstr "Importovat záznamy, které nemají shodu"
+msgstr ""
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:189
 msgid "Import Queue"
-msgstr "Fronta importu"
+msgstr ""
 
 #: ../../Open-ILS/src/templates/acq/po/search.tt2:56
 msgid "In Process"
@@ -748,7 +748,7 @@ msgstr ""
 
 #: ../../Open-ILS/src/templates/acq/invoice/view.tt2:68
 msgid "Invoice"
-msgstr "Faktura"
+msgstr ""
 
 #: ../../Open-ILS/src/templates/acq/common/inv_dialog.tt2:8
 msgid "Invoice #"
@@ -756,7 +756,7 @@ msgstr ""
 
 #: ../../Open-ILS/src/templates/acq/invoice/view.tt2:2 ../../Open-ILS/src/templates/acq/po/view.tt2:75
 msgid "Invoicing"
-msgstr "Fakturace"
+msgstr ""
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:286
 msgid "Item Count: "
@@ -764,7 +764,7 @@ msgstr ""
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:127 ../../Open-ILS/src/templates/acq/financial/claim_eligible.tt2:22
 msgid "Items"
-msgstr "Exempláře"
+msgstr ""
 
 #: ../../Open-ILS/src/templates/acq/financial/claim_eligible.tt2:2 ../../Open-ILS/src/templates/acq/financial/claim_eligible.tt2:5
 msgid "Items Eligible For Claiming"
@@ -777,7 +777,7 @@ msgstr ""
 #. ("<span id=\"oils-acq-picklist-attr-edate\"></span>")
 #: ../../Open-ILS/src/templates/acq/picklist/view.tt2:10
 msgid "Last updated: %1"
-msgstr "Naposledy aktualizováno: %1"
+msgstr ""
 
 #: ../../Open-ILS/src/templates/acq/fund/list.tt2:76
 msgid "Limit Fiscal Year Close-out Operation to Encumbrances: "
@@ -789,7 +789,7 @@ msgstr ""
 
 #: ../../Open-ILS/src/templates/acq/common/li_table.tt2:121
 msgid "Line Items"
-msgstr "Položky"
+msgstr ""
 
 #: ../../Open-ILS/src/templates/acq/settings/li_attr.tt2:5
 msgid "Lineitem Attribute Attribute"
@@ -821,7 +821,7 @@ msgstr ""
 
 #: ../../Open-ILS/src/templates/acq/common/inv_dialog.tt2:27
 msgid "Link"
-msgstr "Připojit"
+msgstr ""
 
 #: ../../Open-ILS/src/templates/acq/po/view.tt2:87
 msgid "Link Invoice"
diff --git a/build/i18n/po/conify/cs-CZ.po b/build/i18n/po/conify/cs-CZ.po
new file mode 100644
index 0000000..e918e8f
--- /dev/null
+++ b/build/i18n/po/conify/cs-CZ.po
@@ -0,0 +1,1633 @@
+# Czech translation for evergreen
+# Copyright (c) 2016 Rosetta Contributors and Canonical Ltd 2016
+# This file is distributed under the same license as the evergreen package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, 2016.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: evergreen\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL at ADDRESS>\n"
+"POT-Creation-Date: 2016-08-26 13:08+0000\n"
+"PO-Revision-Date: 2016-09-20 20:57+0000\n"
+"Last-Translator: Eva Cerninakova <Unknown>\n"
+"Language-Team: Czech <cs at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2016-09-21 06:09+0000\n"
+"X-Generator: Launchpad (build 18204)\n"
+
+#. (i18n_vac)
+#: ../../Open-ILS/src/templates/conify/global/acq/edi_account.tt2:54
+msgid ""
+"%1 (VAC) is essentially a sub-account designation, e.g. '0001'.  It can be "
+"used with or without VAN."
+msgstr ""
+
+#. (i18n_van)
+#: ../../Open-ILS/src/templates/conify/global/acq/edi_account.tt2:53
+msgid ""
+"%1 (VAN) is vendor-assigned, only needed if different than the org_unit SAN."
+msgstr ""
+
+#. (i18n_host)
+#: ../../Open-ILS/src/templates/conify/global/acq/edi_account.tt2:44
+msgid ""
+"%1 is the full FTP/SSH hostname, including the protocol, e.g. "
+"ftp://ftp1.somevendor.com"
+msgstr ""
+"%1 je plné jméno hostitelského počítače  FTP/SSH, včetně protokolu, např.  "
+"ftp://ftp1.nejaky_dodavatel.com"
+
+#. (i18n_account)
+#: ../../Open-ILS/src/templates/conify/global/acq/edi_account.tt2:52
+msgid ""
+"%1 is unlikely to be used by modern systems and should typically be empty."
+msgstr ""
+"%1 pravděpodobně nebude použito v moderním systému a obvykle by mělo být "
+"prázdné"
+
+#. (i18n_username, i18n_password, i18n_account)
+#: ../../Open-ILS/src/templates/conify/global/acq/edi_account.tt2:51
+msgid "%1, %2 and %3 are (s)FTP/SSH parameters."
+msgstr "%1, %2 a %3 jsou parametry (s)FTP/SSH."
+
+#: ../../Open-ILS/src/templates/conify/global/config/composite_attr_entry_definition.tt2:21
+msgid "&#x2196; Return To Coded Value Maps"
+msgstr "&#x2196; Zpět na mapu kódovaných údajů"
+
+#: ../../Open-ILS/src/templates/conify/global/asset/copy_location_group.tt2:94
+msgid "← Add"
+msgstr "← Přidat"
+
+#: ../../Open-ILS/src/templates/conify/global/actor/address_alert.tt2:21
+msgid ""
+"* Address Alert fields support regular expressions and are case-insensitive "
+"by default."
+msgstr ""
+"* Upozornění k adrese podporuje regulární výrazy a ve výchozím nastavení "
+"rozliuje velká a malá písmena"
+
+#: ../../Open-ILS/src/templates/conify/global/actor/address_alert.tt2:23
+msgid "* Example case-sensitive match: (?c)742 Evergr.*n Terrace"
+msgstr ""
+"* Příklad shody rozlišujcí velká a malá písmena: (?c)742 Evergr.*n Terrace"
+
+#: ../../Open-ILS/src/templates/conify/global/actor/address_alert.tt2:22
+msgid "* Example wildcard match:  742 Evergr.*n Terrace"
+msgstr "* Příklad shody zástupných  znaků:  742 Evergr.*n Terrace"
+
+#: ../../Open-ILS/src/templates/conify/global/actor/address_alert.tt2:24
+msgid ""
+"* If the billing or mailing address fields are selected, the tested address "
+"must be a billing or mailing address to match."
+msgstr ""
+"* Pokud je vybráno pole  trvalé nebo kontaktní adresy, pro dosažení shody je "
+"nutné, aby testovací adresa byla trvalá nebo kontaktní adresa"
+
+#: ../../Open-ILS/src/templates/conify/global/vandelay/match_set_tree.tt2:63
+msgid ""
+"A relative number representing the impact of this expression on the score of "
+"the overall record match"
+msgstr ""
+"Relativní číslo reprezentující vliv tohoto výrazu na skóre všeobecné shody "
+"záznamu"
+
+#: ../../Open-ILS/src/templates/conify/global/acq/edi_account.tt2:44
+msgid "Account"
+msgstr "Účet"
+
+#: ../../Open-ILS/src/templates/conify/global/actor/org_unit_custom_tree.tt2:59
+msgid "Activate Tree"
+msgstr "Aktivovat stroj"
+
+#: ../../Open-ILS/src/templates/conify/global/config/circ_matrix_matchpoint.tt2:37
+msgid "Active"
+msgstr "Aktivní"
+
+#: ../../Open-ILS/src/templates/conify/global/config/actor_sip_fields.tt2:2 ../../Open-ILS/src/templates/conify/global/config/actor_sip_fields.tt2:5
+msgid "Actor Stat Cat Sip Fields"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/circ_limit_set.tt2:45 ../../Open-ILS/src/templates/conify/global/config/circ_limit_set.tt2:66 ../../Open-ILS/src/templates/conify/global/config/circ_limit_set.tt2:89 ../../Open-ILS/src/templates/conify/global/config/circ_matrix_matchpoint.tt2:52 ../../Open-ILS/src/templates/conify/global/config/floating_groups.tt2:48
+msgid "Add"
+msgstr "Přidat"
+
+#: ../../Open-ILS/src/templates/conify/global/config/composite_attr_entry_definition.tt2:47
+msgid "Add Child"
+msgstr "Přidat podřízené"
+
+#: ../../Open-ILS/src/templates/conify/global/action/survey.tt2:6
+msgid "Add New Survey"
+msgstr "Přidat nový průzkum"
+
+#: ../../Open-ILS/src/templates/conify/global/vandelay/match_set_tree.tt2:87
+msgid "Add new"
+msgstr "Přidat nový"
+
+#: ../../Open-ILS/src/templates/conify/global/actor/address_alert.tt2:2 ../../Open-ILS/src/templates/conify/global/actor/address_alert.tt2:5
+msgid "Address Alert"
+msgstr "Varování pro adresy"
+
+#: ../../Open-ILS/src/templates/conify/global/config/rule_age_hold_protect.tt2:2 ../../Open-ILS/src/templates/conify/global/config/rule_age_hold_protect.tt2:5
+msgid "Age Hold Protect Rules"
+msgstr "Pravidla dočasné ochrany před rezervacemi"
+
+#: ../../Open-ILS/src/templates/conify/global/config/z3950_source.tt2:73
+msgid "Apply"
+msgstr "Použít"
+
+#: ../../Open-ILS/src/templates/conify/global/acq/distribution_formula.tt2:44 ../../Open-ILS/src/templates/conify/global/acq/distribution_formula.tt2:81 ../../Open-ILS/src/templates/conify/global/actor/org_unit_custom_tree.tt2:63 ../../Open-ILS/src/templates/conify/global/asset/copy_location_order.tt2:18
+msgid "Apply Changes"
+msgstr "Potvrdit změny"
+
+#: ../../Open-ILS/src/templates/conify/global/config/z3950_source.tt2:37
+msgid "Apply Credentials"
+msgstr "Použít ověření"
+
+#: ../../Open-ILS/src/templates/conify/global/config/org_unit_setting_type.tt2:14 ../../Open-ILS/src/templates/conify/global/config/usr_setting_type.tt2:14
+msgid "Array"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/asset_sip_fields.tt2:2 ../../Open-ILS/src/templates/conify/global/config/asset_sip_fields.tt2:5
+msgid "Asset Stat Cat Sip Fields"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/acq/provider.tt2:102 ../../Open-ILS/src/templates/conify/global/acq/provider.tt2:104
+msgid "Attribute Definitions"
+msgstr "Definice atributů"
+
+#: ../../Open-ILS/src/templates/conify/global/config/circ_modifier.tt2:10 ../../Open-ILS/src/templates/conify/global/config/circ_modifier.tt2:63
+msgid "Audio Tape"
+msgstr "Zvuková páska"
+
+#: ../../Open-ILS/src/templates/conify/global/cat/authority/control_set_authority_field.tt2:5
+msgid "Authority Fields"
+msgstr "Autoritní pole"
+
+#: ../../Open-ILS/src/templates/conify/global/cat/authority/control_set_authority_field.tt2:29
+msgid "Axes"
+msgstr "Osy"
+
+#: ../../Open-ILS/src/templates/conify/global/acq/provider.tt2:157
+msgid "Barcode"
+msgstr "Čárový kód"
+
+#: ../../Open-ILS/src/templates/conify/global/config/barcode_completion.tt2:1 ../../Open-ILS/src/templates/conify/global/config/barcode_completion.tt2:5
+msgid "Barcode Completion Configuration"
+msgstr "Konfigurace dokončení čárového kódu"
+
+#: ../../Open-ILS/src/templates/conify/global/action_trigger/event_definition_data.tt2:63
+msgid "Barcode of Circulating Copy"
+msgstr "Čárový kód vypůjčeného exempláře"
+
+#: ../../Open-ILS/src/templates/conify/global/config/best_hold_order.tt2:67
+msgid ""
+"Because rtime, a high-precision timestamp, is essentially unique among "
+"holds, no fields arranged after rtime really have any effect in determining "
+"best-hold selection."
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/best_hold_order.tt2:17
+msgid "Best-Hold Selection Sort Order"
+msgstr "Pořadí pro řazení \"nejvýhodnějších rezervací\""
+
+#: ../../Open-ILS/src/templates/conify/global/config/billing_type.tt2:2 ../../Open-ILS/src/templates/conify/global/config/billing_type.tt2:9
+msgid "Billing Types"
+msgstr "Typy poplatků"
+
+#: ../../Open-ILS/src/templates/conify/global/config/circ_modifier.tt2:57 ../../Open-ILS/src/templates/conify/global/config/circ_modifier.tt2:7
+msgid "Book"
+msgstr "Kniha"
+
+#: ../../Open-ILS/src/templates/conify/global/config/circ_modifier.tt2:15 ../../Open-ILS/src/templates/conify/global/config/circ_modifier.tt2:73
+msgid "Book with CD"
+msgstr "Kniha s CD"
+
+#: ../../Open-ILS/src/templates/conify/global/config/circ_modifier.tt2:16 ../../Open-ILS/src/templates/conify/global/config/circ_modifier.tt2:75
+msgid "Book with audio tape"
+msgstr "Kniha se zvukovou páskou"
+
+#: ../../Open-ILS/src/templates/conify/global/config/circ_modifier.tt2:14 ../../Open-ILS/src/templates/conify/global/config/circ_modifier.tt2:71
+msgid "Book with diskette"
+msgstr "Kniha s disketou"
+
+#: ../../Open-ILS/src/templates/conify/global/config/org_unit_setting_type.tt2:7 ../../Open-ILS/src/templates/conify/global/config/usr_setting_type.tt2:7
+msgid "Boolean"
+msgstr "Booleovské"
+
+#: ../../Open-ILS/src/templates/conify/global/vandelay/match_set_tree.tt2:91
+msgid "Boolean Operator"
+msgstr "Booleovský operátor"
+
+#: ../../Open-ILS/src/templates/conify/global/config/composite_attr_entry_definition.tt2:60
+msgid "Boolean: AND"
+msgstr "Booleovský: AND"
+
+#: ../../Open-ILS/src/templates/conify/global/config/composite_attr_entry_definition.tt2:69
+msgid "Boolean: NOT"
+msgstr "Booleovský: NOT"
+
+#: ../../Open-ILS/src/templates/conify/global/config/composite_attr_entry_definition.tt2:64
+msgid "Boolean: OR"
+msgstr "Booleovský: OR"
+
+#: ../../Open-ILS/src/templates/conify/global/config/circ_modifier.tt2:61 ../../Open-ILS/src/templates/conify/global/config/circ_modifier.tt2:9
+msgid "Bound Journal"
+msgstr "Svázaný časopis"
+
+#: ../../Open-ILS/src/templates/conify/global/cat/authority/browse_axis.tt2:5
+msgid "Browse Axes"
+msgstr "Procházet osy"
+
+#: ../../Open-ILS/src/templates/conify/global/cat/authority/browse_axis_authority_field_map.tt2:5
+msgid "Browse Axis-Authority Field Maps"
+msgstr "Mapy polí pro procházení os autorit"
+
+#: ../../Open-ILS/src/templates/conify/global/config/circ_modifier.tt2:12 ../../Open-ILS/src/templates/conify/global/config/circ_modifier.tt2:67
+msgid "CD/CDROM"
+msgstr "CD/CDROM"
+
+#: ../../Open-ILS/src/templates/conify/global/acq/provider.tt2:152 ../../Open-ILS/src/templates/conify/global/acq/provider.tt2:188
+msgid "Call Number"
+msgstr "Signatura"
+
+#: ../../Open-ILS/src/templates/conify/global/config/acn_prefix.tt2:2 ../../Open-ILS/src/templates/conify/global/config/acn_prefix.tt2:9
+msgid "Call Number Prefixes"
+msgstr "Signatury: prefixy"
+
+#: ../../Open-ILS/src/templates/conify/global/config/acn_suffix.tt2:2 ../../Open-ILS/src/templates/conify/global/config/acn_suffix.tt2:9
+msgid "Call Number Suffixes"
+msgstr "Signatury: sufixy"
+
+#: ../../Open-ILS/src/templates/conify/global/actor/search_filter_group.tt2:56
+msgid "Cancel"
+msgstr "Storno"
+
+#: ../../Open-ILS/src/templates/conify/global/acq/cancel_reason.tt2:2
+msgid "Cancel Reasons"
+msgstr "Důvod zrušení"
+
+#: ../../Open-ILS/src/templates/conify/global/actor/org_unit_custom_tree.tt2:25
+msgid ""
+"Changes to custom org trees may require web server (apache) reload before "
+"taking effect"
+msgstr ""
+"Abys se projevily změny provedené  v přizpůsobeném organizačním stromu,  "
+"může být potřeba restart serveru (apache)."
+
+#: ../../Open-ILS/src/templates/conify/global/config/circ_limit_set.tt2:75
+msgid "Check Only?"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/best_hold_order.tt2:87 ../../Open-ILS/src/templates/conify/global/config/best_hold_order.tt2:90
+msgid "Choose a best-hold order"
+msgstr "Zvolit pořadí pro nejlepší rezervace"
+
+#: ../../Open-ILS/src/templates/conify/global/config/rule_circ_duration.tt2:2 ../../Open-ILS/src/templates/conify/global/config/rule_circ_duration.tt2:5
+msgid "Circ Duration Rules"
+msgstr "Pravidla pro trvání výpůjček"
+
+#: ../../Open-ILS/src/templates/conify/global/config/circ_matrix_weights.tt2:2 ../../Open-ILS/src/templates/conify/global/config/circ_matrix_weights.tt2:5
+msgid "Circ Matrix Weights"
+msgstr "Váhy matice výpůjček"
+
+#: ../../Open-ILS/src/templates/conify/global/config/rule_max_fine.tt2:2 ../../Open-ILS/src/templates/conify/global/config/rule_max_fine.tt2:5
+msgid "Circ Max Fine Rules"
+msgstr "Pravidla maximálních pokut"
+
+#: ../../Open-ILS/src/templates/conify/global/acq/distribution_formula.tt2:54 ../../Open-ILS/src/templates/conify/global/acq/provider.tt2:154
+msgid "Circ Modifier"
+msgstr "Modifikátor výpůjčky"
+
+#: ../../Open-ILS/src/templates/conify/global/config/circ_limit_group.tt2:2 ../../Open-ILS/src/templates/conify/global/config/circ_limit_group.tt2:4
+msgid "Circulation Limit Group"
+msgstr "Skupiny výpůjčních limitů"
+
+#: ../../Open-ILS/src/templates/conify/global/config/circ_limit_set.tt2:1 ../../Open-ILS/src/templates/conify/global/config/circ_limit_set.tt2:5
+msgid "Circulation Limit Set"
+msgstr "Sestava výpůjčních limitů"
+
+#: ../../Open-ILS/src/templates/conify/global/acq/provider.tt2:192 ../../Open-ILS/src/templates/conify/global/config/circ_modifier.tt2:2 ../../Open-ILS/src/templates/conify/global/config/circ_modifier.tt2:21
+msgid "Circulation Modifier"
+msgstr "Modifikátor výpůjčky"
+
+#: ../../Open-ILS/src/templates/conify/global/config/circ_matrix_matchpoint.tt2:1 ../../Open-ILS/src/templates/conify/global/config/circ_matrix_matchpoint.tt2:5
+msgid "Circulation Policy Configuration"
+msgstr "Nastavení výpůjčních pravidel a politik"
+
+#: ../../Open-ILS/src/templates/conify/global/acq/claim_event_type.tt2:2 ../../Open-ILS/src/templates/conify/global/acq/claim_event_type.tt2:6
+msgid "Claim Event Types"
+msgstr "Typy reklamačních událostí"
+
+#: ../../Open-ILS/src/templates/conify/global/acq/claim_policy.tt2:2 ../../Open-ILS/src/templates/conify/global/acq/claim_policy.tt2:7
+msgid "Claim Policies"
+msgstr "Reklamační politiky"
+
+#: ../../Open-ILS/src/templates/conify/global/acq/claim_policy_action.tt2:2 ../../Open-ILS/src/templates/conify/global/acq/claim_policy_action.tt2:7
+msgid "Claim Policy Actions"
+msgstr "Akce reklamačních politik"
+
+#: ../../Open-ILS/src/templates/conify/global/acq/claim_type.tt2:2 ../../Open-ILS/src/templates/conify/global/acq/claim_type.tt2:7
+msgid "Claim Types"
+msgstr "Typy reklamací"
+
+#: ../../Open-ILS/src/templates/conify/global/config/idl_field_doc.tt2:8
+msgid "Class:"
+msgstr "Třída:"
+
+#: ../../Open-ILS/src/templates/conify/global/config/z3950_source.tt2:40
+msgid "Clear Stored Credentials"
+msgstr "Smazat uložené kredity"
+
+#: ../../Open-ILS/src/templates/conify/global/config/z3950_source.tt2:15
+msgid "Clone Attributes From Source"
+msgstr "Klonovat atributy ze zdroje"
+
+#: ../../Open-ILS/src/templates/conify/global/acq/distribution_formula.tt2:11 ../../Open-ILS/src/templates/conify/global/action_trigger/event_definition.tt2:24 ../../Open-ILS/src/templates/conify/global/config/coded_value_map.tt2:9
+msgid "Clone Selected"
+msgstr "Klonovat vybrané"
+
+#: ../../Open-ILS/src/templates/conify/global/actor/search_filter_group.tt2:86
+msgid "Code"
+msgstr "Kód"
+
+#: ../../Open-ILS/src/templates/conify/global/config/coded_value_map.tt2:2 ../../Open-ILS/src/templates/conify/global/config/coded_value_map.tt2:5 ../../Open-ILS/src/templates/conify/global/config/record_attr_definition.tt2:26
+msgid "Coded Value Maps"
+msgstr "Hodnoty kódů polí pevné délky"
+
+#: ../../Open-ILS/src/templates/conify/global/config/composite_attr_entry_definition.tt2:17
+msgid "Coded Value: "
+msgstr "Hodnoty kódů polí pevné délky "
+
+#: ../../Open-ILS/src/templates/conify/global/actor/org_unit_custom_tree.tt2:34 ../../Open-ILS/src/templates/conify/global/actor/org_unit_custom_tree.tt2:53
+msgid "Collapse"
+msgstr "Sbalit"
+
+#: ../../Open-ILS/src/templates/conify/global/acq/distribution_formula.tt2:55 ../../Open-ILS/src/templates/conify/global/acq/provider.tt2:158 ../../Open-ILS/src/templates/conify/global/acq/provider.tt2:194
+msgid "Collection Code"
+msgstr "Kód sbírky"
+
+#: ../../Open-ILS/src/templates/conify/global/config/composite_attr_entry_definition.tt2:13
+msgid "Composite Attribute Entry Definitions"
+msgstr "Sdružená  derfinice atributů"
+
+#: ../../Open-ILS/src/templates/conify/global/config/composite_attr_entry_definition.tt2:24
+msgid "Composite Data Expression"
+msgstr "Sdružené  vyjádření dat"
+
+#: ../../Open-ILS/src/templates/conify/global/config/composite_attr_entry_definition.tt2:28
+msgid "Composite Data Tree"
+msgstr "Sdružený datový strom"
+
+#: ../../Open-ILS/src/templates/conify/global/config/coded_value_map.tt2:31
+msgid "Composite Definition"
+msgstr "Sdružená definice"
+
+#: ../../Open-ILS/src/templates/conify/global/cat/authority/control_set_authority_field.tt2:2
+msgid "Configure Authority Authority Fields"
+msgstr "Konfigurovat pole autoritní pole autority"
+
+#: ../../Open-ILS/src/templates/conify/global/cat/authority/browse_axis.tt2:2
+msgid "Configure Authority Browse Axes"
+msgstr "Konfigurovat osy pro procházení autorit"
+
+#: ../../Open-ILS/src/templates/conify/global/cat/authority/control_set_bib_field.tt2:2
+msgid "Configure Authority Control Set Bib Fields"
+msgstr "Konfigurovat bibliografická pole kontrolního setu autorit"
+
+#: ../../Open-ILS/src/templates/conify/global/cat/authority/control_set.tt2:2
+msgid "Configure Authority Control Sets"
+msgstr "Konfigurovat kontrolní set autorit"
+
+#: ../../Open-ILS/src/templates/conify/global/cat/authority/thesaurus.tt2:2
+msgid "Configure Authority Thesauri"
+msgstr "Konfigurovat autoritní tezaurus"
+
+#: ../../Open-ILS/src/templates/conify/global/cat/authority/browse_axis_authority_field_map.tt2:2
+msgid "Configure Browse Axis-Authority Field Maps"
+msgstr "Konfigurovat mapu polí pro procházení osy autorit"
+
+#: ../../Open-ILS/src/templates/conify/global/biblio/monograph_part.tt2:2
+msgid "Configure Monograph Parts"
+msgstr "Konfigurovat části monografií"
+
+#: ../../Open-ILS/src/templates/conify/global/acq/provider.tt2:83
+msgid "Contact Address"
+msgstr "Kontaktní adresa"
+
+#: ../../Open-ILS/src/templates/conify/global/acq/cancel_reason.tt2:16 ../../Open-ILS/src/templates/conify/global/acq/edi_account.tt2:20 ../../Open-ILS/src/templates/conify/global/acq/lineitem_alert.tt2:16 ../../Open-ILS/src/templates/conify/global/acq/provider.tt2:14 ../../Open-ILS/src/templates/conify/global/actor/address_alert.tt2:12 ../../Open-ILS/src/templates/conify/global/asset/copy_location_order.tt2:12 ../../Open-ILS/src/templates/conify/global/booking/resource.tt2:11 ../../Open-ILS/src/templates/conify/global/booking/resource_attr.tt2:11 ../../Open-ILS/src/templates/conify/global/booking/resource_attr_map.tt2:11 ../../Open-ILS/src/templates/conify/global/booking/resource_attr_value.tt2:11 ../../Open-ILS/src/templates/conify/global/booking/resource_type.tt2:11 ../../Open-ILS/src/templates/conify/global/config/acn_prefix.tt2:16 ../../Open-ILS/src/templates/conify/global/config/acn_suffix.tt2:16 ../../Open-ILS/src/templates/conify/global/config/billing_type.tt2:16 ../
 ../Open-ILS/src/templates/conify/global/permission/grp_penalty_threshold.tt2:13
+msgid "Context Org Unit"
+msgstr "Související organizační jednotka"
+
+#: ../../Open-ILS/src/templates/conify/global/cat/authority/control_set_bib_field.tt2:5
+msgid "Control Set Bib Fields"
+msgstr "Bibliografická pole kontrolní sady"
+
+#: ../../Open-ILS/src/templates/conify/global/cat/authority/control_set.tt2:5
+msgid "Control Sets"
+msgstr "Kontrolní sada"
+
+#: ../../Open-ILS/src/templates/conify/global/cat/authority/control_set_authority_field.tt2:27
+msgid "Controlled Bib Fields"
+msgstr "Kontrolovaná bib. pole"
+
+#: ../../Open-ILS/src/templates/conify/global/acq/distribution_formula.tt2:52 ../../Open-ILS/src/templates/conify/global/acq/provider.tt2:156 ../../Open-ILS/src/templates/conify/global/acq/provider.tt2:193
+msgid "Copy Location"
+msgstr "Umístění"
+
+#: ../../Open-ILS/src/templates/conify/global/asset/copy_location_group.tt2:2
+msgid "Copy Location Group"
+msgstr "Skupina umístění"
+
+#: ../../Open-ILS/src/templates/conify/global/asset/copy_location_group.tt2:54
+msgid "Copy Location Groups"
+msgstr "Skupiny umístění"
+
+#: ../../Open-ILS/src/templates/conify/global/asset/copy_location_order.tt2:2 ../../Open-ILS/src/templates/conify/global/asset/copy_location_order.tt2:7
+msgid "Copy Location Order"
+msgstr "Umístění exemplářů: pořadí"
+
+#: ../../Open-ILS/src/templates/conify/global/asset/copy_location_group.tt2:95
+msgid "Copy Locations"
+msgstr "Umístění"
+
+#: ../../Open-ILS/src/templates/conify/global/asset/copy_template.tt2:2 ../../Open-ILS/src/templates/conify/global/asset/copy_template.tt2:7
+msgid "Copy Templates"
+msgstr "Šablony exemplářů"
+
+#: ../../Open-ILS/src/templates/conify/global/actor/search_filter_group.tt2:89
+msgid "Create Date"
+msgstr "Datum vytvoření"
+
+#: ../../Open-ILS/src/templates/conify/global/config/best_hold_order.tt2:28
+msgid "Create New"
+msgstr "Vytvořit nový"
+
+#: ../../Open-ILS/src/templates/conify/global/config/z3950_source.tt2:26
+msgid "Credentials for "
+msgstr "Ověření pro "
+
+#: ../../Open-ILS/src/templates/conify/global/config/org_unit_setting_type.tt2:10 ../../Open-ILS/src/templates/conify/global/config/usr_setting_type.tt2:10
+msgid "Currency"
+msgstr "Měna"
+
+#: ../../Open-ILS/src/templates/conify/global/actor/org_unit_custom_tree.tt2:41
+msgid "Custom Unit Tree: "
+msgstr "Přizpůsobený strom organizačních jednotek "
+
+#: ../../Open-ILS/src/templates/conify/global/action_trigger/event_definition.tt2:9
+msgid "Daily"
+msgstr "Denně"
+
+#: ../../Open-ILS/src/templates/conify/global/config/org_unit_setting_type.tt2:12 ../../Open-ILS/src/templates/conify/global/config/usr_setting_type.tt2:12
+msgid "Date"
+msgstr "Datum"
+
+#: ../../Open-ILS/src/templates/conify/global/actor/org_unit_custom_tree.tt2:60
+msgid "Deactivate Tree"
+msgstr "Deaktivovat strom"
+
+#: ../../Open-ILS/src/templates/conify/global/asset/copy_location_group.tt2:126 ../../Open-ILS/src/templates/conify/global/config/composite_attr_entry_definition.tt2:45
+msgid "Delete"
+msgstr "Smazat"
+
+#: ../../Open-ILS/src/templates/conify/global/acq/cancel_reason.tt2:12 ../../Open-ILS/src/templates/conify/global/acq/claim_event_type.tt2:11 ../../Open-ILS/src/templates/conify/global/acq/claim_policy.tt2:10 ../../Open-ILS/src/templates/conify/global/acq/claim_policy_action.tt2:12 ../../Open-ILS/src/templates/conify/global/acq/claim_type.tt2:10 ../../Open-ILS/src/templates/conify/global/acq/distribution_formula.tt2:10 ../../Open-ILS/src/templates/conify/global/acq/edi_account.tt2:14 ../../Open-ILS/src/templates/conify/global/acq/exchange_rate.tt2:7 ../../Open-ILS/src/templates/conify/global/acq/fund_tag.tt2:12 ../../Open-ILS/src/templates/conify/global/acq/invoice_item_type.tt2:7 ../../Open-ILS/src/templates/conify/global/acq/invoice_payment_method.tt2:7 ../../Open-ILS/src/templates/conify/global/acq/lineitem_alert.tt2:12 ../../Open-ILS/src/templates/conify/global/acq/lineitem_marc_attr_def.tt2:12 ../../Open-ILS/src/templates/conify/global/acq/provider.tt2:10 ../../Open-ILS
 /src/templates/conify/global/acq/provider.tt2:107 ../../Open-ILS/src/templates/conify/global/acq/provider.tt2:134 ../../Open-ILS/src/templates/conify/global/acq/provider.tt2:46 ../../Open-ILS/src/templates/conify/global/acq/provider.tt2:67 ../../Open-ILS/src/templates/conify/global/acq/provider.tt2:86 ../../Open-ILS/src/templates/conify/global/action/survey.tt2:7 ../../Open-ILS/src/templates/conify/global/action_trigger/event_definition.tt2:25 ../../Open-ILS/src/templates/conify/global/action_trigger/event_definition.tt2:51 ../../Open-ILS/src/templates/conify/global/action_trigger/event_definition.tt2:73 ../../Open-ILS/src/templates/conify/global/action_trigger/event_definition.tt2:98 ../../Open-ILS/src/templates/conify/global/action_trigger/event_definition_data.tt2:13 ../../Open-ILS/src/templates/conify/global/action_trigger/event_definition_data.tt2:34 ../../Open-ILS/src/templates/conify/global/actor/address_alert.tt2:8 ../../Open-ILS/src/templates/conify/global/actor/org
 _unit_custom_tree.tt2:56 ../../Open-ILS/src/templates/conify/global/actor/search_filter_group.tt2:20 ../../Open-ILS/src/templates/conify/global/actor/search_filter_group.tt2:67 ../../Open-ILS/src/templates/conify/global/asset/copy_template.tt2:12 ../../Open-ILS/src/templates/conify/global/biblio/monograph_part.tt2:10 ../../Open-ILS/src/templates/conify/global/booking/resource.tt2:7 ../../Open-ILS/src/templates/conify/global/booking/resource_attr.tt2:7 ../../Open-ILS/src/templates/conify/global/booking/resource_attr_map.tt2:7 ../../Open-ILS/src/templates/conify/global/booking/resource_attr_value.tt2:7 ../../Open-ILS/src/templates/conify/global/booking/resource_type.tt2:7 ../../Open-ILS/src/templates/conify/global/cat/authority/browse_axis.tt2:8 ../../Open-ILS/src/templates/conify/global/cat/authority/browse_axis_authority_field_map.tt2:8 ../../Open-ILS/src/templates/conify/global/cat/authority/control_set.tt2:8 ../../Open-ILS/src/templates/conify/global/cat/authority/control_
 set_authority_field.tt2:8 ../../Open-ILS/src/templates/conify/global/cat/authority/control_set_bib_field.tt2:8 ../../Open-ILS/src/templates/conify/global/cat/authority/thesaurus.tt2:8 ../../Open-ILS/src/templates/conify/global/config/acn_prefix.tt2:12 ../../Open-ILS/src/templates/conify/global/config/acn_suffix.tt2:12 ../../Open-ILS/src/templates/conify/global/config/actor_sip_fields.tt2:8 ../../Open-ILS/src/templates/conify/global/config/asset_sip_fields.tt2:8 ../../Open-ILS/src/templates/conify/global/config/billing_type.tt2:12 ../../Open-ILS/src/templates/conify/global/config/circ_limit_group.tt2:7 ../../Open-ILS/src/templates/conify/global/config/circ_limit_set.tt2:8 ../../Open-ILS/src/templates/conify/global/config/circ_matrix_weights.tt2:8 ../../Open-ILS/src/templates/conify/global/config/circ_modifier.tt2:24 ../../Open-ILS/src/templates/conify/global/config/coded_value_map.tt2:8 ../../Open-ILS/src/templates/conify/global/config/hold_matrix_weights.tt2:8 ../../Open-ILS
 /src/templates/conify/global/config/metabib_class_ts_map.tt2:8 ../../Open-ILS/src/templates/conify/global/config/metabib_field.tt2:8 ../../Open-ILS/src/templates/conify/global/config/metabib_field_ts_map.tt2:8 ../../Open-ILS/src/templates/conify/global/config/org_unit_proximity_adjustment.tt2:10 ../../Open-ILS/src/templates/conify/global/config/org_unit_setting_type.tt2:24 ../../Open-ILS/src/templates/conify/global/config/record_attr_definition.tt2:9 ../../Open-ILS/src/templates/conify/global/config/remote_account.tt2:7 ../../Open-ILS/src/templates/conify/global/config/rule_age_hold_protect.tt2:8 ../../Open-ILS/src/templates/conify/global/config/rule_circ_duration.tt2:8 ../../Open-ILS/src/templates/conify/global/config/rule_max_fine.tt2:8 ../../Open-ILS/src/templates/conify/global/config/rule_recurring_fine.tt2:8 ../../Open-ILS/src/templates/conify/global/config/sms_carrier.tt2:12 ../../Open-ILS/src/templates/conify/global/config/standing_penalty.tt2:12 ../../Open-ILS/src/te
 mplates/conify/global/config/usr_activity_type.tt2:12 ../../Open-ILS/src/templates/conify/global/config/usr_setting_type.tt2:24 ../../Open-ILS/src/templates/conify/global/config/weight_assoc.tt2:8 ../../Open-ILS/src/templates/conify/global/config/z3950_index_field_map.tt2:17 ../../Open-ILS/src/templates/conify/global/config/z3950_source.tt2:14 ../../Open-ILS/src/templates/conify/global/config/z3950_source.tt2:82 ../../Open-ILS/src/templates/conify/global/permission/grp_penalty_threshold.tt2:8 ../../Open-ILS/src/templates/conify/global/vandelay/import_bib_trash_group.tt2:23 ../../Open-ILS/src/templates/conify/global/vandelay/import_bib_trash_group.tt2:70 ../../Open-ILS/src/templates/conify/global/vandelay/match_set.tt2:10
+msgid "Delete Selected"
+msgstr "Smazat vybrané"
+
+#: ../../Open-ILS/src/templates/conify/global/vandelay/match_set_tree.tt2:131
+msgid "Delete Selected Metrics"
+msgstr "Smazat vybranou metriku"
+
+#: ../../Open-ILS/src/templates/conify/global/vandelay/match_set_tree.tt2:108
+msgid "Delete Selected Node"
+msgstr "Smazat vybraný uzel"
+
+#: ../../Open-ILS/src/templates/conify/global/config/composite_attr_entry_definition.tt2:32
+msgid "Delete Tree"
+msgstr "Smazat strom"
+
+#: ../../Open-ILS/src/templates/conify/global/config/hard_due_date_values.tt2:50
+msgid "Deleted Selected"
+msgstr "Smazat vybrané"
+
+#: ../../Open-ILS/src/templates/conify/global/action/survey.tt2:19 ../../Open-ILS/src/templates/conify/global/action/survey.tt2:40
+msgid "Description"
+msgstr "Popis"
+
+#: ../../Open-ILS/src/templates/conify/global/config/circ_modifier.tt2:13 ../../Open-ILS/src/templates/conify/global/config/circ_modifier.tt2:69
+msgid "Diskette"
+msgstr "Disketa"
+
+#: ../../Open-ILS/src/templates/conify/global/action/survey.tt2:26 ../../Open-ILS/src/templates/conify/global/action/survey.tt2:68
+msgid "Display in User Summary?"
+msgstr "Zobrazit v přehledu údajů o čtenáři?"
+
+#: ../../Open-ILS/src/templates/conify/global/acq/distribution_formula.tt2:2 ../../Open-ILS/src/templates/conify/global/acq/distribution_formula.tt2:7
+msgid "Distribution Formulas"
+msgstr "Distribuční vzorce"
+
+#: ../../Open-ILS/src/templates/conify/global/acq/edi_account.tt2:11 ../../Open-ILS/src/templates/conify/global/acq/edi_account.tt2:2
+msgid "EDI Accounts"
+msgstr "EDI účty"
+
+#: ../../Open-ILS/src/templates/conify/global/asset/copy_location_group.tt2:125 ../../Open-ILS/src/templates/conify/global/config/best_hold_order.tt2:97
+msgid "Edit"
+msgstr "Upravit"
+
+#: ../../Open-ILS/src/templates/conify/global/config/best_hold_order.tt2:30
+msgid "Edit Existing"
+msgstr "Upravit existující"
+
+#: ../../Open-ILS/src/templates/conify/global/action/survey.tt2:22 ../../Open-ILS/src/templates/conify/global/action/survey.tt2:52
+msgid "End Date"
+msgstr "Datum ukončení"
+
+#: ../../Open-ILS/src/templates/conify/global/action/survey.tt2:8
+msgid "End Selected Surveys"
+msgstr "Ukončit zvolený průzkum"
+
+#: ../../Open-ILS/src/templates/conify/global/acq/provider.tt2:150
+msgid "Estimated Price"
+msgstr "Odhadované cena"
+
+#: ../../Open-ILS/src/templates/conify/global/action_trigger/event_definition_data.tt2:51
+msgid "Event Definition Tests"
+msgstr "Testy definic událostí"
+
+#: ../../Open-ILS/src/templates/conify/global/action_trigger/event_definition.tt2:19 ../../Open-ILS/src/templates/conify/global/action_trigger/event_definition.tt2:2
+msgid "Event Definitions"
+msgstr "Definice událostí"
+
+#: ../../Open-ILS/src/templates/conify/global/action_trigger/event_definition_data.tt2:8
+msgid "Event Environment"
+msgstr "Prostředí události"
+
+#: ../../Open-ILS/src/templates/conify/global/action_trigger/event_definition_data.tt2:29
+msgid "Event Parameters"
+msgstr "Parametry události"
+
+#: ../../Open-ILS/src/templates/conify/global/acq/exchange_rate.tt2:2 ../../Open-ILS/src/templates/conify/global/acq/exchange_rate.tt2:4
+msgid "Exchange Rates"
+msgstr "Směnné kurzy"
+
+#: ../../Open-ILS/src/templates/conify/global/config/floating_groups.tt2:32
+msgid "Exclude"
+msgstr "Vyloučit"
+
+#: ../../Open-ILS/src/templates/conify/global/actor/org_unit_custom_tree.tt2:33 ../../Open-ILS/src/templates/conify/global/actor/org_unit_custom_tree.tt2:52
+msgid "Expand"
+msgstr "Rozbalit"
+
+#: ../../Open-ILS/src/templates/conify/global/config/circ_matrix_matchpoint.tt2:36
+msgid "Fallthrough"
+msgstr "Nezdařené"
+
+#: ../../Open-ILS/src/templates/conify/global/config/idl_field_doc.tt2:2 ../../Open-ILS/src/templates/conify/global/config/idl_field_doc.tt2:6
+msgid "Field Documentation"
+msgstr "Dokumentace polí"
+
+#: ../../Open-ILS/src/templates/conify/global/config/org_unit_setting_type.tt2:9 ../../Open-ILS/src/templates/conify/global/config/usr_setting_type.tt2:9
+msgid "Float"
+msgstr "Pohyblivý"
+
+#: ../../Open-ILS/src/templates/conify/global/config/floating_groups.tt2:1 ../../Open-ILS/src/templates/conify/global/config/floating_groups.tt2:5
+msgid "Floating Groups Configuration"
+msgstr "Konfigurace pohyblivých skupin"
+
+#: ../../Open-ILS/src/templates/conify/global/actor/org_unit_custom_tree.tt2:31
+msgid "Full Org Unit Tree"
+msgstr "Plný strom organizačních jednotek"
+
+#: ../../Open-ILS/src/templates/conify/global/acq/distribution_formula.tt2:53
+msgid "Fund"
+msgstr "Finanční fond"
+
+#: ../../Open-ILS/src/templates/conify/global/acq/provider.tt2:153 ../../Open-ILS/src/templates/conify/global/acq/provider.tt2:189
+msgid "Fund Code"
+msgstr "Kód finančního fondu"
+
+#: ../../Open-ILS/src/templates/conify/global/acq/fund_tag.tt2:2 ../../Open-ILS/src/templates/conify/global/acq/fund_tag.tt2:7
+msgid "Fund Tags"
+msgstr "Značka finančního fondu"
+
+#: ../../Open-ILS/src/templates/conify/global/config/global_flag.tt2:2 ../../Open-ILS/src/templates/conify/global/config/global_flag.tt2:5
+msgid "Global Flags"
+msgstr "Globální indikátoy"
+
+#: ../../Open-ILS/src/templates/conify/global/action_trigger/event_definition_data.tt2:67
+msgid "Go"
+msgstr "Potvrdit"
+
+#: ../../Open-ILS/src/templates/conify/global/asset/copy_location_group.tt2:75
+msgid "Group Entries"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/permission/grp_penalty_threshold.tt2:2
+msgid "Group Penalty Thresholds"
+msgstr "Úroveň pro aktivaci sankcí a blokací"
+
+#: ../../Open-ILS/src/templates/conify/global/config/hard_due_date_values.tt2:2 ../../Open-ILS/src/templates/conify/global/config/hard_due_date_values.tt2:43
+msgid "Hard Due Date Values"
+msgstr "Hodnoty pevných dat vrácení"
+
+#: ../../Open-ILS/src/templates/conify/global/config/hard_due_date.tt2:2
+msgid "Hard Due Dates"
+msgstr "Pevná data vrácení"
+
+#: ../../Open-ILS/src/templates/conify/global/asset/copy_template.tt2:42
+msgid "High"
+msgstr "Vysoká"
+
+#: ../../Open-ILS/src/templates/conify/global/config/hold_matrix_weights.tt2:2 ../../Open-ILS/src/templates/conify/global/config/hold_matrix_weights.tt2:5
+msgid "Hold Matrix Weights"
+msgstr "Váhy matic pro rezervace"
+
+#: ../../Open-ILS/src/templates/conify/global/config/hold_matrix_matchpoint.tt2:1 ../../Open-ILS/src/templates/conify/global/config/hold_matrix_matchpoint.tt2:4
+msgid "Hold Policy Configuration"
+msgstr "Nastavení  rezervačních pravidel"
+
+#: ../../Open-ILS/src/templates/conify/global/acq/provider.tt2:129 ../../Open-ILS/src/templates/conify/global/acq/provider.tt2:131
+msgid "Holding Subfield"
+msgstr "Podpole pro exemplářové údaje"
+
+#: ../../Open-ILS/src/templates/conify/global/action_trigger/event_definition.tt2:46
+msgid "Hooks"
+msgstr "Háčky"
+
+#: ../../Open-ILS/src/templates/conify/global/acq/edi_account.tt2:44
+msgid "Host"
+msgstr "Hostitelský server"
+
+#: ../../Open-ILS/src/templates/conify/global/action_trigger/event_definition.tt2:8
+msgid "Hourly"
+msgstr "Každou hodinu"
+
+#: ../../Open-ILS/src/templates/conify/global/actor/search_filter_group.tt2:44
+msgid "ID"
+msgstr "ID"
+
+#: ../../Open-ILS/src/templates/conify/global/vandelay/import_bib_trash_group.tt2:62
+msgid "Import Bib Trash Fields"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/vandelay/import_bib_trash_group.tt2:2
+msgid "Import Bib Trash Groups"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/org_unit_setting_type.tt2:8 ../../Open-ILS/src/templates/conify/global/config/usr_setting_type.tt2:8
+msgid "Integer"
+msgstr "Celé číslo"
+
+#: ../../Open-ILS/src/templates/conify/global/config/best_hold_order.tt2:22
+msgid "Interface loading"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/org_unit_setting_type.tt2:11 ../../Open-ILS/src/templates/conify/global/config/usr_setting_type.tt2:11
+msgid "Interval"
+msgstr "Interval"
+
+#: ../../Open-ILS/src/templates/conify/global/acq/invoice_item_type.tt2:2 ../../Open-ILS/src/templates/conify/global/acq/invoice_item_type.tt2:4
+msgid "Invoice Item Types"
+msgstr "Typ položky na faktuře"
+
+#: ../../Open-ILS/src/templates/conify/global/acq/invoice_payment_method.tt2:2 ../../Open-ILS/src/templates/conify/global/acq/invoice_payment_method.tt2:4
+msgid "Invoice Payment Methods"
+msgstr "Platební metoda pro fakturu"
+
+#: ../../Open-ILS/src/templates/conify/global/acq/provider.tt2:163 ../../Open-ILS/src/templates/conify/global/acq/provider.tt2:164
+msgid "Invoices"
+msgstr "Faktury"
+
+#: ../../Open-ILS/src/templates/conify/global/action/survey.tt2:25 ../../Open-ILS/src/templates/conify/global/action/survey.tt2:64
+msgid "Is Required?"
+msgstr "Povinné?"
+
+#: ../../Open-ILS/src/templates/conify/global/acq/distribution_formula.tt2:56
+msgid "Item Count"
+msgstr "Počet exemplářů"
+
+#: ../../Open-ILS/src/templates/conify/global/actor/search_filter_group.tt2:40 ../../Open-ILS/src/templates/conify/global/actor/search_filter_group.tt2:51 ../../Open-ILS/src/templates/conify/global/actor/search_filter_group.tt2:88
+msgid "Label"
+msgstr "Označení"
+
+#: ../../Open-ILS/src/templates/conify/global/acq/lineitem_alert.tt2:9
+msgid "Line Item Alert Text"
+msgstr "Text upozornění k položce"
+
+#: ../../Open-ILS/src/templates/conify/global/acq/lineitem_alert.tt2:2
+msgid "Line Item Alerts"
+msgstr "Upozornění k položce"
+
+#: ../../Open-ILS/src/templates/conify/global/acq/lineitem_marc_attr_def.tt2:9
+msgid "Line Item MARC Attribute Definition Editor"
+msgstr "Editor definic MARC atributů položek"
+
+#: ../../Open-ILS/src/templates/conify/global/acq/lineitem_marc_attr_def.tt2:2
+msgid "Line Item MARC Attributes"
+msgstr "MARC atributy položek"
+
+#: ../../Open-ILS/src/templates/conify/global/config/org_unit_setting_type.tt2:15 ../../Open-ILS/src/templates/conify/global/config/usr_setting_type.tt2:15
+msgid "Link"
+msgstr "Připojit"
+
+#: ../../Open-ILS/src/templates/conify/global/config/circ_limit_set.tt2:28
+msgid "Linked Circ Modifiers"
+msgstr "Připojené modifikátory výpůjček"
+
+#: ../../Open-ILS/src/templates/conify/global/config/circ_limit_set.tt2:49
+msgid "Linked Copy Locations"
+msgstr "Připojená umístění"
+
+#: ../../Open-ILS/src/templates/conify/global/config/floating_groups.tt2:25
+msgid "Linked Group Members"
+msgstr "Členové připojené skupiny"
+
+#: ../../Open-ILS/src/templates/conify/global/config/circ_limit_set.tt2:70
+msgid "Linked Limit Groups"
+msgstr "Skupiny připojených limitů"
+
+#: ../../Open-ILS/src/templates/conify/global/config/circ_matrix_matchpoint.tt2:31
+msgid "Linked Limit Sets"
+msgstr "Připojené sady limitů"
+
+#: ../../Open-ILS/src/templates/conify/global/acq/provider.tt2:190
+msgid "Local Note"
+msgstr "Místní poznámka"
+
+#: ../../Open-ILS/src/templates/conify/global/asset/copy_location_group.tt2:66
+msgid "Location Groups"
+msgstr "Skupiny umístění"
+
+#: ../../Open-ILS/src/templates/conify/global/asset/copy_template.tt2:48
+msgid "Long"
+msgstr "Dlouhá"
+
+#: ../../Open-ILS/src/templates/conify/global/asset/copy_template.tt2:40
+msgid "Low"
+msgstr "Nízká"
+
+#: ../../Open-ILS/src/templates/conify/global/config/record_attr_definition.tt2:2
+msgid "MARC Record Attribute Definitions"
+msgstr "Definice atributů záznamu MARC"
+
+#: ../../Open-ILS/src/templates/conify/global/config/metabib_class_ts_map.tt2:2
+msgid "MARC Search Class FTS Config Maps"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/metabib_class.tt2:2
+msgid "MARC Search Classes"
+msgstr "Třídy vyhledávání MARC"
+
+#: ../../Open-ILS/src/templates/conify/global/config/metabib_field.tt2:2
+msgid "MARC Search and Facet Fields"
+msgstr "Pole pro vyhledávání MARC a fazety"
+
+#: ../../Open-ILS/src/templates/conify/global/config/metabib_field_ts_map.tt2:2
+msgid "MARC Search and Facet Fields FTS Configs"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/vandelay/match_set_tree.tt2:128 ../../Open-ILS/src/templates/conify/global/vandelay/match_set_tree.tt2:89
+msgid "MARC Tag and Subfield"
+msgstr "Pole a podpole MARC"
+
+#: ../../Open-ILS/src/templates/conify/global/config/circ_modifier.tt2:59 ../../Open-ILS/src/templates/conify/global/config/circ_modifier.tt2:8
+msgid "Magazine"
+msgstr "Časopis"
+
+#: ../../Open-ILS/src/templates/conify/global/config/coded_value_map.tt2:53 ../../Open-ILS/src/templates/conify/global/config/record_attr_definition.tt2:43
+msgid "Manage"
+msgstr "Spravovat"
+
+#: ../../Open-ILS/src/templates/conify/global/config/z3950_index_field_map.tt2:52
+msgid ""
+"Map Metabib Fields OR Bib Record Attributes to specific Z39.50 \n"
+"Attributes OR generic Z39.50 Attribute types (by name)."
+msgstr ""
+"Mapovat metabib. pole nebo atributy bibliografickéhozáznamu ke specifickým  "
+"\n"
+"atributům Z39.50 nebo generickým typům atributů Z39.50 (podle názvů)."
+
+#: ../../Open-ILS/src/templates/conify/global/vandelay/match_set_tree.tt2:64
+msgid "Match Score"
+msgstr "Počet shod"
+
+#: ../../Open-ILS/src/templates/conify/global/vandelay/match_set_tree.tt2:34
+msgid "Match set name:"
+msgstr "Název sady shody"
+
+#: ../../Open-ILS/src/templates/conify/global/config/weight_assoc.tt2:2 ../../Open-ILS/src/templates/conify/global/config/weight_assoc.tt2:5
+msgid "Matrix Weight Associations"
+msgstr "Asociace váhy matic"
+
+#: ../../Open-ILS/src/templates/conify/global/config/floating_groups.tt2:31
+msgid "Max Depth"
+msgstr "Maximální hloubka"
+
+#: ../../Open-ILS/src/templates/conify/global/biblio/monograph_part.tt2:8
+msgid "Merge Selected"
+msgstr "Sloučit vybrané"
+
+#: ../../Open-ILS/src/templates/conify/global/config/metabib_class.tt2:5
+msgid "Metabib Class"
+msgstr "Metabibliografická třída"
+
+#: ../../Open-ILS/src/templates/conify/global/config/metabib_class_ts_map.tt2:5
+msgid "Metabib Class FTS Config Maps"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/metabib_field.tt2:5 ../../Open-ILS/src/templates/conify/global/config/z3950_index_field_map.tt2:40
+msgid "Metabib Field"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/metabib_field_ts_map.tt2:5
+msgid "Metabib Field FTS Configs"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/biblio/monograph_part.tt2:6
+msgid "Monograph Parts"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/action_trigger/event_definition.tt2:11
+msgid "Monthly"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/best_hold_order.tt2:59
+msgid "Move Down"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/best_hold_order.tt2:53
+msgid "Move Up"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/action/survey.tt2:18 ../../Open-ILS/src/templates/conify/global/action/survey.tt2:36 ../../Open-ILS/src/templates/conify/global/config/circ_limit_set.tt2:32 ../../Open-ILS/src/templates/conify/global/config/circ_limit_set.tt2:53 ../../Open-ILS/src/templates/conify/global/config/circ_limit_set.tt2:74 ../../Open-ILS/src/templates/conify/global/config/circ_matrix_matchpoint.tt2:35
+msgid "Name"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/best_hold_order.tt2:39
+msgid "Name:"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/vandelay/match_set_tree.tt2:74
+msgid "Negate?"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/action_trigger/event_definition.tt2:23 ../../Open-ILS/src/templates/conify/global/action_trigger/event_definition.tt2:50 ../../Open-ILS/src/templates/conify/global/action_trigger/event_definition.tt2:72 ../../Open-ILS/src/templates/conify/global/action_trigger/event_definition.tt2:97 ../../Open-ILS/src/templates/conify/global/action_trigger/event_definition_data.tt2:12 ../../Open-ILS/src/templates/conify/global/action_trigger/event_definition_data.tt2:33 ../../Open-ILS/src/templates/conify/global/actor/search_filter_group.tt2:19 ../../Open-ILS/src/templates/conify/global/actor/search_filter_group.tt2:66 ../../Open-ILS/src/templates/conify/global/asset/copy_location_group.tt2:67 ../../Open-ILS/src/templates/conify/global/config/barcode_completion.tt2:6 ../../Open-ILS/src/templates/conify/global/config/circ_limit_set.tt2:7 ../../Open-ILS/src/templates/conify/global/config/circ_matrix_matchpoint.tt2:6 ../../Open-ILS/src/templates/co
 nify/global/config/floating_groups.tt2:6 ../../Open-ILS/src/templates/conify/global/config/hold_matrix_matchpoint.tt2:5 ../../Open-ILS/src/templates/conify/global/config/idl_field_doc.tt2:10 ../../Open-ILS/src/templates/conify/global/config/remote_account.tt2:6 ../../Open-ILS/src/templates/conify/global/config/z3950_index_field_map.tt2:13 ../../Open-ILS/src/templates/conify/global/config/z3950_source.tt2:13
+msgid "New"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/acq/edi_account.tt2:13
+msgid "New Account"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/usr_activity_type.tt2:11
+msgid "New Activity Type"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/actor/address_alert.tt2:7
+msgid "New Address Alert"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/rule_age_hold_protect.tt2:7
+msgid "New Age Hold Protect Rule"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/record_attr_definition.tt2:8
+msgid "New Attr. Definition"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/acq/lineitem_marc_attr_def.tt2:11
+msgid "New Attribute"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/acq/provider.tt2:106
+msgid "New Attribute Definition"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/cat/authority/control_set_authority_field.tt2:7
+msgid "New Authority Field"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/billing_type.tt2:11
+msgid "New Billing Type"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/cat/authority/browse_axis.tt2:7
+msgid "New Browse Axis"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/cat/authority/browse_axis_authority_field_map.tt2:7
+msgid "New Browse Axis-Authority Field Map"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/acq/cancel_reason.tt2:11
+msgid "New Cancel Reason"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/sms_carrier.tt2:11
+msgid "New Carrier"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/circ_modifier.tt2:23
+msgid "New Circ Modifier"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/acq/claim_event_type.tt2:9
+msgid "New Claim Event Type"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/acq/claim_policy.tt2:9
+msgid "New Claim Policy"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/acq/claim_policy_action.tt2:10
+msgid "New Claim Policy Action"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/acq/claim_type.tt2:9
+msgid "New Claim Type"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/acq/provider.tt2:66
+msgid "New Contact"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/acq/provider.tt2:85
+msgid "New Contact Address"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/cat/authority/control_set.tt2:7
+msgid "New Control Set"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/cat/authority/control_set_bib_field.tt2:7
+msgid "New Control Set Bib Field"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/asset/copy_template.tt2:10
+msgid "New Copy Template"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/rule_circ_duration.tt2:7
+msgid "New Duration Rule"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/acq/distribution_formula.tt2:42 ../../Open-ILS/src/templates/conify/global/acq/distribution_formula.tt2:79
+msgid "New Entry"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/acq/exchange_rate.tt2:6
+msgid "New Exchange Rate"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/metabib_field_ts_map.tt2:7
+msgid "New FTS Config"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/metabib_class_ts_map.tt2:7
+msgid "New FTS Map"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/metabib_field.tt2:7 ../../Open-ILS/src/templates/conify/global/vandelay/import_bib_trash_group.tt2:20
+msgid "New Field"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/vandelay/import_bib_trash_group.tt2:66
+msgid "New Field Group"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/acq/distribution_formula.tt2:9
+msgid "New Formula"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/acq/fund_tag.tt2:10
+msgid "New Fund Tag"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/hard_due_date_values.tt2:47
+msgid "New Hard Due Date Value"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/acq/provider.tt2:133
+msgid "New Holding Subfield"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/acq/invoice_item_type.tt2:6
+msgid "New Invoice Item Type"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/acq/invoice_payment_method.tt2:6
+msgid "New Invoice Payment Method"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/circ_limit_group.tt2:6
+msgid "New Limit Group"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/acq/lineitem_alert.tt2:11
+msgid "New Line Item Alert Text"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/coded_value_map.tt2:7
+msgid "New Map"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/vandelay/match_set.tt2:8
+msgid "New Match Set"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/rule_max_fine.tt2:7
+msgid "New Max Fine Rule"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/biblio/monograph_part.tt2:9
+msgid "New Monograph Part"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/org_unit_proximity_adjustment.tt2:8
+msgid "New OU Proximity Adjustment"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/org_unit_setting_type.tt2:23
+msgid "New Org Setting Type"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/permission/grp_penalty_threshold.tt2:7
+msgid "New Penalty Threshold"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/standing_penalty.tt2:11
+msgid "New Penalty Type"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/acn_prefix.tt2:11
+msgid "New Prefix"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/acq/provider.tt2:9
+msgid "New Provider"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/acq/provider.tt2:45
+msgid "New Provider Address"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/rule_recurring_fine.tt2:7
+msgid "New Recurring Fine Rule"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/booking/resource.tt2:6
+msgid "New Resource"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/booking/resource_attr.tt2:6
+msgid "New Resource Attribute"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/booking/resource_attr_map.tt2:6
+msgid "New Resource Attribute Map"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/booking/resource_attr_value.tt2:6
+msgid "New Resource Attribute Value"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/booking/resource_type.tt2:6
+msgid "New Resource Type"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/actor_sip_fields.tt2:7 ../../Open-ILS/src/templates/conify/global/config/asset_sip_fields.tt2:7
+msgid "New Sip Field"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/acn_suffix.tt2:11
+msgid "New Suffix"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/action/survey.tt2:32
+msgid "New Survey"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/cat/authority/thesaurus.tt2:7
+msgid "New Thesaurus"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/composite_attr_entry_definition.tt2:30
+msgid "New Tree"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/usr_setting_type.tt2:23
+msgid "New User Setting Type"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/weight_assoc.tt2:7
+msgid "New Weight Association"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/circ_matrix_weights.tt2:7 ../../Open-ILS/src/templates/conify/global/config/hold_matrix_weights.tt2:7
+msgid "New Weight Set"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/z3950_source.tt2:81
+msgid "New Z39.50 Server"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/action_trigger/event_definition_data.tt2:57
+msgid "No tests for this type of event definition hook"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/asset/copy_template.tt2:41 ../../Open-ILS/src/templates/conify/global/asset/copy_template.tt2:47
+msgid "Normal"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/vandelay/match_set_tree.tt2:90
+msgid "Normalized Authority Heading"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/asset/copy_location_group.tt2:124
+msgid "Not Visible"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/acq/provider.tt2:155
+msgid "Note"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/actor/org_unit_custom_tree.tt2:46
+msgid "OPAC"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/action/survey.tt2:23 ../../Open-ILS/src/templates/conify/global/action/survey.tt2:56
+msgid "OPAC Survey?"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/org_unit_setting_type.tt2:13 ../../Open-ILS/src/templates/conify/global/config/usr_setting_type.tt2:13
+msgid "Object"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/acq/invoice_item_type.tt2:38
+msgid "Only one of \"prorate\" and \"blanket\" may be selected"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/best_hold_order.tt2:44
+msgid "Order:"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/floating_groups.tt2:29
+msgid "Org Unit"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/actor/org_unit_custom_tree.tt2:2 ../../Open-ILS/src/templates/conify/global/actor/org_unit_custom_tree.tt2:22
+msgid "Org Unit Custom Tree"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/org_unit_proximity_adjustment.tt2:2
+msgid "Org Unit Proximity Adjustments"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/org_unit_setting_type.tt2:2 ../../Open-ILS/src/templates/conify/global/config/org_unit_setting_type.tt2:21
+msgid "Org Unit Setting Types"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/circ_modifier.tt2:55 ../../Open-ILS/src/templates/conify/global/config/circ_modifier.tt2:6
+msgid "Other"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/actor/search_filter_group.tt2:87
+msgid "Owner"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/acq/distribution_formula.tt2:51 ../../Open-ILS/src/templates/conify/global/acq/provider.tt2:151 ../../Open-ILS/src/templates/conify/global/acq/provider.tt2:186 ../../Open-ILS/src/templates/conify/global/action/survey.tt2:20 ../../Open-ILS/src/templates/conify/global/action/survey.tt2:44
+msgid "Owning Library"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/vandelay/match_set_tree.tt2:38
+msgid "Owning Library:"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/acq/cancel_reason.tt2:9
+msgid "PO / Item / Request Cancellation Reasons"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/acq/edi_account.tt2:44 ../../Open-ILS/src/templates/conify/global/config/z3950_source.tt2:34
+msgid "Password"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/permission/grp_penalty_threshold.tt2:5
+msgid "Penalty Threshold"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/action/survey.tt2:24 ../../Open-ILS/src/templates/conify/global/action/survey.tt2:60
+msgid "Poll Style?"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/actor/search_filter_group.tt2:53
+msgid "Position"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/acq/provider.tt2:191
+msgid "Price"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/acq/provider.tt2:7
+msgid "Provider"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/acq/provider.tt2:41 ../../Open-ILS/src/templates/conify/global/acq/provider.tt2:43
+msgid "Provider Address"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/acq/provider.tt2:62 ../../Open-ILS/src/templates/conify/global/acq/provider.tt2:64
+msgid "Provider Contact"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/acq/provider.tt2:2
+msgid "Providers"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/vandelay/match_set_tree.tt2:121
+msgid "Quality Metrics for this Match Set"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/acq/provider.tt2:149 ../../Open-ILS/src/templates/conify/global/acq/provider.tt2:187
+msgid "Quantity"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/actor/search_filter_group.tt2:52
+msgid "Query"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/actor/search_filter_group.tt2:41
+msgid "Query Text"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/action_trigger/event_definition.tt2:68
+msgid "Reactors"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/composite_attr_entry_definition.tt2:75 ../../Open-ILS/src/templates/conify/global/config/z3950_index_field_map.tt2:42 ../../Open-ILS/src/templates/conify/global/vandelay/match_set_tree.tt2:125 ../../Open-ILS/src/templates/conify/global/vandelay/match_set_tree.tt2:88
+msgid "Record Attribute"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/record_attr_definition.tt2:3 ../../Open-ILS/src/templates/conify/global/config/record_attr_definition.tt2:6
+msgid "Record Attribute Definitions"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/coded_value_map.tt2:14
+msgid "Record Attribute Type: "
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/composite_attr_entry_definition.tt2:16
+msgid "Record Attribute: "
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/rule_recurring_fine.tt2:2 ../../Open-ILS/src/templates/conify/global/config/rule_recurring_fine.tt2:5
+msgid "Recurring Fine Rules"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/remote_account.tt2:2
+msgid "Remote Accounts"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/circ_limit_set.tt2:33 ../../Open-ILS/src/templates/conify/global/config/circ_limit_set.tt2:39 ../../Open-ILS/src/templates/conify/global/config/circ_limit_set.tt2:54 ../../Open-ILS/src/templates/conify/global/config/circ_limit_set.tt2:60 ../../Open-ILS/src/templates/conify/global/config/circ_limit_set.tt2:76 ../../Open-ILS/src/templates/conify/global/config/circ_limit_set.tt2:83 ../../Open-ILS/src/templates/conify/global/config/circ_matrix_matchpoint.tt2:38 ../../Open-ILS/src/templates/conify/global/config/circ_matrix_matchpoint.tt2:46 ../../Open-ILS/src/templates/conify/global/config/floating_groups.tt2:33 ../../Open-ILS/src/templates/conify/global/config/floating_groups.tt2:42
+msgid "Remove"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/asset/copy_location_group.tt2:76
+msgid "Remove →"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/booking/resource_attr_map.tt2:2 ../../Open-ILS/src/templates/conify/global/booking/resource_attr_map.tt2:4
+msgid "Resource Attribute Maps"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/booking/resource_attr_value.tt2:2 ../../Open-ILS/src/templates/conify/global/booking/resource_attr_value.tt2:4
+msgid "Resource Attribute Values"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/booking/resource_attr.tt2:2 ../../Open-ILS/src/templates/conify/global/booking/resource_attr.tt2:4
+msgid "Resource Attributes"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/booking/resource_type.tt2:2 ../../Open-ILS/src/templates/conify/global/booking/resource_type.tt2:4
+msgid "Resource Types"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/booking/resource.tt2:2 ../../Open-ILS/src/templates/conify/global/booking/resource.tt2:4
+msgid "Resources"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/actor/search_filter_group.tt2:24
+msgid "Return to Filter Groups"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/vandelay/import_bib_trash_group.tt2:30
+msgid "Return to Groups"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/z3950_source.tt2:20
+msgid "Return to Sources"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/sms_carrier.tt2:2 ../../Open-ILS/src/templates/conify/global/config/sms_carrier.tt2:9
+msgid "SMS Carriers"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/actor/search_filter_group.tt2:55
+msgid "Save"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/action/survey.tt2:73 ../../Open-ILS/src/templates/conify/global/config/best_hold_order.tt2:78 ../../Open-ILS/src/templates/conify/global/config/composite_attr_entry_definition.tt2:34
+msgid "Save Changes"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/vandelay/match_set_tree.tt2:115
+msgid "Save Changes To Expression"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/actor/search_filter_group.tt2:1 ../../Open-ILS/src/templates/conify/global/actor/search_filter_group.tt2:17 ../../Open-ILS/src/templates/conify/global/actor/search_filter_group.tt2:64
+msgid "Search Filter Group"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/composite_attr_entry_definition.tt2:79
+msgid "Select Attribute Type: "
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/composite_attr_entry_definition.tt2:83
+msgid "Select Value: "
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/z3950_source.tt2:71
+msgid "Select a source to clone"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/asset/copy_template.tt2:46
+msgid "Short"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/org_unit_proximity_adjustment.tt2:14
+msgid "Show adjustments involving this branch or deeper:"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/acq/claim_event_type.tt2:15
+msgid "Show claim event types available to"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/acq/claim_policy.tt2:14
+msgid "Show claim policies available to"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/acq/claim_type.tt2:14
+msgid "Show claim types available to"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/vandelay/match_set.tt2:14
+msgid "Show sets owned at or below:"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/acq/fund_tag.tt2:16
+msgid "Show tags available to"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/asset/copy_template.tt2:16
+msgid "Show templates available at or above"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/cat/authority/control_set_authority_field.tt2:12
+msgid "Showing only authority fields linked to control set:"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/cat/authority/browse_axis_authority_field_map.tt2:12
+msgid ""
+"Showing only browse axis-authority field maps linked to authority field:"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/cat/authority/control_set_bib_field.tt2:12
+msgid "Showing only control set bib fields linked to authority field:"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/hard_due_date_values.tt2:54
+msgid "Showing only hard due date values related to hard due date object"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/cat/authority/thesaurus.tt2:12
+msgid "Showing only thesauri linked to control set:"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/actor/search_filter_group.tt2:42
+msgid "Sort Position"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/standing_penalty.tt2:5 ../../Open-ILS/src/templates/conify/global/config/standing_penalty.tt2:9
+msgid "Standing Penalty Types"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/action/survey.tt2:48
+msgid "Start Date"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/floating_groups.tt2:30
+msgid "Stop Depth"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/org_unit_setting_type.tt2:6 ../../Open-ILS/src/templates/conify/global/config/usr_setting_type.tt2:6
+msgid "String"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/acq/lineitem_marc_attr_def.tt2:25
+msgid "Subfield"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/composite_attr_entry_definition.tt2:90
+msgid "Submit"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/action/survey.tt2:17
+msgid "Survey ID"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/action/survey.tt2:4
+msgid "Survey List"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/action/survey.tt2:21
+msgid "Survey Start Date"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/acq/lineitem_marc_attr_def.tt2:24
+msgid "Tag"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/action_trigger/event_definition_data.tt2:49
+msgid "Test"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/action_trigger/event_definition_data.tt2:60
+msgid "Test Circulation"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/acq/edi_account.tt2:55
+msgid ""
+"The location of codes in the EDI message itself may vary according to vendor-"
+"specific semantics."
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/cat/authority/thesaurus.tt2:5
+msgid "Thesauri"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/actor/org_unit_custom_tree.tt2:24
+msgid ""
+"To add new nodes to the custom tree, drag them from the full tree on the left"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/best_hold_order.tt2:72
+msgid ""
+"To choose which Best-Hold Selection Sort Order will be used by Evergreen at "
+"copy capture time, see the Library Settings interface."
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/asset/copy_location_order.tt2:19
+msgid "To move an item, drag it up or down with the mouse."
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/actor/search_filter_group.tt2:95
+msgid "To view groups for a different location, use the \"Filter\" option"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/action_trigger/event_definition.tt2:21
+msgid "Trigger Event Definitions"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/action_trigger/event_definition_data.tt2:10
+msgid "Trigger Event Environment"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/action_trigger/event_definition_data.tt2:31
+msgid "Trigger Event Parameters"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/action_trigger/event_definition.tt2:48
+msgid "Trigger Hooks"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/action_trigger/event_definition.tt2:70
+msgid "Trigger Reactors"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/action_trigger/event_definition.tt2:95
+msgid "Trigger Validators"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/vandelay/match_set_tree.tt2:42
+msgid "Type:"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/usr_activity_type.tt2:2
+msgid "User Activity Type"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/usr_setting_type.tt2:2 ../../Open-ILS/src/templates/conify/global/config/usr_setting_type.tt2:21
+msgid "User Setting Types"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/acq/edi_account.tt2:44 ../../Open-ILS/src/templates/conify/global/config/z3950_source.tt2:32
+msgid "Username"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/action_trigger/event_definition.tt2:93
+msgid "Validators"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/vandelay/match_set_tree.tt2:54
+msgid "Value:"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/vandelay/match_set_tree.tt2:2
+msgid "Vandelay Match Set Editor"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/vandelay/match_set.tt2:2
+msgid "Vandelay Match Sets"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/acq/edi_account.tt2:44
+msgid "Vendor Account Number"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/acq/edi_account.tt2:44
+msgid "Vendor Assigned Code"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/circ_modifier.tt2:11 ../../Open-ILS/src/templates/conify/global/config/circ_modifier.tt2:65
+msgid "Video Tape"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/asset/copy_location_group.tt2:123
+msgid "Visible"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/action_trigger/event_definition.tt2:10
+msgid "Weekly"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/vandelay/match_set_tree.tt2:96
+msgid "Working Match Point"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/action_trigger/event_definition.tt2:12
+msgid "Yearly"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/best_hold_order.tt2:36
+msgid "You have unsaved changes."
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/vandelay/match_set_tree.tt2:104
+msgid "Your Expression"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/vandelay/match_set_tree.tt2:83
+msgid "Your Expression:"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/z3950_index_field_map.tt2:44
+msgid "Z39.50 Attribute"
+msgstr ""
+
+#. (source_code)
+#: ../../Open-ILS/src/templates/conify/global/config/z3950_source.tt2:11
+msgid "Z39.50 Attributes for %1"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/z3950_index_field_map.tt2:2 ../../Open-ILS/src/templates/conify/global/config/z3950_index_field_map.tt2:9
+msgid "Z39.50 Index Field Maps"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/z3950_source.tt2:2 ../../Open-ILS/src/templates/conify/global/config/z3950_source.tt2:79
+msgid "Z39.50 Servers"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/vandelay/match_set.tt2:41
+msgid "authority"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/vandelay/match_set.tt2:40
+msgid "biblio"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/best_hold_order.tt2:58 ../../Open-ILS/src/templates/conify/global/config/best_hold_order.tt2:60
+msgid "j"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/best_hold_order.tt2:52 ../../Open-ILS/src/templates/conify/global/config/best_hold_order.tt2:54
+msgid "k"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/vandelay/match_set.tt2:42
+msgid "mfhd"
+msgstr ""
+
+#: ../../Open-ILS/src/templates/conify/global/config/best_hold_order.tt2:29
+msgid "or"
+msgstr ""
diff --git a/build/i18n/po/db.seed/es-ES.po b/build/i18n/po/db.seed/es-ES.po
index bda940c..12cee21 100644
--- a/build/i18n/po/db.seed/es-ES.po
+++ b/build/i18n/po/db.seed/es-ES.po
@@ -8,14 +8,14 @@ msgstr ""
 "Project-Id-Version: evergreen\n"
 "Report-Msgid-Bugs-To: FULL NAME <EMAIL at ADDRESS>\n"
 "POT-Creation-Date: 2016-08-25 17:09-0400\n"
-"PO-Revision-Date: 2016-06-23 15:07+0000\n"
+"PO-Revision-Date: 2016-09-14 18:19+0000\n"
 "Last-Translator: Anahi Valdez <avaldez at emeralddata.net>\n"
 "Language-Team: Spanish <es at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2016-08-26 05:21+0000\n"
-"X-Generator: Launchpad (build 18179)\n"
+"X-Launchpad-Export-Date: 2016-09-15 05:52+0000\n"
+"X-Generator: Launchpad (build 18186)\n"
 
 #: 950.data.seed-values.sql:7962
 msgid "Estonia "
@@ -182,7 +182,7 @@ msgstr "Gato : Uso ID interno de TCN Valor"
 
 #: 950.data.seed-values.sql:16385
 msgid "Notification of a group of circs"
-msgstr ""
+msgstr "La notificación de un grupo de circs"
 
 #: 950.data.seed-values.sql:8184
 msgid "Wake Island "
@@ -773,6 +773,8 @@ msgid ""
 "Maximum popularity importance multiplier for popularity-adjusted relevance "
 "searches (decimal value between 1.0 and 2.0)"
 msgstr ""
+"Multiplicador máximo de popularidad importancia para las búsquedas "
+"Relevancia Popularidad ajustados (valor decimal entre 1.0 y 2.0)"
 
 #: 950.data.seed-values.sql:7815
 msgid "Bonne"
@@ -1401,6 +1403,7 @@ msgstr ""
 #: 950.data.seed-values.sql:16398
 msgid "Notification of a group of circs at the end of a checkout session"
 msgstr ""
+"Notificación de un grupo de circs al final de una sesión de pago y envío"
 
 #: 950.data.seed-values.sql:1239
 msgid ""
@@ -3545,7 +3548,7 @@ msgstr "Finno-Ugrian (Otras)"
 
 #: 950.data.seed-values.sql:16337
 msgid "Patron search diacritic insensitive"
-msgstr ""
+msgstr "Patrón de búsqueda diacrítica insensibles"
 
 #: 950.data.seed-values.sql:1499
 msgid "Allows a user to reopen an Acquisitions invoice"
@@ -5134,7 +5137,7 @@ msgstr "Gambia "
 
 #: 950.data.seed-values.sql:5083
 msgid "Maximum payment amount allowed."
-msgstr ""
+msgstr "Cantidad máxima permitida de pago."
 
 #: 950.data.seed-values.sql:6864
 msgid "Tok Pisin"
@@ -6008,7 +6011,7 @@ msgstr "Elementos de ajuste Visualización fuera largamente esperadas"
 
 #: 950.data.seed-values.sql:16376 950.data.seed-values.sql:16377
 msgid "Email checkout receipts by default?"
-msgstr ""
+msgstr "Recibos de pago y envio de coreo electronico por defecto?"
 
 #: 950.data.seed-values.sql:1594
 msgid "Allow a user to add/remove users to/from the \"Volunteers\" group"
@@ -6651,6 +6654,9 @@ msgid ""
 "diacritical marks or spaces. (e.g., Ines will match Inés; de la Cruz will "
 "match Delacruz)"
 msgstr ""
+"Igualar patrón últimos nombres, primero, y medias, independientemente del "
+"uso de signos diacríticos o espacios. (Por ejemplo, Inés coincidirá con "
+"Inés; de la Cruz coincidirá Delacruz)"
 
 #: 950.data.seed-values.sql:3114
 msgid "Use Active Date for Age Protection"
@@ -6720,6 +6726,8 @@ msgid ""
 "Authority Automation: Disable automatic authority updates from modifying bib "
 "record editor and edit_date"
 msgstr ""
+"Automatización Autoridad: Desactivar actualizaciones automáticas de "
+"autoridad de modificar editor de registro bib y edit_date"
 
 #: 950.data.seed-values.sql:611
 msgid "Allow a user to create a new non-cataloged item type"
@@ -7178,6 +7186,8 @@ msgid ""
 "In the Patron Bills interface, a payment attempt will warn if the amount "
 "exceeds the value of this setting."
 msgstr ""
+"En el interfaz de facturas patronos, un intento de pago le avisará si la "
+"cantidad excede el valor de este ajuste."
 
 #: 950.data.seed-values.sql:6886
 msgid "Vai"
@@ -9223,6 +9233,8 @@ msgid ""
 "The payment amount in the Patron Bills interface may not exceed the value of "
 "this setting."
 msgstr ""
+"La cantidad del pago en la interfaz de facturas patronos no podrá superar el "
+"valor de esta configuración."
 
 #: 950.data.seed-values.sql:16099
 msgid "OPAC: Org Unit is not a hold pickup library"
@@ -10166,6 +10178,8 @@ msgid ""
 "OPAC Default Sort (titlesort, authorsort, pubdate, popularity, poprel, or "
 "empty)"
 msgstr ""
+"OPAC Ordenar Por Defecto (titlesort, authorsort, pubdate, popularidad, "
+"poprel o vacío)"
 
 #: 950.data.seed-values.sql:6917
 msgid "The item is intended for young people, approximate ages 9-13 years."
@@ -11889,7 +11903,7 @@ msgstr ""
 
 #: 950.data.seed-values.sql:5093
 msgid "Payment amount threshold for Are You Sure? dialog."
-msgstr ""
+msgstr "Pago cantidad de umbral ¿Estás seguro? diálogo."
 
 #: 950.data.seed-values.sql:5242 950.data.seed-values.sql:5245
 #: 950.data.seed-values.sql:5246 950.data.seed-values.sql:5253
@@ -12277,7 +12291,7 @@ msgstr "UPDATE_PERM"
 
 #: 950.data.seed-values.sql:331
 msgid "Canceled Transit"
-msgstr ""
+msgstr "Transito Cancelado"
 
 #: 950.data.seed-values.sql:2966
 msgid "Claim Never Checked Out: Mark copy as missing"
diff --git a/build/i18n/po/fm_IDL.dtd/cs-CZ.po b/build/i18n/po/fm_IDL.dtd/cs-CZ.po
index caa8179..f0223d9 100644
--- a/build/i18n/po/fm_IDL.dtd/cs-CZ.po
+++ b/build/i18n/po/fm_IDL.dtd/cs-CZ.po
@@ -4,14 +4,14 @@ msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: open-ils-dev at list.georgialibraries.org\n"
 "POT-Creation-Date: 2016-08-25 17:08-0400\n"
-"PO-Revision-Date: 2016-09-08 10:15+0000\n"
+"PO-Revision-Date: 2016-09-19 10:27+0000\n"
 "Last-Translator: Eva Cerninakova <Unknown>\n"
 "Language-Team: LANGUAGE <LL at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2016-09-09 05:56+0000\n"
-"X-Generator: Launchpad (build 18184)\n"
+"X-Launchpad-Export-Date: 2016-09-20 07:22+0000\n"
+"X-Generator: Launchpad (build 18200)\n"
 "X-Accelerator-Marker: &\n"
 
 #: class.stgu.label:9550
@@ -4874,7 +4874,7 @@ msgstr "Domovská knihovna uživatele"
 
 #: field.ccvm.composite_def.label:1140
 msgid "Composite Definition"
-msgstr "Kombinovaná definice"
+msgstr "Sdružená definice"
 
 #: class.aun.label:2245
 msgid "User Note"
@@ -7744,7 +7744,7 @@ msgstr "Připojené zastaralé výpůjčky"
 
 #: field.acqlia.order_ident.label:8780
 msgid "Order Identifier"
-msgstr "Starší identifikátor"
+msgstr "Identifikátor objednávky"
 
 #: field.mrd.bib_level.label:3819
 msgid "BLvl"
diff --git a/build/i18n/po/tpac/cs-CZ.po b/build/i18n/po/tpac/cs-CZ.po
index d3b8d73..af14041 100644
--- a/build/i18n/po/tpac/cs-CZ.po
+++ b/build/i18n/po/tpac/cs-CZ.po
@@ -8,14 +8,14 @@ msgstr ""
 "Project-Id-Version: evergreen\n"
 "Report-Msgid-Bugs-To: FULL NAME <EMAIL at ADDRESS>\n"
 "POT-Creation-Date: 2016-08-25 22:33+0000\n"
-"PO-Revision-Date: 2016-09-07 11:32+0000\n"
+"PO-Revision-Date: 2016-09-18 18:18+0000\n"
 "Last-Translator: Eva Cerninakova <Unknown>\n"
 "Language-Team: Czech <cs at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2016-09-08 05:55+0000\n"
-"X-Generator: Launchpad (build 18179)\n"
+"X-Launchpad-Export-Date: 2016-09-20 07:22+0000\n"
+"X-Generator: Launchpad (build 18200)\n"
 
 #: ../../Open-ILS/src/templates/opac/register.tt2:63
 msgid ""
@@ -1822,7 +1822,7 @@ msgstr "Grafický technik"
 
 #: ../../Open-ILS/src/templates/opac/parts/advanced/search.tt2:139 ../../Open-ILS/src/templates/opac/results.tt2:90
 msgid "Group Formats and Editions"
-msgstr "Seskupit nosiče a vydání"
+msgstr "Seskupit stejné tituly"
 
 #: ../../Open-ILS/src/templates/opac/myopac/lists.tt2:232
 msgid "HTML View"
@@ -4781,7 +4781,7 @@ msgstr "Vaše heslo nebylo správné"
 #. (ctx.user.email)
 #: ../../Open-ILS/src/templates/opac/record/email.tt2:12
 msgid "Your email has been queued for delivery to %1"
-msgstr "Váš e-mail byl zařazen k odeslání na adresu   %1"
+msgstr "Váš e-mail byl zařazen do fronty a bude brzy odeslán na adresu   %1"
 
 #. (fmt_expire_date)
 #: ../../Open-ILS/src/templates/opac/parts/myopac/main_base.tt2:37
diff --git a/build/i18n/po/webstaff/cs-CZ.po b/build/i18n/po/webstaff/cs-CZ.po
index b6d172c..4aba906 100644
--- a/build/i18n/po/webstaff/cs-CZ.po
+++ b/build/i18n/po/webstaff/cs-CZ.po
@@ -8,14 +8,14 @@ msgstr ""
 "Project-Id-Version: evergreen\n"
 "Report-Msgid-Bugs-To: FULL NAME <EMAIL at ADDRESS>\n"
 "POT-Creation-Date: 2016-08-25 22:31+0000\n"
-"PO-Revision-Date: 2016-09-07 13:23+0000\n"
+"PO-Revision-Date: 2016-09-18 19:49+0000\n"
 "Last-Translator: Eva Cerninakova <Unknown>\n"
 "Language-Team: Czech <cs at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2016-09-08 05:55+0000\n"
-"X-Generator: Launchpad (build 18179)\n"
+"X-Launchpad-Export-Date: 2016-09-20 07:22+0000\n"
+"X-Generator: Launchpad (build 18200)\n"
 
 #: ../../Open-ILS/src/templates/staff/circ/share/t_transit_dialog.tt2:36
 msgid ""
@@ -388,7 +388,7 @@ msgstr "Stáří"
 
 #: ../../Open-ILS/src/templates/staff/admin/server/t_splash.tt2:10
 msgid "Age Hold Protect Rules"
-msgstr "Doba ochrany před rezervacemi"
+msgstr "Pravidla dočasné ochrany před rezervacemi"
 
 #: ../../Open-ILS/src/templates/staff/circ/patron/t_xact_details.tt2:97
 msgid "Age Protect"
diff --git a/build/i18n/po/webstaff/es-ES.po b/build/i18n/po/webstaff/es-ES.po
index 8028c3a..9861bd7 100644
--- a/build/i18n/po/webstaff/es-ES.po
+++ b/build/i18n/po/webstaff/es-ES.po
@@ -8,14 +8,14 @@ msgstr ""
 "Project-Id-Version: evergreen\n"
 "Report-Msgid-Bugs-To: FULL NAME <EMAIL at ADDRESS>\n"
 "POT-Creation-Date: 2016-08-25 22:31+0000\n"
-"PO-Revision-Date: 2016-09-08 21:11+0000\n"
+"PO-Revision-Date: 2016-09-14 17:27+0000\n"
 "Last-Translator: Anahi Valdez <avaldez at emeralddata.net>\n"
 "Language-Team: Spanish <es at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2016-09-09 05:56+0000\n"
-"X-Generator: Launchpad (build 18184)\n"
+"X-Launchpad-Export-Date: 2016-09-15 05:52+0000\n"
+"X-Generator: Launchpad (build 18186)\n"
 
 #: ../../Open-ILS/src/templates/staff/circ/share/t_transit_dialog.tt2:36
 msgid ""
@@ -2076,7 +2076,7 @@ msgstr "Filtrar por Biblioteca"
 
 #: ../../Open-ILS/src/templates/staff/reporter/t_edit_template.tt2:181
 msgid "Filters"
-msgstr ""
+msgstr "Filtros"
 
 #: ../../Open-ILS/src/templates/staff/cat/catalog/t_holds.tt2:54 ../../Open-ILS/src/templates/staff/circ/holds/t_pull_list.tt2:55 ../../Open-ILS/src/templates/staff/circ/holds/t_shelf_list.tt2:58 ../../Open-ILS/src/templates/staff/circ/patron/t_holds_list.tt2:41
 msgid "Find Another Target"
@@ -2104,7 +2104,7 @@ msgstr "Finalizar"
 
 #: ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:156 ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:66
 msgid "First 5 characters (for US ZIP code)"
-msgstr ""
+msgstr "Primeros 5 caracteres (para códigos postales de EEUU)"
 
 #: ../../Open-ILS/src/templates/staff/circ/patron/t_pending_list.tt2:22 ../../Open-ILS/src/templates/staff/circ/patron/t_search.tt2:21
 msgid "First Name"
@@ -2112,11 +2112,11 @@ msgstr "Primer nombre"
 
 #: ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:147 ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:58
 msgid "First Value"
-msgstr ""
+msgstr "Primer Valor"
 
 #: ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:157 ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:67
 msgid "First contiguous non-space string"
-msgstr ""
+msgstr "Primera cadena contigua sin espacios"
 
 #: ../../Open-ILS/src/templates/staff/cat/share/t_marcedit.tt2:18
 msgid "Flat Text Editor"
@@ -2128,7 +2128,7 @@ msgstr "Flotando"
 
 #: ../../Open-ILS/src/templates/staff/admin/server/t_splash.tt2:10
 msgid "Floating Groups"
-msgstr ""
+msgstr "Grupos Flotantes"
 
 #: ../../Open-ILS/src/templates/staff/circ/share/t_event_override_dialog.tt2:25
 msgid "Force Action?"
@@ -2152,7 +2152,7 @@ msgstr "Perdonar"
 
 #: ../../Open-ILS/src/templates/staff/base_js.tt2:75
 msgid "Forgive Payment"
-msgstr ""
+msgstr "Pago Perdonado"
 
 #: ../../Open-ILS/src/templates/staff/circ/share/t_circ_exists_dialog.tt2:26
 msgid "Forgive fines?"
@@ -2168,7 +2168,7 @@ msgstr "Generar contraseña"
 
 #: ../../Open-ILS/src/templates/staff/admin/server/t_splash.tt2:10
 msgid "Global Flags"
-msgstr ""
+msgstr "Banderas Globales"
 
 #: ../../Open-ILS/src/templates/staff/share/t_autogrid.tt2:137
 msgid "Go To..."
@@ -2200,15 +2200,15 @@ msgstr "Mercancías"
 
 #: ../../Open-ILS/src/templates/staff/base_js.tt2:76
 msgid "Goods Payment"
-msgstr ""
+msgstr "Pago Por Beneficios"
 
 #: ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:18 ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:99
 msgid "Greater than"
-msgstr ""
+msgstr "Mayor que"
 
 #: ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:101 ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:20
 msgid "Greater than or equal to"
-msgstr ""
+msgstr "Mayor o igual a"
 
 #: ../../Open-ILS/src/templates/staff/circ/patron/t_patron_groups_dialog.tt2:16
 msgid "Group"
@@ -2228,7 +2228,7 @@ msgstr "HTML"
 
 #: ../../Open-ILS/src/templates/staff/admin/server/t_splash.tt2:10
 msgid "Hard Due Date Changes"
-msgstr ""
+msgstr "Fecha cambios debido duros"
 
 #: ../../Open-ILS/src/templates/staff/admin/workstation/t_splash.tt2:30 ../../Open-ILS/src/templates/staff/admin/workstation/t_splash.tt2:31
 msgid "Hatch URL"
@@ -2288,7 +2288,7 @@ msgstr "Identificador de la reserva"
 
 #: ../../Open-ILS/src/templates/staff/admin/server/t_splash.tt2:10
 msgid "Hold Matchpoint Weights"
-msgstr ""
+msgstr "Mantenga el cargo punto de partido"
 
 #: ../../Open-ILS/src/templates/staff/admin/workstation/t_print_templates.tt2:23
 msgid "Hold Pull List"
@@ -2296,7 +2296,7 @@ msgstr "Mantenga lista de puesta"
 
 #: ../../Open-ILS/src/templates/staff/base_js.tt2:77
 msgid "Hold Request"
-msgstr ""
+msgstr "Solicitud de Reserva"
 
 #: ../../Open-ILS/src/templates/staff/circ/share/t_hold_dates.tt2:36
 msgid "Hold Request Date"
@@ -2320,7 +2320,7 @@ msgstr "Nota Del Apartado"
 
 #: ../../Open-ILS/src/templates/staff/cat/catalog/index.tt2:42
 msgid "Hold Transfer Destination set"
-msgstr ""
+msgstr "Mantenga Transferencia conjunto de destino"
 
 #: ../../Open-ILS/src/templates/staff/admin/workstation/t_print_templates.tt2:19
 msgid "Hold Transit Slip"
@@ -2349,7 +2349,7 @@ msgstr "¿Se puede apartar?"
 
 #: ../../Open-ILS/src/templates/staff/admin/server/config/marc_field.tt2:29
 msgid "Holdings"
-msgstr ""
+msgstr "Valores en cartera"
 
 #: ../../Open-ILS/src/templates/staff/cat/catalog/t_catalog.tt2:87
 msgid "Holdings View"
@@ -2407,15 +2407,15 @@ msgstr "Inicio Biblioteca: "
 
 #: ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:168 ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:78
 msgid "Hour"
-msgstr ""
+msgstr "Hora"
 
 #: ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:164 ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:74
 msgid "Hour of day"
-msgstr ""
+msgstr "Hora del día"
 
 #: ../../Open-ILS/src/templates/staff/admin/actor/org_unit/t_index.tt2:26
 msgid "Hours of Operation"
-msgstr ""
+msgstr "Horas de Operación"
 
 #: ../../Open-ILS/src/templates/staff/admin/server/config/marc_field.tt2:49 ../../Open-ILS/src/templates/staff/cat/catalog/t_conjoined_items.tt2:31
 msgid "ID"
@@ -2467,7 +2467,7 @@ msgstr "Importar"
 
 #: ../../Open-ILS/src/templates/staff/admin/server/t_splash.tt2:10
 msgid "Import Match Sets"
-msgstr ""
+msgstr "Conjuntos de importación del partido"
 
 #: ../../Open-ILS/src/templates/staff/cat/z3950/t_marc_edit.tt2:5
 msgid "Import Record"
@@ -2487,7 +2487,7 @@ msgstr "En Tránsito"
 
 #: ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:107 ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:26
 msgid "In list"
-msgstr ""
+msgstr "En la lista"
 
 #: ../../Open-ILS/src/templates/staff/circ/in_house_use/index.tt2:1 ../../Open-ILS/src/templates/staff/circ/in_house_use/index.tt2:70
 msgid "In-House Use"
@@ -2503,7 +2503,7 @@ msgstr "Incluir artículos?"
 
 #: ../../Open-ILS/src/templates/staff/admin/workstation/t_splash.tt2:110
 msgid "Info"
-msgstr ""
+msgstr "Información"
 
 #: ../../Open-ILS/src/templates/staff/cat/volcopy/t_copy_notes.tt2:32 ../../Open-ILS/src/templates/staff/circ/share/t_new_message_dialog.tt2:45
 msgid "Initials"
@@ -2531,23 +2531,23 @@ msgstr "Invalidar"
 
 #: ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:111 ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:30
 msgid "Is NULL"
-msgstr ""
+msgstr "Es NULO"
 
 #: ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:113 ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:32
 msgid "Is NULL or Blank"
-msgstr ""
+msgstr "Es NULO ó Vacío"
 
 #: ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:112 ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:31
 msgid "Is not NULL"
-msgstr ""
+msgstr "No es NULO"
 
 #: ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:114 ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:33
 msgid "Is not NULL or Blank"
-msgstr ""
+msgstr "No es NULO o Vacío"
 
 #: ../../Open-ILS/src/templates/staff/admin/workstation/t_log.tt2:29 ../../Open-ILS/src/templates/staff/admin/workstation/t_log.tt2:55
 msgid "Item"
-msgstr ""
+msgstr "Artículo"
 
 #. ("{{barcode}}")
 #: ../../Open-ILS/src/templates/staff/circ/share/circ_strings.tt2:12
@@ -2610,7 +2610,7 @@ msgstr "Resumen de elementos"
 
 #: ../../Open-ILS/src/templates/staff/cat/catalog/index.tt2:48
 msgid "Item Transfer Target set"
-msgstr ""
+msgstr "Conjunto de objetos de transferencia de destino"
 
 #: ../../Open-ILS/src/templates/staff/circ/patron/t_items_out.tt2:37
 msgid "Item Type"
@@ -2638,11 +2638,11 @@ msgstr "El artículo no es capturado por una retención"
 
 #: ../../Open-ILS/src/templates/staff/cat/catalog/index.tt2:40
 msgid "Item(s) transfered"
-msgstr ""
+msgstr "Artículo(s) transferido"
 
 #: ../../Open-ILS/src/templates/staff/cat/item/t_list.tt2:38 ../../Open-ILS/src/templates/staff/cat/item/t_list.tt2:45
 msgid "Items"
-msgstr ""
+msgstr "Artículos"
 
 #: ../../Open-ILS/src/templates/staff/circ/checkin/t_checkin_table.tt2:6
 msgid "Items Checked In"
@@ -2662,7 +2662,7 @@ msgstr "Articulos Vencidos"
 
 #: ../../Open-ILS/src/templates/staff/cat/item/t_list.tt2:52
 msgid "Items to Previously Marked Library"
-msgstr ""
+msgstr "Los artículos a la biblioteca de marcado previamente"
 
 #: ../../Open-ILS/src/templates/staff/cat/catalog/t_holdings.tt2:93 ../../Open-ILS/src/templates/staff/cat/item/t_list.tt2:54
 msgid "Items to Previously Marked Volume"
@@ -2710,7 +2710,7 @@ msgstr "Actualizado por ultima vez"
 
 #: ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:148 ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:59
 msgid "Last Value"
-msgstr ""
+msgstr "Último valor"
 
 #: ../../Open-ILS/src/templates/staff/cat/bucket/record/t_merge_records.tt2:10
 msgid "Lead record"
@@ -2718,11 +2718,11 @@ msgstr "Registro de cliente potencial"
 
 #: ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:103 ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:22
 msgid "Less than"
-msgstr ""
+msgstr "Menor que"
 
 #: ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:105 ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:24
 msgid "Less than or equal to"
-msgstr ""
+msgstr "Menor o igual a"
 
 #: ../../Open-ILS/src/templates/staff/circ/patron/t_messages.tt2:20 ../../Open-ILS/src/templates/staff/circ/patron/t_messages.tt2:49
 msgid "Library"
@@ -2734,7 +2734,7 @@ msgstr "Biblioteca como transferencia de Volumen de Destino"
 
 #: ../../Open-ILS/src/templates/staff/circ/transits/t_list.tt2:14
 msgid "Library: "
-msgstr ""
+msgstr "Biblioteca: "
 
 #: ../../Open-ILS/src/templates/staff/navbar.tt2:247
 msgid "Link Checker"
@@ -2823,7 +2823,7 @@ msgstr "Baja"
 
 #: ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:154 ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:64
 msgid "Lower case"
-msgstr ""
+msgstr "Minúsculas"
 
 #: ../../Open-ILS/src/templates/staff/navbar.tt2:240
 msgid "MARC Batch Edit"
@@ -2835,7 +2835,7 @@ msgstr "MARC Lotes de Importación/Exportación"
 
 #: ../../Open-ILS/src/templates/staff/admin/server/t_splash.tt2:10
 msgid "MARC Coded Value Maps"
-msgstr ""
+msgstr "MARC Mapas de Valor Codificado"
 
 #: ../../Open-ILS/src/templates/staff/cat/catalog/t_catalog.tt2:67
 msgid "MARC Edit"
@@ -2843,7 +2843,7 @@ msgstr "MARC Editar"
 
 #: ../../Open-ILS/src/templates/staff/admin/server/t_splash.tt2:10
 msgid "MARC Import Remove Fields"
-msgstr ""
+msgstr "MARC Importación Eliminar Campos"
 
 #: ../../Open-ILS/src/templates/staff/cat/item/t_cat_pane.tt2:1
 msgid "MARC Record"
@@ -2851,31 +2851,31 @@ msgstr "Registro MARC"
 
 #: ../../Open-ILS/src/templates/staff/admin/server/t_splash.tt2:10
 msgid "MARC Record Attributes"
-msgstr ""
+msgstr "Atributos del registro MARC"
 
 #: ../../Open-ILS/src/templates/staff/admin/server/config/marc_field.tt2:25
 msgid "MARC Record Type"
-msgstr ""
+msgstr "MARC Tipo de Registro"
 
 #: ../../Open-ILS/src/templates/staff/admin/server/t_splash.tt2:10
 msgid "MARC Search/Facet Class FTS Maps"
-msgstr ""
+msgstr "Mapas Buscar MARC / faceta Clase FTS"
 
 #: ../../Open-ILS/src/templates/staff/admin/server/t_splash.tt2:10
 msgid "MARC Search/Facet Classes"
-msgstr ""
+msgstr "Las clases MARC Búsqueda/Faceta"
 
 #: ../../Open-ILS/src/templates/staff/admin/server/t_splash.tt2:10
 msgid "MARC Search/Facet Field FTS Maps"
-msgstr ""
+msgstr "Buscar MARC/Faceta de campo Mapas FTS"
 
 #: ../../Open-ILS/src/templates/staff/admin/server/t_splash.tt2:10
 msgid "MARC Search/Facet Fields"
-msgstr ""
+msgstr "Buscar MARC /Faceta campos"
 
 #: ../../Open-ILS/src/templates/staff/admin/server/config/marc_field.tt2:1 ../../Open-ILS/src/templates/staff/admin/server/config/marc_field.tt2:18 ../../Open-ILS/src/templates/staff/admin/server/t_splash.tt2:10
 msgid "MARC Tag Tables"
-msgstr ""
+msgstr "MARC Tablas de variables"
 
 #: ../../Open-ILS/src/templates/staff/cat/catalog/t_catalog.tt2:72
 msgid "MARC View"
@@ -2899,7 +2899,7 @@ msgstr "Envío de correo"
 
 #: ../../Open-ILS/src/templates/staff/admin/actor/org_unit/t_index.tt2:21
 msgid "Main Settings"
-msgstr ""
+msgstr "Configuración principal"
 
 #: ../../Open-ILS/src/templates/staff/share/t_autogrid.tt2:262
 msgid "Make column narrower"
@@ -2992,7 +2992,7 @@ msgstr "Marcar {{num_items}} artículos como DESAPARECIDO?"
 
 #: ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:152 ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:63
 msgid "Max"
-msgstr ""
+msgstr "Máximo"
 
 #: ../../Open-ILS/src/templates/staff/cat/item/t_summary_pane.tt2:119
 msgid "Max Fine Rule"
@@ -3012,7 +3012,7 @@ msgstr "Combinar registros?"
 
 #: ../../Open-ILS/src/templates/staff/admin/workstation/t_log.tt2:26 ../../Open-ILS/src/templates/staff/admin/workstation/t_log.tt2:52
 msgid "Message"
-msgstr ""
+msgstr "Mensaje"
 
 #: ../../Open-ILS/src/templates/staff/circ/patron/index.tt2:123
 msgid "Messages"
@@ -3024,7 +3024,7 @@ msgstr "Segundo Nombre"
 
 #: ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:151 ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:62
 msgid "Min"
-msgstr ""
+msgstr "Mín"
 
 #: ../../Open-ILS/src/templates/staff/cat/volcopy/t_defaults.tt2:92
 msgid "Miscellaneous"
@@ -3032,11 +3032,11 @@ msgstr "Miscelánea"
 
 #: ../../Open-ILS/src/templates/staff/cat/volcopy/t_edit.tt2:3
 msgid "Missing Barcode"
-msgstr ""
+msgstr "Falta código de barras"
 
 #: ../../Open-ILS/src/templates/staff/cat/volcopy/t_edit.tt2:4
 msgid "Missing Call Number"
-msgstr ""
+msgstr "Faltando Numero de llamadas"
 
 #: ../../Open-ILS/src/templates/staff/cat/z3950/t_search_fields.tt2:12
 msgid "Mixed material"
@@ -3061,19 +3061,19 @@ msgstr "Piezas monografía"
 
 #: ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:170 ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:80
 msgid "Month Name"
-msgstr ""
+msgstr "Nombre del mes"
 
 #: ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:162 ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:72
 msgid "Month of Year"
-msgstr ""
+msgstr "Mes del año"
 
 #: ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:90
 msgid "Month(s)"
-msgstr ""
+msgstr "Mes(es)"
 
 #: ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:172 ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:82
 msgid "Months ago"
-msgstr ""
+msgstr "Hace meses"
 
 #. ("{{recordNotFound}}")
 #: ../../Open-ILS/src/templates/staff/cat/catalog/t_retrieve_by_tcn.tt2:25
@@ -3090,11 +3090,11 @@ msgstr "La Mayoría de Tránsito Recientes"
 
 #: ../../Open-ILS/src/templates/staff/admin/workstation/t_log.tt2:37
 msgid "Most Recently Affected Patrons"
-msgstr ""
+msgstr "Clientes más recientemente afectados"
 
 #: ../../Open-ILS/src/templates/staff/admin/workstation/t_log.tt2:8
 msgid "Most Recently Logged Staff Actions"
-msgstr ""
+msgstr "Acciones de personal registrado más recientemente"
 
 #. ("{{num_holds}}")
 #: ../../Open-ILS/src/templates/staff/circ/share/hold_strings.tt2:17
@@ -3111,11 +3111,11 @@ msgstr "Mover otro patrón a este grupo"
 
 #: ../../Open-ILS/src/templates/staff/reporter/t_edit_template.tt2:161
 msgid "Move Field Down"
-msgstr ""
+msgstr "Mover Campo Abajo"
 
 #: ../../Open-ILS/src/templates/staff/reporter/t_edit_template.tt2:156
 msgid "Move Field Up"
-msgstr ""
+msgstr "Mover Campo Arriba"
 
 #: ../../Open-ILS/src/templates/staff/circ/patron/t_group.tt2:27
 msgid "Move Selected Patrons to Another Patron's Group"
@@ -3142,18 +3142,25 @@ msgid ""
 "NOTE: A server-side \"autogen\" process is needed to complete updates, "
 "additions, and deletions to the Org Hierarchy."
 msgstr ""
+"NOTA: Se necesita un proceso de servidor \"autogen\" para completar las "
+"actualizaciones, adiciones y supresiones a la Jerarquía Org."
 
 #: ../../Open-ILS/src/templates/staff/admin/actor/org_unit/t_main_tab.tt2:69
 msgid ""
 "NOTE: In practice, once an org unit has been used or assigned to items, "
 "patrons, etc. deletion becomes non-trivial and will require DBA intervention."
 msgstr ""
+"NOTA: En la práctica, una vez que una unidad organizativa se ha utilizado o "
+"asignado a los elementos, clientes, etc. eliminación se convierte en no "
+"trivial y requiere la intervención del DBA."
 
 #: ../../Open-ILS/src/templates/staff/admin/actor/org_unit/t_main_tab.tt2:80
 msgid ""
 "NOTE: The new org unit will not exist in the database until Update Org is "
 "applied."
 msgstr ""
+"NOTA: La nueva unidad organizativa no existirá en la base de datos hasta que "
+"se aplique la actualización Org."
 
 #: ../../Open-ILS/src/templates/staff/admin/actor/org_unit/t_main_tab.tt2:6 ../../Open-ILS/src/templates/staff/admin/server/config/marc_field.tt2:47 ../../Open-ILS/src/templates/staff/cat/bucket/copy/t_bucket_create.tt2:13 ../../Open-ILS/src/templates/staff/cat/bucket/copy/t_bucket_edit.tt2:11 ../../Open-ILS/src/templates/staff/cat/bucket/record/t_bucket_create.tt2:13 ../../Open-ILS/src/templates/staff/cat/bucket/record/t_bucket_edit.tt2:11 ../../Open-ILS/src/templates/staff/reporter/t_edit_template.tt2:222
 msgid "Name"
@@ -3205,7 +3212,7 @@ msgstr "Nuevo Cubo"
 
 #: ../../Open-ILS/src/templates/staff/admin/actor/org_unit/t_main_tab.tt2:77
 msgid "New Child"
-msgstr ""
+msgstr "Nuevo hijo"
 
 #: ../../Open-ILS/src/templates/staff/cat/volcopy/t_copy_notes.tt2:5
 msgid "New Copy Note"
@@ -3217,7 +3224,7 @@ msgstr "Nota nueva"
 
 #: ../../Open-ILS/src/templates/staff/admin/server/config/marc_field.tt2:42
 msgid "New Record"
-msgstr ""
+msgstr "Nuevo registro"
 
 #: ../../Open-ILS/src/templates/staff/cat/catalog/t_catalog.tt2:15 ../../Open-ILS/src/templates/staff/cat/share/t_authority_browser.tt2:10 ../../Open-ILS/src/templates/staff/cat/share/t_authority_browser.tt2:60 ../../Open-ILS/src/templates/staff/cat/share/t_physchar_wizard.tt2:52
 msgid "Next"
@@ -3253,7 +3260,7 @@ msgstr "No se han encontrado impresoras"
 
 #: ../../Open-ILS/src/templates/staff/circ/patron/t_checkout.tt2:157
 msgid "No Receipt"
-msgstr ""
+msgstr "Sin recibo"
 
 #: ../../Open-ILS/src/templates/staff/cat/item/t_circs_pane.tt2:99
 msgid "No Recent Circ Group"
@@ -3290,7 +3297,7 @@ msgstr "Ningún usuario seleccionado para el movimiento."
 
 #: ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:119
 msgid "Non-Aggregate"
-msgstr ""
+msgstr "No Agregados"
 
 #: ../../Open-ILS/src/templates/staff/circ/patron/t_summary.tt2:91
 msgid "Non-Cataloged"
@@ -3302,7 +3309,7 @@ msgstr "Circulaciones No Catalogados"
 
 #: ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:13 ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:47
 msgid "None"
-msgstr ""
+msgstr "Ninguno/a"
 
 #: ../../Open-ILS/src/templates/staff/cat/volcopy/t_attr_edit.tt2:239 ../../Open-ILS/src/templates/staff/cat/volcopy/t_attr_edit.tt2:366
 msgid "Normal"
@@ -3318,11 +3325,11 @@ msgstr "No Fue Catalogado"
 
 #: ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:110 ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:29
 msgid "Not between"
-msgstr ""
+msgstr "No esté entre"
 
 #: ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:108 ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:27
 msgid "Not in list"
-msgstr ""
+msgstr "No está en la lista"
 
 #: ../../Open-ILS/src/templates/staff/circ/patron/t_bill_history_payments.tt2:15 ../../Open-ILS/src/templates/staff/circ/share/t_hold_notification_dialog.tt2:19 ../../Open-ILS/src/templates/staff/circ/share/t_hold_notification_dialog.tt2:23 ../../Open-ILS/src/templates/staff/circ/share/t_new_message_dialog.tt2:13
 msgid "Note"
@@ -3378,7 +3385,7 @@ msgstr "Notificar por el texto: 1%"
 
 #: ../../Open-ILS/src/templates/staff/reporter/t_edit_template.tt2:52
 msgid "Nullability"
-msgstr ""
+msgstr "Nulabilidad"
 
 #. ("{{dialog.num_circs}}")
 #: ../../Open-ILS/src/templates/staff/circ/share/t_backdate_dialog.tt2:9
@@ -3419,7 +3426,7 @@ msgstr "O"
 
 #: ../../Open-ILS/src/templates/staff/admin/actor/org_unit/t_main_tab.tt2:38
 msgid "OU Type"
-msgstr ""
+msgstr "Tipo de OU"
 
 #: ../../Open-ILS/src/templates/staff/admin/workstation/t_print_config.tt2:38
 msgid "Offline"
@@ -3427,11 +3434,11 @@ msgstr "Desconectada"
 
 #: ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:102 ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:21
 msgid "On or After (Date/Time)"
-msgstr ""
+msgstr "En o Después (Fecha/Hora)"
 
 #: ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:106 ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:25
 msgid "On or Before (Date/Time)"
-msgstr ""
+msgstr "En o Antes (Fecha/Hora)"
 
 #: ../../Open-ILS/src/templates/staff/cat/bucket/copy/index.tt2:17
 msgid "One or more items could not be deleted. Override?"
@@ -3451,43 +3458,43 @@ msgstr "Manten Abierta Peticiones"
 
 #: ../../Open-ILS/src/templates/staff/reporter/t_edit_template.tt2:225
 msgid "Operator"
-msgstr ""
+msgstr "Operador"
 
 #: ../../Open-ILS/src/templates/staff/admin/actor/org_unit/index.tt2:14
 msgid "Org Unit Deleted"
-msgstr ""
+msgstr "Org Unidad Suprimido"
 
 #: ../../Open-ILS/src/templates/staff/admin/actor/org_unit/index.tt2:15
 msgid "Org Unit Not Deleted"
-msgstr ""
+msgstr "Unidad Org No Eliminados"
 
 #: ../../Open-ILS/src/templates/staff/admin/actor/org_unit/index.tt2:13
 msgid "Org Unit Not Updated"
-msgstr ""
+msgstr "Unidad Org No Actualizado"
 
 #: ../../Open-ILS/src/templates/staff/admin/server/t_splash.tt2:10
 msgid "Org Unit Proximity Adjustments"
-msgstr ""
+msgstr "Ajustes Org Unidad de Proximidad"
 
 #: ../../Open-ILS/src/templates/staff/admin/server/t_splash.tt2:10
 msgid "Org Unit Setting Types"
-msgstr ""
+msgstr "Unidad Org Configuración de los tipos"
 
 #: ../../Open-ILS/src/templates/staff/admin/actor/org_unit/index.tt2:12
 msgid "Org Unit Updated"
-msgstr ""
+msgstr "Unidad Org Actualizado"
 
 #: ../../Open-ILS/src/templates/staff/admin/server/t_splash.tt2:10
 msgid "Organization Types"
-msgstr ""
+msgstr "Tipos de organización"
 
 #: ../../Open-ILS/src/templates/staff/admin/actor/org_unit/t_index.tt2:3
 msgid "Organizational Unit"
-msgstr ""
+msgstr "Unidad organizativa"
 
 #: ../../Open-ILS/src/templates/staff/admin/actor/org_unit/index.tt2:1 ../../Open-ILS/src/templates/staff/admin/server/t_splash.tt2:10
 msgid "Organizational Units"
-msgstr ""
+msgstr "Unidades de organización"
 
 #: ../../Open-ILS/src/templates/staff/share/print_templates/t_bill_payment.tt2:6
 msgid "Original Balance:"
@@ -3511,11 +3518,11 @@ msgstr "Otras/ circulaciones especiales"
 
 #: ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:41
 msgid "Output"
-msgstr ""
+msgstr "Salida"
 
 #: ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:50
 msgid "Output Folders"
-msgstr ""
+msgstr "Carpetas de salida"
 
 #: ../../Open-ILS/src/templates/staff/circ/patron/t_summary.tt2:72
 msgid "Overdue"
@@ -3561,11 +3568,11 @@ msgstr "Papeles o articulos"
 
 #: ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:11
 msgid "Parent"
-msgstr ""
+msgstr "Padre"
 
 #: ../../Open-ILS/src/templates/staff/reporter/t_edit_template.tt2:69
 msgid "Parent nullable"
-msgstr ""
+msgstr "Nullible Padres"
 
 #: ../../Open-ILS/src/templates/staff/cat/volcopy/t_edit.tt2:54 ../../Open-ILS/src/templates/staff/circ/holds/t_pull_list.tt2:67
 msgid "Part"
@@ -3719,7 +3726,7 @@ msgstr "Pagos"
 #. ("{{max_amount}}")
 #: ../../Open-ILS/src/templates/staff/circ/patron/index.tt2:51
 msgid "Payments over $%1 are denied by policy."
-msgstr ""
+msgstr "Pagos de más de $%1 sonnegados por política."
 
 #: ../../Open-ILS/src/templates/staff/cat/catalog/t_conjoined_selector.tt2:11
 msgid "Peer Type:"
@@ -3765,11 +3772,11 @@ msgstr "Permiso denegado: 1%"
 
 #: ../../Open-ILS/src/templates/staff/admin/server/t_splash.tt2:10
 msgid "Permission Groups"
-msgstr ""
+msgstr "Grupo de Permisos"
 
 #: ../../Open-ILS/src/templates/staff/admin/server/t_splash.tt2:10
 msgid "Permissions"
-msgstr ""
+msgstr "Permisos:"
 
 #. ("{{note.usr.family_name}}", "{{note.usr.first_given_name}}", "{{note.usr.second_given_name}}", "{{note.usr.card.barcode}}")
 #: ../../Open-ILS/src/templates/staff/share/print_templates/t_patron_note.tt2:1
@@ -3818,23 +3825,24 @@ msgstr "Por favor, anote este pago"
 
 #: ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:53
 msgid "Please change the report name"
-msgstr ""
+msgstr "Por favor, cambie el nombre del informe"
 
 #: ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:52
 msgid "Please enter a report name"
-msgstr ""
+msgstr "Por favor ingrese un nombre de informe"
 
 #: ../../Open-ILS/src/templates/staff/circ/patron/index.tt2:48 ../../Open-ILS/src/templates/staff/circ/patron/register.tt2:16
 msgid "Please enter valid values for all required fields."
 msgstr ""
+"Por favor, introduzca los valores válidos para todos los campos requeridos."
 
 #: ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:51
 msgid "Please provide a report folder"
-msgstr ""
+msgstr "Por favor provea una carpeta de informe"
 
 #: ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:55
 msgid "Please provide an output folder"
-msgstr ""
+msgstr "Por favor provea una carpeta de salida"
 
 #: ../../Open-ILS/src/templates/staff/cat/bucket/record/t_merge_records.tt2:26
 msgid "Please select a lead record from the right..."
@@ -3843,7 +3851,7 @@ msgstr ""
 
 #: ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:43
 msgid "Please select an item from the list"
-msgstr ""
+msgstr "Por favor seleccione un elemento de la lista"
 
 #: ../../Open-ILS/src/templates/staff/circ/patron/t_pending_list.tt2:29 ../../Open-ILS/src/templates/staff/circ/patron/t_search.tt2:106
 msgid "Post Code"
@@ -4013,15 +4021,15 @@ msgstr "Calidad"
 
 #: ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:163 ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:73
 msgid "Quarter of Year"
-msgstr ""
+msgstr "Cuarto de año"
 
 #: ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:92
 msgid "Quarter(s)"
-msgstr ""
+msgstr "Cuarto(s)"
 
 #: ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:173 ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:83
 msgid "Quarters ago"
-msgstr ""
+msgstr "Hace trimestres"
 
 #: ../../Open-ILS/src/templates/staff/cat/z3950/t_list.tt2:16
 msgid "Query"
@@ -4037,7 +4045,7 @@ msgstr "Posición en la cola"
 
 #: ../../Open-ILS/src/templates/staff/circ/patron/t_checkout.tt2:137
 msgid "Quick Receipt"
-msgstr ""
+msgstr "Recibo rápido"
 
 #: ../../Open-ILS/src/templates/staff/cat/item/t_view.tt2:9
 msgid "Quick Summary"
@@ -4045,7 +4053,7 @@ msgstr "Resumen rápido"
 
 #: ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:126 ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:146 ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:57
 msgid "Raw Data"
-msgstr ""
+msgstr "Datos sin precesar"
 
 #: ../../Open-ILS/src/templates/staff/cat/z3950/t_list.tt2:42
 msgid "Raw Search"
@@ -4065,7 +4073,7 @@ msgstr "Listo para recoger"
 
 #: ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:93
 msgid "Real Date"
-msgstr ""
+msgstr "Fecha real"
 
 #. ("{{evt_desc}}")
 #: ../../Open-ILS/src/templates/staff/cat/bucket/copy/index.tt2:19 ../../Open-ILS/src/templates/staff/cat/bucket/copy/index.tt2:25 ../../Open-ILS/src/templates/staff/cat/catalog/index.tt2:36 ../../Open-ILS/src/templates/staff/cat/item/index.tt2:33
@@ -4107,7 +4115,7 @@ msgstr "Formato de registro"
 
 #: ../../Open-ILS/src/templates/staff/cat/item/t_list.tt2:30
 msgid "Record Holds"
-msgstr ""
+msgstr "Sostiene Registro"
 
 #: ../../Open-ILS/src/templates/staff/circ/patron/t_bills_list.tt2:63
 msgid "Record ID"
@@ -4119,7 +4127,7 @@ msgstr "Registro de Uso Dentro de la Casa"
 
 #: ../../Open-ILS/src/templates/staff/cat/catalog/index.tt2:50
 msgid "Record Overlay Target set"
-msgstr ""
+msgstr "Conjunto de registros de superposición de destino"
 
 #: ../../Open-ILS/src/templates/staff/cat/share/t_record_summary.tt2:99
 msgid "Record Owner:"
@@ -4201,11 +4209,11 @@ msgstr "Registrar una nueva estación de trabajo para este ordenador"
 
 #: ../../Open-ILS/src/templates/staff/base_js.tt2:69
 msgid "Registered Patron"
-msgstr ""
+msgstr "Patrón Registrado"
 
 #: ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:94
 msgid "Relative Date"
-msgstr ""
+msgstr "Fecha relativa"
 
 #: ../../Open-ILS/src/templates/staff/cat/item/t_summary_pane.tt2:147 ../../Open-ILS/src/templates/staff/circ/patron/t_checkout.tt2:98 ../../Open-ILS/src/templates/staff/circ/renew/t_renew.tt2:101
 msgid "Remaining Renewals"
@@ -4213,7 +4221,7 @@ msgstr "Renovaciones Pendientes"
 
 #: ../../Open-ILS/src/templates/staff/admin/server/t_splash.tt2:10
 msgid "Remote Accounts"
-msgstr ""
+msgstr "Cuentas Remotas"
 
 #: ../../Open-ILS/src/templates/staff/admin/workstation/t_stored_prefs.tt2:32
 msgid "Remote Prefs"
@@ -4221,7 +4229,7 @@ msgstr "Pref Remotas"
 
 #: ../../Open-ILS/src/templates/staff/reporter/t_edit_template.tt2:166 ../../Open-ILS/src/templates/staff/reporter/t_edit_template.tt2:215
 msgid "Remove Field"
-msgstr ""
+msgstr "Eliminar campo"
 
 #: ../../Open-ILS/src/templates/staff/cat/z3950/t_list.tt2:49
 msgid "Remove Fields on Import"
@@ -4229,7 +4237,7 @@ msgstr "Quitar campos de Importación"
 
 #: ../../Open-ILS/src/templates/staff/reporter/t_edit_template.tt2:210
 msgid "Remove Filter Value"
-msgstr ""
+msgstr "Quitar Valor de Filtro"
 
 #: ../../Open-ILS/src/templates/staff/admin/workstation/t_stored_prefs.tt2:50
 msgid "Remove Item"
@@ -4326,19 +4334,19 @@ msgstr "Reemplazar TCN % 1 ..."
 
 #: ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:40
 msgid "Report"
-msgstr ""
+msgstr "Informar"
 
 #: ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:49
 msgid "Report Folders"
-msgstr ""
+msgstr "Carpetas de informes"
 
 #: ../../Open-ILS/src/templates/staff/reporter/index.tt2:1
 msgid "Reporter"
-msgstr ""
+msgstr "Reportero"
 
 #: ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:39 ../../Open-ILS/src/templates/staff/t_splash.tt2:84
 msgid "Reports"
-msgstr ""
+msgstr "Reportes"
 
 #: ../../Open-ILS/src/templates/staff/cat/catalog/t_holds.tt2:68 ../../Open-ILS/src/templates/staff/cat/item/t_holds_pane.tt2:51 ../../Open-ILS/src/templates/staff/circ/holds/t_pull_list.tt2:68 ../../Open-ILS/src/templates/staff/circ/holds/t_shelf_list.tt2:72 ../../Open-ILS/src/templates/staff/circ/patron/t_holds_list.tt2:57 ../../Open-ILS/src/templates/staff/circ/share/t_hold_details.tt2:4 ../../Open-ILS/src/templates/staff/share/print_templates/t_holds_for_bib.tt2:8
 msgid "Request Date"
@@ -4388,7 +4396,7 @@ msgstr "Reiniciar configuración"
 
 #: ../../Open-ILS/src/templates/staff/admin/actor/org_unit/t_main_tab.tt2:50
 msgid "Reset Form"
-msgstr ""
+msgstr "Reiniciar formulario"
 
 #: ../../Open-ILS/src/templates/staff/cat/catalog/t_catalog.tt2:52
 msgid "Reset Record Marks"
@@ -4429,7 +4437,7 @@ msgstr "Recuperar Bib Registro de TCN"
 
 #: ../../Open-ILS/src/templates/staff/admin/workstation/t_log.tt2:20 ../../Open-ILS/src/templates/staff/admin/workstation/t_log.tt2:46
 msgid "Retrieve Item"
-msgstr ""
+msgstr "Obtener elemento"
 
 #: ../../Open-ILS/src/templates/staff/navbar.tt2:205 ../../Open-ILS/src/templates/staff/navbar.tt2:213 ../../Open-ILS/src/templates/staff/navbar.tt2:215
 msgid "Retrieve Last Bib Record"
@@ -4453,7 +4461,7 @@ msgstr "Recuperar Clientes Seleccionados"
 
 #: ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:176 ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:86
 msgid "Round"
-msgstr ""
+msgstr "Ronda"
 
 #: ../../Open-ILS/src/templates/staff/circ/checkin/t_checkin_table.tt2:59
 msgid "Route To"
@@ -4486,7 +4494,7 @@ msgstr "Operadora de SMS"
 
 #: ../../Open-ILS/src/templates/staff/admin/server/t_splash.tt2:10
 msgid "SMS Carriers"
-msgstr ""
+msgstr "Los portadores de SMS"
 
 #: ../../Open-ILS/src/templates/staff/circ/share/t_hold_details.tt2:44
 msgid "SMS Notify"
@@ -4518,11 +4526,11 @@ msgstr "Guardar Localmente"
 
 #: ../../Open-ILS/src/templates/staff/reporter/t_edit_template.tt2:30
 msgid "Save Template"
-msgstr ""
+msgstr "Guardar plantilla"
 
 #: ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:142 ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:5
 msgid "Save Template?"
-msgstr ""
+msgstr "Guardar plantilla?"
 
 #: ../../Open-ILS/src/templates/staff/cat/z3950/t_list.tt2:26
 msgid "Save as Default"
@@ -4554,7 +4562,7 @@ msgstr "Buscar Patrón Por Nombre"
 
 #: ../../Open-ILS/src/templates/staff/t_splash.tt2:43
 msgid "Search catalog for..."
-msgstr ""
+msgstr "Buscar en el Catálogo de..."
 
 #: ../../Open-ILS/src/templates/staff/navbar.tt2:50
 msgid "Search for Copies by Barcode"
@@ -4596,7 +4604,7 @@ msgstr "Ver a partir de: 1%"
 
 #: ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:45
 msgid "Select"
-msgstr ""
+msgstr "Seleccionar"
 
 #: ../../Open-ILS/src/templates/staff/circ/share/t_hold_edit_pickup_lib.tt2:11
 msgid "Select Library:"
@@ -4608,7 +4616,7 @@ msgstr "Seleccione la plantilla MARC"
 
 #: ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:8
 msgid "Select Operator"
-msgstr ""
+msgstr "Seleccione el operador"
 
 #: ../../Open-ILS/src/templates/staff/share/t_autogrid.tt2:123
 msgid "Select Page"
@@ -4628,7 +4636,7 @@ msgstr "Seleccione cuento de filas"
 
 #: ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:7
 msgid "Select Transform"
-msgstr ""
+msgstr "Seleccione Transformar"
 
 #: ../../Open-ILS/src/templates/staff/t_login.tt2:38
 msgid "Select Workstation"
@@ -4636,7 +4644,7 @@ msgstr "Seleccione la estación de trabajo"
 
 #: ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:132
 msgid "Select the value, or cancel:"
-msgstr ""
+msgstr "Seleccione el valor, o cancelar:"
 
 #: ../../Open-ILS/src/templates/staff/circ/patron/t_bill_history.tt2:21
 msgid "Selected Billed:"
@@ -4648,7 +4656,7 @@ msgstr "Seleccionado Pagado:"
 
 #: ../../Open-ILS/src/templates/staff/circ/patron/t_checkout.tt2:134
 msgid "Send Email Receipt"
-msgstr ""
+msgstr "Enviar Recibo de Correo Electronico"
 
 #: ../../Open-ILS/src/templates/staff/circ/share/t_hold_notification_prefs.tt2:22
 msgid "Send Emails"
@@ -4660,7 +4668,7 @@ msgstr "Series"
 
 #: ../../Open-ILS/src/templates/staff/admin/server/index.tt2:1 ../../Open-ILS/src/templates/staff/admin/server/t_splash.tt2:4 ../../Open-ILS/src/templates/staff/navbar.tt2:279
 msgid "Server Administration"
-msgstr ""
+msgstr "Administración del Servidor"
 
 #: ../../Open-ILS/src/templates/staff/cat/z3950/t_list.tt2:130
 msgid "Service"
@@ -4728,7 +4736,7 @@ msgstr "Breve"
 
 #: ../../Open-ILS/src/templates/staff/admin/actor/org_unit/t_main_tab.tt2:14
 msgid "Short Name"
-msgstr ""
+msgstr "Nombre Corto"
 
 #: ../../Open-ILS/src/templates/staff/cat/catalog/t_holdings.tt2:45 ../../Open-ILS/src/templates/staff/cat/catalog/t_holdings.tt2:47 ../../Open-ILS/src/templates/staff/cat/catalog/t_holdings.tt2:49 ../../Open-ILS/src/templates/staff/cat/catalog/t_holdings.tt2:51 ../../Open-ILS/src/templates/staff/cat/item/t_list.tt2:25 ../../Open-ILS/src/templates/staff/cat/item/t_list.tt2:27 ../../Open-ILS/src/templates/staff/cat/item/t_list.tt2:29
 msgid "Show"
@@ -4853,11 +4861,11 @@ msgstr "Grabaciones de sonido"
 
 #: ../../Open-ILS/src/templates/staff/circ/transits/t_list.tt2:49
 msgid "Source Library"
-msgstr ""
+msgstr "Orígen de Biblioteca"
 
 #: ../../Open-ILS/src/templates/staff/reporter/t_edit_template.tt2:172 ../../Open-ILS/src/templates/staff/reporter/t_edit_template.tt2:221 ../../Open-ILS/src/templates/staff/reporter/t_edit_template.tt2:79
 msgid "Source Path"
-msgstr ""
+msgstr "Ruta origen"
 
 #: ../../Open-ILS/src/templates/staff/share/print_templates/t_bill_payment.tt2:48
 msgid "Specific Bills"
@@ -4873,7 +4881,7 @@ msgstr "Subcampos de pila"
 
 #: ../../Open-ILS/src/templates/staff/admin/workstation/t_log.tt2:31 ../../Open-ILS/src/templates/staff/admin/workstation/t_log.tt2:57
 msgid "Staff"
-msgstr ""
+msgstr "Personal administrativo"
 
 #: ../../Open-ILS/src/templates/staff/circ/share/t_hold_details.tt2:88
 msgid "Staff Created"
@@ -4901,7 +4909,7 @@ msgstr "Fecha de Inicio:"
 
 #: ../../Open-ILS/src/templates/staff/circ/transits/t_list.tt2:19
 msgid "Start Date: "
-msgstr ""
+msgstr "Fecha de inicio: "
 
 #: ../../Open-ILS/src/templates/staff/circ/patron/t_search.tt2:101
 msgid "State"
@@ -4961,7 +4969,7 @@ msgstr "Someter Bill"
 
 #: ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:153
 msgid "Substring"
-msgstr ""
+msgstr "Subcadena"
 
 #: ../../Open-ILS/src/templates/staff/circ/patron/t_credentials.tt2:50
 msgid "Succes testing credentials"
@@ -4969,7 +4977,7 @@ msgstr "Éxito de pruebas de credenciales"
 
 #: ../../Open-ILS/src/templates/staff/admin/workstation/t_splash.tt2:108
 msgid "Success"
-msgstr ""
+msgstr "Éxito"
 
 #: ../../Open-ILS/src/templates/staff/cat/catalog/t_holdings.tt2:103 ../../Open-ILS/src/templates/staff/cat/volcopy/t_attr_edit.tt2:66 ../../Open-ILS/src/templates/staff/cat/volcopy/t_edit.tt2:48
 msgid "Suffix"
@@ -4981,7 +4989,7 @@ msgstr "Campos Sugeridos"
 
 #: ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:174 ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:84
 msgid "Sum"
-msgstr ""
+msgstr "Suma"
 
 #: ../../Open-ILS/src/templates/staff/circ/checkin/t_checkin.tt2:161 ../../Open-ILS/src/templates/staff/circ/checkin/t_checkin.tt2:18
 msgid "Suppress Holds and Transits"
@@ -5014,7 +5022,7 @@ msgstr "TCN:"
 
 #: ../../Open-ILS/src/templates/staff/admin/server/config/marc_field.tt2:46
 msgid "Tag"
-msgstr ""
+msgstr "Etiqueta"
 
 #: ../../Open-ILS/src/templates/staff/cat/catalog/t_choose_vol_target_lib.tt2:10
 msgid "Target library:"
@@ -5026,7 +5034,7 @@ msgstr "Plantilla"
 
 #: ../../Open-ILS/src/templates/staff/reporter/t_edit_template.tt2:21
 msgid "Template Description"
-msgstr ""
+msgstr "Descripción de la plantilla"
 
 #: ../../Open-ILS/src/templates/staff/admin/workstation/t_print_templates.tt2:12 ../../Open-ILS/src/templates/staff/reporter/t_edit_template.tt2:6
 msgid "Template Name"
@@ -5034,15 +5042,15 @@ msgstr "Nombre de la plantilla"
 
 #: ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:144
 msgid "Template save failed."
-msgstr ""
+msgstr "Plantilla no pudo guardar."
 
 #: ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:143
 msgid "Template was successfully saved."
-msgstr ""
+msgstr "La plantilla se ha guardado correctamente"
 
 #: ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:37
 msgid "Templates"
-msgstr ""
+msgstr "Plantillas"
 
 #: ../../Open-ILS/src/templates/staff/admin/workstation/t_print_config.tt2:158
 msgid "Test HTML Print"
@@ -5079,11 +5087,11 @@ msgstr "El cubo seleccionado \"{{bucketId}}\" no es visible a esta entrada."
 #. ("{{num_hold_transits}}")
 #: ../../Open-ILS/src/templates/staff/circ/share/t_abort_transit_dialog.tt2:21
 msgid "There are %1 associated holds."
-msgstr ""
+msgstr "Hay% 1 asociado sostiene"
 
 #: ../../Open-ILS/src/templates/staff/circ/share/t_abort_transit_dialog.tt2:20
 msgid "There is 1 associated hold."
-msgstr ""
+msgstr "Existe retención de 1 asociado."
 
 #. ("{{transit.target_copy().barcode()}}")
 #: ../../Open-ILS/src/templates/staff/circ/share/t_copy_in_transit_dialog.tt2:9
@@ -5281,7 +5289,7 @@ msgstr ""
 
 #: ../../Open-ILS/src/templates/staff/reporter/t_edit_template.tt2:110
 msgid "Transform"
-msgstr ""
+msgstr "Transformar"
 
 #: ../../Open-ILS/src/templates/staff/circ/share/t_copy_in_transit_dialog.tt2:14
 msgid "Transit Date:"
@@ -5297,7 +5305,7 @@ msgstr "Destino de Tránsito:"
 
 #: ../../Open-ILS/src/templates/staff/circ/transits/list.tt2:1 ../../Open-ILS/src/templates/staff/circ/transits/t_list.tt2:3
 msgid "Transit List"
-msgstr ""
+msgstr "Lista de tránsitos"
 
 #: ../../Open-ILS/src/templates/staff/cat/item/t_holds_pane.tt2:119
 msgid "Transit Receive Time"
@@ -5321,11 +5329,11 @@ msgstr "Fuente de Tránsito:"
 
 #: ../../Open-ILS/src/templates/staff/circ/transits/t_list.tt2:11
 msgid "Transits From"
-msgstr ""
+msgstr "Forma tránsitos"
 
 #: ../../Open-ILS/src/templates/staff/circ/transits/t_list.tt2:10
 msgid "Transits To"
-msgstr ""
+msgstr "Tránsitos a"
 
 #: ../../Open-ILS/src/templates/staff/cat/catalog/t_holdings.tt2:50 ../../Open-ILS/src/templates/staff/cat/item/t_list.tt2:26 ../../Open-ILS/src/templates/staff/cat/item/t_view.tt2:24
 msgid "Triggered Events"
@@ -5341,7 +5349,7 @@ msgstr "Lista de Ajuste (20 Filas)"
 
 #: ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:133
 msgid "True"
-msgstr ""
+msgstr "Verdadero"
 
 #: ../../Open-ILS/src/templates/staff/circ/patron/t_last_patron.tt2:5
 msgid "Try Patron Search"
@@ -5418,7 +5426,7 @@ msgstr "Tiempo de actualización de caducidad"
 
 #: ../../Open-ILS/src/templates/staff/admin/actor/org_unit/t_main_tab.tt2:57
 msgid "Update Org"
-msgstr ""
+msgstr "Actualizar Org"
 
 #: ../../Open-ILS/src/templates/staff/circ/share/t_hold_dates.tt2:32 ../../Open-ILS/src/templates/staff/circ/share/t_hold_notification_prefs.tt2:31
 msgid "Update Phone Number"
@@ -5442,7 +5450,7 @@ msgstr "Subir un archivo"
 
 #: ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:155 ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:65
 msgid "Upper case"
-msgstr ""
+msgstr "Mayúsculas"
 
 #: ../../Open-ILS/src/templates/staff/cat/z3950/t_edit_overlay_record.tt2:13
 msgid "Use Edits"
@@ -5466,7 +5474,7 @@ msgstr "Utilice esta autoridad"
 
 #: ../../Open-ILS/src/templates/staff/admin/server/t_splash.tt2:10
 msgid "User Activity Types"
-msgstr ""
+msgstr "Tipos de Actividad del Usuario"
 
 #: ../../Open-ILS/src/templates/staff/cat/catalog/t_request_items.tt2:11 ../../Open-ILS/src/templates/staff/cat/catalog/t_request_items.tt2:13
 msgid "User Barcode"
@@ -5478,7 +5486,7 @@ msgstr "Editor de permisos de usuarios"
 
 #: ../../Open-ILS/src/templates/staff/admin/server/t_splash.tt2:10
 msgid "User Setting Types"
-msgstr ""
+msgstr "Tipos de usuario Marco"
 
 #: ../../Open-ILS/src/templates/staff/circ/patron/t_edit.tt2:556
 msgid "User Settings"
@@ -5506,7 +5514,7 @@ msgstr "Valor..."
 
 #: ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:141
 msgid "Value:"
-msgstr ""
+msgstr "Valor:"
 
 #: ../../Open-ILS/src/templates/staff/circ/patron/t_credentials.tt2:40
 msgid "Verify"
@@ -5518,7 +5526,7 @@ msgstr "Verificar credenciales"
 
 #: ../../Open-ILS/src/templates/staff/circ/patron/index.tt2:50
 msgid "Verify Payment Amount"
-msgstr ""
+msgstr "Verificar cantidad de pago"
 
 #: ../../Open-ILS/src/templates/staff/cat/catalog/t_catalog.tt2:77
 msgid "View Holds"
@@ -5558,7 +5566,7 @@ msgstr "Transferir Volumen"
 
 #: ../../Open-ILS/src/templates/staff/cat/catalog/index.tt2:46
 msgid "Volume Transfer Target set"
-msgstr ""
+msgstr "Volumen determinado objetivo de transferencia"
 
 #: ../../Open-ILS/src/templates/staff/cat/catalog/t_holdings.tt2:61
 msgid "Volume as Item Transfer Destination"
@@ -5566,7 +5574,7 @@ msgstr "Volumen como Transferencia de elementos del Destino"
 
 #: ../../Open-ILS/src/templates/staff/cat/catalog/index.tt2:38
 msgid "Volume(s) transfered"
-msgstr ""
+msgstr "Volumen(s) transferido"
 
 #: ../../Open-ILS/src/templates/staff/cat/volcopy/t_defaults.tt2:6
 msgid "Volume/Copy Detail defaults"
@@ -5586,7 +5594,7 @@ msgstr "Volúmenes y Copias"
 
 #: ../../Open-ILS/src/templates/staff/cat/item/t_list.tt2:40 ../../Open-ILS/src/templates/staff/cat/item/t_list.tt2:47
 msgid "Volumes and Items"
-msgstr ""
+msgstr "Volúmenes y artículos"
 
 #: ../../Open-ILS/src/templates/staff/cat/catalog/t_holdings.tt2:87
 msgid "Volumes to Previously Marked Library"
@@ -5610,15 +5618,15 @@ msgstr "Esperando la copia"
 
 #: ../../Open-ILS/src/templates/staff/admin/workstation/t_splash.tt2:112
 msgid "Warning"
-msgstr ""
+msgstr "Advertencia"
 
 #: ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:161 ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:71
 msgid "Week of Year"
-msgstr ""
+msgstr "Semana del Año"
 
 #: ../../Open-ILS/src/templates/staff/admin/server/t_splash.tt2:10
 msgid "Weights Association"
-msgstr ""
+msgstr "Asociación de cargos"
 
 #. ("{{current_location.name}}")
 #: ../../Open-ILS/src/templates/staff/share/print_templates/t_checkin.tt2:2 ../../Open-ILS/src/templates/staff/share/print_templates/t_checkout.tt2:2 ../../Open-ILS/src/templates/staff/share/print_templates/t_holds_for_patron.tt2:2 ../../Open-ILS/src/templates/staff/share/print_templates/t_items_out.tt2:2 ../../Open-ILS/src/templates/staff/share/print_templates/t_renew.tt2:2
@@ -5631,7 +5639,7 @@ msgstr "Bienvenido, Extraño!"
 
 #: ../../Open-ILS/src/templates/staff/admin/workstation/t_log.tt2:30 ../../Open-ILS/src/templates/staff/admin/workstation/t_log.tt2:56
 msgid "When"
-msgstr ""
+msgstr "Cuándo"
 
 #: ../../Open-ILS/src/templates/staff/cat/catalog/index.tt2:26 ../../Open-ILS/src/templates/staff/cat/item/index.tt2:23
 msgid "Will delete {{copies}} copies and {{volumes}} volumes"
@@ -5651,11 +5659,11 @@ msgstr "Trabajo"
 
 #: ../../Open-ILS/src/templates/staff/admin/workstation/log.tt2:1 ../../Open-ILS/src/templates/staff/admin/workstation/t_log.tt2:3
 msgid "Work Log"
-msgstr ""
+msgstr "Registro de trabajo"
 
 #: ../../Open-ILS/src/templates/staff/base_js.tt2:74
 msgid "Work Payment"
-msgstr ""
+msgstr "Pago de Trabajo"
 
 #: ../../Open-ILS/src/templates/staff/cat/volcopy/t_edit.tt2:85
 msgid "Working Copies"
@@ -5691,15 +5699,15 @@ msgstr "X"
 
 #: ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:167 ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:77
 msgid "Year"
-msgstr ""
+msgstr "Año"
 
 #: ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:166 ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:76
 msgid "Year + Month"
-msgstr ""
+msgstr "Año + Mes"
 
 #: ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:91
 msgid "Year(s)"
-msgstr ""
+msgstr "Año(s)"
 
 #: ../../Open-ILS/src/templates/staff/cat/volcopy/t_attr_edit.tt2:105 ../../Open-ILS/src/templates/staff/cat/volcopy/t_attr_edit.tt2:150 ../../Open-ILS/src/templates/staff/cat/volcopy/t_attr_edit.tt2:186 ../../Open-ILS/src/templates/staff/cat/volcopy/t_attr_edit.tt2:272 ../../Open-ILS/src/templates/staff/cat/volcopy/t_attr_edit.tt2:302
 msgid "Yes"
@@ -5718,12 +5726,16 @@ msgid ""
 "You have already added this field. Click OK if you would like to reset this "
 "field."
 msgstr ""
+"Ya ha añadido este campo. Haga cliq en OK si desea restablecer este campo."
 
 #: ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:121
 msgid ""
 "You have started building a template! Selecting a new starting source will "
 "destroy the current template and start over.  Is this OK?"
 msgstr ""
+"Usted ha comenzado la construcción de una plantilla! Selecciónar de una "
+"nueva fuente de partida va a destruir la plantilla actual y empezar de "
+"nuevo. ¿Esta bien?"
 
 #: ../../Open-ILS/src/templates/staff/share/print_templates/t_items_out.tt2:3
 msgid "You have the following items:"
@@ -5748,11 +5760,11 @@ msgstr "Z39.50"
 
 #: ../../Open-ILS/src/templates/staff/admin/server/t_splash.tt2:10
 msgid "Z39.50 Index Field Maps"
-msgstr ""
+msgstr "Mapas Z39.50 Campo De Indice"
 
 #: ../../Open-ILS/src/templates/staff/admin/server/t_splash.tt2:10
 msgid "Z39.50 Servers"
-msgstr ""
+msgstr "Los servidores Z39.50"
 
 #: ../../Open-ILS/src/templates/staff/navbar.tt2:39
 msgid "alt+s"
@@ -5788,11 +5800,11 @@ msgstr "f8"
 
 #: ../../Open-ILS/src/templates/staff/reporter/share/report_strings.tt2:54
 msgid "invalid start date -  YYYY-MM-DD"
-msgstr ""
+msgstr "fecha inicial inválida -  AAAA-MM-DD"
 
 #: ../../Open-ILS/src/templates/staff/circ/patron/t_checkout.tt2:140 ../../Open-ILS/src/templates/staff/circ/patron/t_checkout.tt2:154
 msgid "receipt option"
-msgstr ""
+msgstr "opción de recibo"
 
 #: ../../Open-ILS/src/templates/staff/navbar.tt2:109
 msgid "shift+f1"

-----------------------------------------------------------------------


hooks/post-receive
-- 
Evergreen ILS


More information about the open-ils-commits mailing list