]> git.evergreen-ils.org Git - Evergreen.git/blob - docs/RELEASE_NOTES_2_10.adoc
Translation updates - po files, part 2
[Evergreen.git] / docs / RELEASE_NOTES_2_10.adoc
1 Evergreen 2.10 Release Notes
2 ============================
3 :toc:
4 :numbered:
5
6 Evergreen 2.10.5
7 ----------------
8 This release contains bugfixes improving on Evergreen 2.10.4
9
10 * Fixes SIP2 failures with patron information messages when a
11 patron has one or more blocking penalties that are not otherwise
12 ignored.
13 * Recovers a previously existing activity log entry that logged the
14 username, authtoken, and workstation (when available) for successful
15 logins.
16 * Fixes an error that occurred when the system attempted to display a translated
17 string for the "Has Local Copy" hold placement error message.
18 * Fixes an issue where the Show More/Show Fewer Details button didn't work in
19 catalogs that default to showing more details.
20 * Removes Social Security Number as a stock patron identification type for
21 new installations. This fix does not change patron identification types for 
22 existing Evergreen systems.
23 * Adds two missing link fields (patron profile and patron home library) to
24 the fm_idl.xml for the Combined Active and Aged Circulations (combcirc)
25 reporter source.
26 * Adds a performance improvement for the "Clear Holds Shelf" checkin modifier.
27
28 Acknowledgements
29 ~~~~~~~~~~~~~~~~
30 We would like to thank the following individuals who contributed
31 code, testing and documentation patches to the 2.10.5 point release of Evergreen:
32
33 * Galen Charlton
34 * Bill Erickson
35 * Jeff Godin
36 * Codey Kolasinski
37 * Jeanette Lundgren
38 * Kathy Lussier
39 * Terran McCanna
40 * Michele Morgan
41 * Jason Stephenson
42
43 Evergreen 2.10.4
44 ----------------
45 This release contains bugfixes improving on Evergreen 2.10.3
46
47 * Fixes the responsive view of the My Account Items Out screen so that Title and
48 Author are now in separate columns.
49 * Fixes an incorrect link for the MVF field definition and adds a new link to
50 BRE in fm_IDL.xml.
51 * Fixes a bug where the MARC stream authority cleanup deleted a bib 
52 record instead of an authority record from the authority queue.
53 * Fixes a bug where Action Triggers could select an inactive event
54 definition when running.
55 * Eliminates the output of a null byte after a spool file is processed
56 in MARC steam importer.
57 * Fixes an issue where previously-checked-out items did not display in
58 metarecord searches when the Tag Circulated Items Library Setting is
59 enabled.
60 * Fixes an issue in the 0951 upgrade script where the script was not
61 inserting the version into config.upgrade_log because the line to do so
62 was still commented out.
63
64 Acknowledgments
65 ~~~~~~~~~~~~~~~
66 We would like to thank the following individuals who contributed
67 code, testing, and documentation patches to the 2.10.4 point release
68 of Evergreen:
69
70 * Jason Boyer
71 * Bill Erickson
72 * Galen Charlton
73 * Kathy Lussier
74 * Jason Stephenson
75 * Josh Stompro
76
77
78 Evergreen 2.10.3
79 ----------------
80 This release contains bugfixes improving on Evergreen 2.10.2:
81
82 * Fixes a critical bug where a newly-registered patron record could
83   not be used to log in to Evergreen using the password supplied during
84   registration. Under some circumstances, the same bug could also
85   prevent patron records that were modified via the patron registration
86   form from being used to log in.
87 * Emails sent using the Action Trigger SendEmail reactor now always
88   MIME-encode the From, To, Subject, Bcc, Cc, Reply-To, and Sender
89   headers. As a consequence, non-ASCII character in those fields are
90   more likely to be displayed correctly in email clients.
91
92 Acknowledgements
93 ~~~~~~~~~~~~~~
94 We would like to thank the following individuals who contributed
95 code, testing, and documentation patches to the 2.10.3 point release
96 of Evergreen:
97
98 * Galen Charlton
99 * Pasi Kallinen
100 * Kathy Lussier
101 * Mike Rylander
102 * Dan Scott
103 * Remington Steed
104 * Dan Wells
105
106 Evergreen 2.10.2
107 ----------------
108 This release contains several bugfixes improving on Evergreen 2.10.1
109
110 * Fixes a bug where phrase searching in the catalog failed when the phrase
111 started or ended with punctuation.
112 * Fixes a bug where changing the sort order in the public catalog to
113 "relevance" could fail.
114 * Fixes a bug that prevented users from recreating a monograph part that
115 had previously been deleted.
116 * Fixes a bug where serials checkouts failed for users that track circulation
117 history.
118 * Fixes a bug that prevented the Library Settings Editor from
119 consistently retrieving the values of library settings.
120 * Fixes several issues with the new web-based Angular patron editor, including:
121 ** Allows barcodes to be used as user name even if it doesn't match the user
122 name regex.
123 ** Presents an alert when trying to save a form with invalid values.
124 ** Allows staff to delete all patron addresses if the corresponding Library 
125 Setting allows them to do so.
126 ** Honors Library Settings to require the county and state fields at patron
127 registration time.
128 ** Resizes checkboxes that had become huge in some browsers.
129 ** Displays the New Address button at all times.
130 ** Prevents staff from editing linked addresses for cloned users.
131 ** Fixes a bug where out-of-scope stat cats would be incorrectly bundled in the 
132 patron save operation, resulting in a server-side error on save.
133 * Silences unnecessary warnings emitted for libraries using extending grace
134 periods.
135 * Removes support for Debian Squeeze now that its long-term support period
136 has ended.
137 * Fixes a bug that had prevented the dependency libpcre3 from being
138 intalled on Debian Jessie.
139 * Fixes some QA tests that had been failing.
140 * Renumbers the Perl unit test files.
141
142 Acknowledgements
143 ~~~~~~~~~~~~~~~~
144 We would like to thank the following individuals who contributed
145 code and documentation patches to the 2.10.2 point release of Evergreen:
146
147 * Jason Boyer
148 * Steve Callender
149 * Galen Charlton
150 * Bill Erickson
151 * Anna Goben
152 * Angela Kilsdonk
153 * Debbie Luchenbill
154 * Jennifer Pringle
155 * Mike Rylander
156 * Jane Sandberg
157 * Jason Stephenson
158 * Yamil Suarez
159
160 We also thank the following organizations whose employees contributed
161 patches:
162
163 * BC Libraries Cooperative
164 * Berklee College of Music
165 * Equinox Software, Inc.
166 * Evergreen Indiana
167 * King County Library System
168 * Linn Libraries Consortium
169 * Merrimack Valley Library Consortium
170 * MOBIUS
171
172
173 Evergreen 2.10.1
174 ----------------
175
176 Evergreen 2.10.1 is a bugfix release that fixes one significant
177 bug in 2.10.0:
178
179 * https://bugs.launchpad.net/bugs/1560174[Bug 1560174: Importing MARC records can fail in database upgraded to 2.10.0]
180
181 This bug affected only databases that were upgraded to 2.10.0 from a
182 previous version; fresh installations of 2.10.0 are not affected.
183
184 Evergreen users who prefer not to perform a full upgrade from 2.10.0
185 to 2.10.1 can fix the bug by applying the database update script
186 `2.10.0-2.10.1-upgrade-db.sql` (found in the source directory
187 `Open-ILS/src/sql/Pg/version-upgrade`).
188
189 Evergreen 2.10.1 Acknowledgments
190 --------------------------------
191 The Evergreen project would like to thank the following 
192 individuals who contributed code and testing to this release
193 of Evergreen:
194
195  * Galen Charlton
196  * Dan Wells
197
198 Evergreen 2.10.0 Upgrade notes
199 ------------------------------
200
201 * Support for PostgreSQL 9.1 is deprecated as of
202   the release of Evergreen 2.10.0. Users are recommended
203   to install Evergreen on PostgreSQL 9.2 or later.
204 * In the next major release following 2.10.0, Evergreen will no
205   longer officially support PostgreSQL 9.1.
206 * Please read the release notes thoroughly for information
207   about changes that Evergreen administrators may need
208   to make manually when upgrading to 2.10.0.  In particular,
209   the enhancement to user password storage introduces a
210   new service, `open-ils.auth_internal`, and requires
211   changes to `opensrf.xml` in order for users to be able
212   log in.
213
214 Evergreen 2.10.0 New Features
215 -----------------------------
216
217
218
219 Acquisitions
220 ~~~~~~~~~~~~
221
222
223
224 PO Line item "paid" label
225 ^^^^^^^^^^^^^^^^^^^^^^^^^
226 A new "paid" label appears along the bottom of each line item in the PO 
227 display when every non-canceled copy on the line item has been invoiced.
228
229
230
231
232 Disencumber funds on invoice close
233 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
234
235 Fund debits linked to an invoice are now marked as paid (encumbrance=false)
236 when the invoice is marked as closed/complete instead of at invoice create
237 time.  This is particularly useful for EDI invoices which may be 
238 created well in advance of receipt and payment.
239
240
241
242
243
244 PO actions selector always visible
245 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
246
247 The actions selector is now always visible in the purchase order view,
248 even when no line items exist.  With this, users can print PO's that
249 only contain direct charges.
250
251 The custom "Add Brief Record" button is no longer present, since the
252 same action is accessible via the now-visible selector.
253
254
255
256
257 Administration
258 ~~~~~~~~~~~~~~
259
260
261
262 Set application name when connecting to database
263 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
264 The services that connect directly to the PostgreSQL database
265 (and Clark Kent) now look for an application_name parameter
266 as part of the database login credentials specified in
267 `opensrf.xml`.  If present, the value is used to set the
268 application name Pg connection value; this in turn shows up in
269 the Postgres `pg_stat_activity` table and Pg's logs.
270
271
272
273
274 Credit card receipts and privacy
275 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
276
277 To improve privacy and security, Evergreen now stores less data 
278 about credit card transactions.  The following fields are no 
279 longer stored:
280
281  * `cc_type`
282  * `cc_first_name`
283  * `cc_last_name`
284  * `expire_month`
285  * `expire_year`
286
287 NOTE: All existing data within these fields will be deleted during
288 the upgrade.  Reports using this data will no longer function.
289
290 Additionally, a tool has been added to Evergreen for clearing the 
291 last 4 digits of the credit payment from the database after payments
292 reach a certain age.
293
294 Print/email templates
295 +++++++++++++++++++++
296
297 The stock print and email payment templates have been modified to no 
298 longer use these fields, but only when the existing templates matched
299 the stock templates.  If local changes have been applied, it will
300 be necessary to modify local templates to avoid referencing these
301 fields which no longer exist.
302
303 Any templates whose hook is "money.format.payment_receipt.print" or 
304 "money.format.payment_receipt.email" may need modification.  In stock
305 Evergreen, these are templates:
306
307 1. "money.payment_receipt.email" (stock id 29)
308 2. "money.payment_receipt.print" (stock id 30)
309
310 Example diff:
311
312 [source,diff]
313 ---------------------------------------------
314 -  [% CASE "credit_card_payment" %]credit card (
315 -      [%- SET cc_chunks = mp.credit_card_payment.cc_number.replace(' ','').chunk(4); -%]
316 -      [%- cc_chunks.slice(0, -1+cc_chunks.max).join.replace('\S','X') -%] 
317 -      [% cc_chunks.last -%]
318 -      exp [% mp.credit_card_payment.expire_month %]/[% mp.credit_card_payment.expire_year -%]
319 -  )
320 +  [% CASE "credit_card_payment" %]credit card
321 +  [%- IF mp.credit_card_payment.cc_number %] ([% mp.credit_card_payment.cc_number %])[% END %]
322 ---------------------------------------------
323
324 Clearing the last 4 of the CC number
325 ++++++++++++++++++++++++++++++++++++
326
327 To activate automatic CC number clearing, add the following to opensrf's
328 crontab.  Change timing to suit.
329
330 [source,sh]
331 ---------------------------------------------
332 5  4  * * *   . ~/.bashrc && $EG_BIN_DIR/clear_cc_number.srfsh
333 ---------------------------------------------
334
335 The default retention age is 1 year, but this can be changed by modifying
336 `clear_cc_number.srfsh` (typically found in `/openils/bin/`).  Replace "1 year"
337 with the age of your choice.
338
339
340
341
342
343
344 Configure multiple telephony servers via action/trigger
345 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
346 If you are using the AstCall action/trigger reactor
347 to generate callfiles to send to an Asterisk server, until
348 now the only place to specify the relevant configuration
349 was in `opensrf.xml`. However, this restricted an Evergreen
350 consortium to using only one Asterisk instance.
351
352 Now, the telephony parameters can also be specified as 
353 A/T event parameters, allowing per-library configuration.
354
355 .Telephony parameters
356 |===
357 | Name | Example value
358
359 | enabled
360 | 0
361
362 | driver
363 | "SIP"
364
365 | channels
366 | ["Zap/1", "Zap/2", "IAX/user:secret@widgets.biz"]
367
368 | host
369 | "localhost"
370
371 | port
372 | "10080"
373
374 | user
375 | "evergreen"
376
377 | pw
378 | "evergreen"
379
380 | callfile_lines
381 | ["MaxRetries: 3", "RetryTime: 60", "WaitTime: 30", "Archive: 1", "Extension: 10"]
382 |===
383
384
385
386
387 Juvenile-to-adult batch script honors library setting
388 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
389
390 The batch `juv_to_adult.srfsh` script that, when set up as a cronjob,
391 is responsible for toggling a patron from juvenile to adult now
392 honors the age value set in the library setting named "Juvenile Age
393 Threshold" (`global.juvenile_age_threshold`).  When no library setting value
394 is present at a given patron's home library, the value passed in to the
395 script will be used as a default.
396
397
398
399
400 New reporting source for hold/copy ratios
401 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
402 A new reporting source is added, "Hold/Copy Ratio per Bib
403 and Pickup Library (and Descendants)", that, for each bib
404 that has a hold request on it or any of its components,
405 calculates the following:
406
407  * active holds at each OU (including the OU's descendants)
408  * holdable copies at each OU (and its descendants)
409  * the ratio of the above two counts
410  * counts and ratio across the entire consortium
411
412 This source differs from the "Hold/Copy Ratio per Bib
413 and Pickup Library" source by including all descendants
414 of the organization unit one is filtering on.
415
416 One use case is allowing a multi-branch system within an
417 Evergreen consortium that doesn't do full resource sharing
418 to readily calculate whether additional copies should be
419 purchased for that system.
420
421
422
423
424 New patron action/trigger notice
425 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
426
427 A new action/trigger event definition ("New User Created Welcome Notice") 
428 has been added that will allow you to send a notice after a new patron has 
429 been created, based on the actor.usr create-date field.
430
431 This notice can be used for various tasks.
432
433   * Sending a welcome email to new patrons to market library services.
434   * Confirm that a new patron email address is correct.
435   * Generate postal notices to send a welcome packet to new patrons.
436
437 Enable this event in the staff client at *Admin* -> *Local Administration* 
438 -> *Notifications / Action Triggers*.
439
440
441
442
443 Improved password management and authentication
444 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
445 Evergreen user passwords are now stored with additional layers of 
446 encryption and may only be accessed directly by the database, not
447 the application layer.
448
449 All API changes are backwards compatible with existing 3rd-party
450 clients.
451
452 Migrating passwords
453 +++++++++++++++++++
454
455 Passwords are migrated for each user automatically the first time a user
456 logs in under the new setup.  However, it is also possible to force
457 password migration for a given user via a database function:
458
459 [source,sql]
460 ------------------------------------------------------------
461 -- actor.migrate_passwd() will only migrate un-migrated 
462 -- accounts, but it's faster to avoid any re-migration attempts.
463 SELECT actor.migrate_passwd(au.id)
464 FROM actor.usr au
465     LEFT JOIN actor.passwd pw ON (pw.usr = au.id)
466 WHERE pw.usr IS NULL; 
467 ------------------------------------------------------------
468
469 Using this, admins could perform manual batch updates to force all
470 users to use the new, more secure passwords, regardless of when or
471 whether a patron logs back into the system.  
472
473 Beware that doing this for all users in a large database will 
474 take some time and should probably be performed in batches.
475
476 Changing Encryption Work Factor
477 +++++++++++++++++++++++++++++++
478
479 Roughly speaking, the 'work factor' determines the amount of time/effort
480 required to crack passwords.  The higher the value, the more secure the
481 password.  Higher values also mean that it takes longer for password
482 verification (e.g. during login) to work.
483
484 At time of release, Evergreen uses a work factor value of 10.  The value
485 is set in the database table/column actor.passwd_type.iter_count (hash
486 iteration count).  When this value is modified, any passwords created or
487 modified after the change will use the new work factor.  Other passwords
488 will continue using the work factor in place when they were
489 created/modified, until they are changed once again.
490
491 Beware that raising the work factor can have a significant impact on
492 login speeds.  A work factor of 10 requires ~0.1 seconds to verify a
493 password.  A work factor of 15 takes almost 2 full seconds!  Also beware
494 that once a password is encoded with a higher work factor, it cannot be
495 lowered again through any automatic means.  The owner of the password
496 would have to log in and modify the password after the work factor is
497 re-lowered.
498
499 Because of this, it's recommended that admins thoroughly test work
500 factor modifications before deploying to production.
501
502 To check encryption timing:
503
504 [source,sql]
505 --------------------------------------------------------------------------
506 -- enable psql timing
507 evergreen=# \timing
508
509 -- encode password "HELLOWORLD" with a work factor of 10.
510 evergreen=# select crypt('HELLOWORLD', gen_salt('bf', 10));
511 (1 row)
512
513 Time: 95.082 ms
514 --------------------------------------------------------------------------
515
516 open-ils.auth_internal
517 ++++++++++++++++++++++
518 To support the new storage mechanism, a new Evergreen service has
519 been added called `open-ils.auth_internal`.  This service runs on
520 the private OpenSRF/XMPP domain and is used to store authenticated 
521 user data in the authentication cache.  
522
523 This is a required service and changes to `opensrf.xml` (typically 
524 `/openils/conf/opensrf.xml`) are needed to run the new service.
525
526 .Modifying opensrf.xml
527 * A new `<open-ils.auth_internal>` app stanza is added to define the 
528   new service
529 * Cache timeout settings are moved from the app stanza for `open-ils.auth`
530   into `open-ils.auth_internal`
531 * `open-ils.auth_internal` is added to the set of running services for the 
532   domain.
533
534 Example diff:
535
536 [source,diff]
537 ---------------------------------------------------------------------
538 diff --git a/Open-ILS/examples/opensrf.xml.example b/Open-ILS/examples/opensrf.xml.example
539 index 3b47481..59f737a 100644
540 --- a/Open-ILS/examples/opensrf.xml.example
541 +++ b/Open-ILS/examples/opensrf.xml.example
542 @@ -424,6 +424,29 @@ vim:et:ts=4:sw=4:
543                  </unix_config>
544                  <app_settings>
545                      <!-- defined app-specific settings here -->
546 +                    <auth_limits>
547 +                        <seed>30</seed> <!-- amount of time a seed request is valid for -->
548 +                        <block_time>90</block_time> <!-- amount of time since last auth or seed request to save failure counts -->
549 +                        <block_count>10</block_count> <!-- number of failures before blocking access -->
550 +                    </auth_limits>
551 +                </app_settings>
552 +            </open-ils.auth>
553 +
554 +            <!-- Internal authentication server -->
555 +            <open-ils.auth_internal>
556 +                <keepalive>5</keepalive>
557 +                <stateless>1</stateless>
558 +                <language>c</language>
559 +                <implementation>oils_auth_internal.so</implementation>
560 +                <unix_config>
561 +                    <max_requests>1000</max_requests>
562 +                    <min_children>1</min_children>
563 +                    <max_children>15</max_children>
564 +                    <min_spare_children>1</min_spare_children>
565 +                    <max_spare_children>5</max_spare_children>
566 +                </unix_config>
567 +                <app_settings>
568 +                    <!-- defined app-specific settings here -->
569                      <default_timeout>
570                          <!-- default login timeouts based on login type -->
571                          <opac>420</opac>
572 @@ -431,13 +454,10 @@ vim:et:ts=4:sw=4:
573                          <temp>300</temp>
574                          <persist>2 weeks</persist>
575                      </default_timeout>
576 -                    <auth_limits>
577 -                        <seed>30</seed> <!-- amount of time a seed request is valid for -->
578 -                        <block_time>90</block_time> <!-- amount of time since last auth or seed request to save failure counts -->
579 -                        <block_count>10</block_count> <!-- number of failures before blocking access -->
580 -                    </auth_limits>
581                  </app_settings>
582 -            </open-ils.auth>
583 +            </open-ils.auth_internal>
584 +
585 +
586  
587              <!-- Authentication proxy server -->
588              <open-ils.auth_proxy>
589 @@ -1177,6 +1197,7 @@ vim:et:ts=4:sw=4:
590                  <appname>open-ils.circ</appname> 
591                  <appname>open-ils.actor</appname> 
592                  <appname>open-ils.auth</appname> 
593 +                <appname>open-ils.auth_internal</appname>
594                  <appname>open-ils.auth_proxy</appname> 
595                  <appname>open-ils.storage</appname>  
596                  <appname>open-ils.justintime</appname>  
597 ---------------------------------------------------------------------
598
599
600
601
602
603
604
605
606 Sortable HTML reports
607 ^^^^^^^^^^^^^^^^^^^^^
608 HTML reports can now be sorted by clicking on the header for a given column.
609 Clicking on the header toggles between sorting the column in ascending and
610 descending order. Note that sorting is available only when there are
611 at most 10,000 rows of output.
612
613
614
615
616 Cataloging
617 ~~~~~~~~~~
618
619
620
621 Additional fixed fields
622 ^^^^^^^^^^^^^^^^^^^^^^^
623 The AccM, Comp, CrTp, EntW, Cont, FMus, LTxt, Orig, Part, Proj, Relf, SpFm,
624 SrTp, Tech, and TrAr fixed fields have been defined and coded value maps added
625 so they can also be used for Advanced Searches or inclusion in Composite Value Maps.
626
627 Note that AccM, Cont, LTxt, Relf, and SpFm are  compositite values based on
628 the values of "helper" fields like AccM(1), AccM(2), and so on. These positional
629 fields can be ignored.
630
631 Coded value maps have also been added for Cont, Ctry, and DtSt, and the Time field
632 has been defined. All of these fields are now available in the Fixed Field Editor
633 when editing the appropriate records.
634
635
636
637
638 Quickly export non-imported records
639 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
640 When inspecting a queue in MARC Batch Import/Export, there is now
641 a link to download to MARC file any records in the queue that were
642 not imported into the catalog.  This allows catalogers to quickly
643 manipulate the records that failed to import using an external
644 tool, then attempt to import them again.
645
646
647
648
649 Link personal name/title series added entries
650 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
651 The authority linker script now supports linking the MARC21
652 field 800 (series added entry - personal name) to authority
653 records.
654
655
656
657
658 MARC stream importer authority records and repairs
659 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
660
661 The MARC stream importer script, commonly used with external 
662 services like OCLC Connexion, is now capable of importing authority
663 records in addition to bib records.  A single running instance of
664 the script can import either type of record, based on the record
665 leader.
666
667 New Options
668 +++++++++++
669
670  * --auth-merge-profile
671  * --auth-queue
672  * --bib-import-no-match
673  * --bib-auto-overlay-exact
674  * --bib-auto-overlay-1match
675  * --bib-auto-overlay-best-match
676  * --auth-import-no-match
677  * --auth-auto-overlay-exact
678  * --auth-auto-overlay-1match
679  * --auth-auto-overlay-best-match
680
681 Deprecated options
682 ++++++++++++++++++
683
684 The following options still work and map to the "bib" equivalent
685 of the option, however a deprecation warning message is generated 
686 when the script is started.
687
688  * --import-no-match
689  * --auto-overlay-exact
690  * --auto-overlay-1match
691  * --auto-overlay-best-match
692
693 No longer supported options
694 +++++++++++++++++++++++++++
695
696 --import-by-queue is no longer supported.  This option serves no
697 particular purpose and is a bad idea when re-using the same queue over
698 and over as most people do, because queue bloat will increase run times.
699
700 --noqueue (AKA "direct import") is no longer supported.  All imports go
701 through Vandelay now.
702
703
704
705
706 Support for monograph parts import in MARC Batch Import/Export
707 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
708 When adding or overlaying copies in MARC Batch Import/Export
709 (Vandelay), monograph part labels can now be assigned during the import
710 process.  This feature is modeled after the existing support for
711 statistical category import.  As such, it:
712
713  * Uses '|' characters to separate labels to allow for multiple part
714    assignment
715  * Adds to (rather than replaces) any existing parts assigned to overlay
716    copies
717
718
719
720
721 Circulation
722 ~~~~~~~~~~~
723
724
725
726 Alternate parts selection display when placing holds
727 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
728 Users often miss the list of parts on the Place Holds screen, leading to many
729 title-level holds on records where only one or two libraries may have
730 'unparted' copies.
731
732 A new option is available to change this display so that a part is selected
733 via radio buttons instead of the traditional dropdown menu. This display
734 increases the visibility of parts on the Place Holds screen and also
735 forces users to make an explicit choice.
736
737 To enable the alternate display, set the enable.radio.parts option to 'true'
738 in config.tt2.
739
740 New config.tt2 setting
741 ++++++++++++++++++++++
742 enable.radio.parts
743
744
745 Web staff client patron editor
746 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
747 The web staff interface now includes a patron editor/registration form
748 that is written using AngularJS, leading to faster and more responsive
749 patron editing.  This feature is currently available in preview mode, but
750 supports the following actions:
751
752   * adding and editing base patron records and addresses
753   * setting statistical categories
754   * editing secondary groups
755   * cloning patron records
756   * duplicate detection
757   * surveys
758
759
760
761
762 ==== Non-active status copy transit message ====
763
764 After copy checkin, if the copy is in transit, display a special
765 message in the transit alert dialog and in the printed transit receipt
766 (optionally, via macro) if the copy is in (or, rather, will be once it
767 arrives at its destination) a non-active copy status.
768
769 ===== Upgrade notes =====
770
771  * To add the new message to the transit slip, add the
772    'transit_copy_status_msg' MACRO.
773  * To remove the new message from the alert dialog, remove the 
774    'staff.circ.utils.transit.copy_status_message' string property
775    from 'Open-ILS/xul/staff_client/server/locale/LOCALE/circ.properties'
776  * For a list of non-active copy statuses, see in the staff client
777    under Admin -> Server Administration -> Copy Statuses.
778
779
780
781
782
783 Selectively disallow opt-in based on patron's home library
784 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
785 A new library setting has been added which enables a library to prevent their
786 patrons from being opted in at other libraries.
787
788 For example, consider the following org unit hierarchy:
789
790        Org Units          Depth
791
792           CONS              0
793            |
794       +-----+-----+
795       |           |
796      SYS1        SYS2       1
797       |           |
798    +--+--+     +--+--+
799    |     |     |     |
800   BR1   BR2   BR3   BR4     2
801
802 Suppose that SYS1 wishes to prevent its patrons from being opted in at SYS2.
803 To accomplish this, it sets the value of the "Restrict patron opt-in to home
804 library and related orgs at specified depth" setting to 1, meaning that patrons
805 at SYS1 libraries at or below that depth in the org tree cannot be opted in by
806 libraries outside that part of the org tree.  Thus, BR1 patrons can be opted in
807 at BR2, but not at BR3 or BR4.
808
809 (This setting is distinct from the "Patron Opt-In Boundary" setting, which
810 merely determines the depth at which Evergreen prompts for the patron to opt
811 in.)
812
813 New library setting
814 +++++++++++++++++++
815   * Restrict patron opt-in to home library and related orgs at specified depth (`org.restrict_opt_to_depth`)
816
817
818
819
820 Standing penalty ignore proximity
821 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
822
823 Standing penalties now have an `ignore_proximity` field that takes an
824 integer value.  When set, the value of this field represents the
825 proximity from the user's home organizational unit where this penalty
826 will be ignored for purposes of circulation and holds.  Typical values
827 for this field would be 0, 1, or 2 when using a standard hierarchy of
828 Consortium -> System -> Branch -> Sublibrary/Bookmobile.  A value of 1
829 would cause the penalty to be ignored at the user's home organization
830 unit, its parent and/or immediate child.  A value of 2 should cause
831 it to be ignored at the above as well as all sibling organizational
832 units to the user's home.  In all cases, a value of zero causes the
833 penalty to be ignored at the user's home and to apply at all other
834 organizational units.  If the value of this field is left unset (or
835 set to a negative value), the penalty will still take effect
836 everywhere using the normal organizational unit and depth values.  If
837 you use a custom hierarchy, you will need to figure out any values
838 greater than 0 on your own.
839
840 The `ignore_proximity` does not affect where penalties are applied. It
841 is used when determining whether or not a penalty blocks an activity
842 at the current organizational unit or the organizational unit that
843 owns the copy involved in the current transaction.  For instance, if
844 you set the `ignore_proximity` to 0 on patron exceeds overdue fines,
845 then the patron will still be able to place holds on and checkout
846 copies owned by their home organizational unit at their home
847 organizational unit.  They will not, however, be able to receive
848 copies from other organizational units, nor use other organizational
849 units as a patron.
850
851
852
853 Patron checkout history stored in a dedicated table
854 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
855
856 Patron checkout history is now stored in separate, dedicated database 
857 table instead of being derived from the main circulation data.  This
858 allows us to age/anonymize circulations more aggressively, since they 
859 no longer need to stick around in cases where they represent a patron's
860 opt-in checkout history.
861
862 This has a number of patron privacy implications.
863
864  * Minimal metadata is stored in the new patron checkout history table, 
865    so once the corresponding circulation is aged, the full set of 
866    circulation metadata is no longer linked to a patron's reading history.
867    ** It is limited to checkout date, due date, checkin date, and copy data.
868  * Staff can no longer report on a patron's reading history.  
869    ** While it is possible to build aggregate reports on reading history 
870       data, it is not possible to report on which user an entry in the
871       history table belongs to.  (The 'usr' column is hidden from the 
872       reporter).
873  * Staff can no longer retrieve a patron's reading history via API.  Only
874    the user that owns the history data can access it.
875
876 Upgrade notes
877 +++++++++++++
878
879 Administrators should verify the CSV export of checkout history works after
880 deploying this change.  If local changes were made to the CSV template,
881 the template will not be updated as part of this deployment.  The stock
882 template was modified to handle gracefully NULL values for checkin_time.
883
884 For example:
885
886 [source,diff]
887 ------------------------------------------------------------------------
888 -    Returned: [% date.format(helpers.format_date(circ.checkin_time), '%Y-%m-%d') %]
889 +    Returned: [%
890 +        date.format(
891 +            helpers.format_date(circ.checkin_time), '%Y-%m-%d')
892 +            IF circ.checkin_time;
893 +    %]
894 ------------------------------------------------------------------------
895
896
897
898 Client
899 ~~~~~~
900
901
902
903 Holds count column picker option
904 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
905 A new column picker option showing the number of holds for a given item will
906 now be available in various interfaces displaying item information, including
907 the patron's Items Out tab and the Item Status, Check Out, Check In, Renew
908 Item and Record In-House Use screens.
909
910 Note: Because the holds count is generated from the hold_copy_map, newly-added
911 items and items in a non-holdable status will not display accurate hold counts
912 until 24 hours after they have been added to the system or moved to a holdable
913 copy status.
914
915
916 Distinct images for pop-ups and slips
917 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
918 The client now supports using distinct images for hold, transit, and booking
919 reservation popup windows and slips. In addition, three new images have been
920 provided, replacing the turtle that previously displayed. The turtle file
921 is still available in the images directory for those sites that still wish
922 to use it.
923
924
925 Development
926 ~~~~~~~~~~~
927
928
929
930 Removal of unused methods
931 ^^^^^^^^^^^^^^^^^^^^^^^^^
932 The following public methods, which were both broken and not in use,
933 are removed:
934
935  * `open-ils.actor.org_unit.closed_date.create`
936  * `open-ils.actor.org_unit.closed_date.delete`
937
938
939
940
941
942 Public catalog
943 ~~~~~~~~~~~~~~
944
945 Editable borrowing history
946 ^^^^^^^^^^^^^^^^^^^^^^^^^^
947 Patrons can now delete titles that they do not wish to appear in their
948 Check Out History.
949
950  * In "My Account", click on the "Items Checked Out" tab, then
951    the "Check Out History" sub-tab.
952  * Check off the items to conceal.
953  * Click the Go button next to the "Delete Selected Titles" drop-down box.
954  * Click OK in the pop-up to confirm the deletion.  Note that deletions
955    cannot be undone.
956
957 Deleted titles will also not appear in the downloaded CSV file.
958
959 Patron history disable warning
960 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
961
962 When disabling checkout and/or holds history in the public catalog's
963 Search and History Preferences tab, patrons will be warned that the
964 operation is irreversible when history data exists that will be
965 deleted as part of the update.
966
967
968
969 Include parts label when sorting copies on the record details page
970 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
971 The list of copies on the catalog's record details page now includes
972 the part label in the default sort order.
973
974 Specifically, copies are now sorted by (in order), org unit, then
975 call number, then part label sortkey, then copy number, and
976 finally barcode.
977
978 Previously, the hierarchy was org unit, then call number,
979 then copy number, and finally barcode
980
981
982
983 Quick option to change search scope to all libraries
984 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
985 A common usage of the catalog is to do a search in a restricted scope,
986 like a local library. When the results are lacking, the search is repeated in a
987 consortium-wide scope.  This feature provides an optional button and checkbox
988 to alter the depth of the search to a defined level.
989
990 This feature is enabled by default and can be configured in the Depth Button/
991 Checkbox section of config.tt2.
992
993 New config.tt2 settings
994 +++++++++++++++++++++++
995   * ctx.depth_sel_checkbox
996   * ctx.depth_sel_button
997   * ctx.depth_sel_depth
998   * ctx.sel_button_label
999   * ctx.depth_sel_button_class
1000   * ctx.depth_sel_checkbox_label
1001   * ctx.depth_sel_tooltip
1002   * ctx.depth_sel_resultshint
1003
1004 Limiter to exclude electronic resources
1005 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1006 A limiter to exclude electronic resources from search results is now available
1007 on the advanced search screen and from the search results page. This limiter
1008 will exclude any search results with an item form of o or s. This limiter
1009 will be applied on top of any other format limiters used in the search.
1010
1011 The checkboxes are disabled by default. To display them in both places, set
1012 the 'ctx.exclude_electronic_checkbox' setting in config.tt2 to 1.
1013
1014 New config.tt2 setting
1015 ++++++++++++++++++++++
1016 ctx.exclude_electronic_checkbox
1017
1018
1019 Expand unAPI API
1020 ^^^^^^^^^^^^^^^^
1021 Evergreen's unAPI support now includes access to many more
1022 record types. For example, the following URL would fetch
1023 bib 267 in MODS32 along with holdings, volume, copy,
1024 and record attribute information:
1025
1026 https://example.org/opac/extras/unapi?id=tag::U2@bre/267{holdings_xml,acn,acp,mra}&format=mods32
1027
1028 To access the new unAPI features, the unAPI ID should have the
1029 following form:
1030
1031   * +tag::U2@+
1032   * followed by class name, which may be
1033     * +bre+ (bibs)
1034     * +biblio_record_entry_feed+ (multiple bibs)
1035     * +acl+ (copy locations)
1036     * +acn+ (volumes)
1037     * +acnp+ (call number prefixes)
1038     * +acns+ (call number suffixes)
1039     * +acp+ (copies)
1040     * +acpn+ (copy notes)
1041     * +aou+ (org units)
1042     * +ascecm+ (copy stat cat entries)
1043     * +auri+ (located URIs)
1044     * +bmp+ (monographic parts)
1045     * +cbs+ (bib sources)
1046     * +ccs+ (copy statuses)
1047     * +circ+ (loan checkout and due dates)
1048     * +holdings_xml+ (holdings)
1049     * +mmr+ (metarecords)
1050     * +mmr_holdings_xml+ (metarecords with holdings)
1051     * +mmr_mra+ (metarecords with record attributes)
1052     * +mra+ (record attributes)
1053     * +sbsum+ (serial basic summaries)
1054     * +sdist+ (serial distributions)
1055     * +siss+ (serial issues)
1056     * +sisum+ (serial index summaries)
1057     * +sitem+ (serial items)
1058     * +sssum+ (serial supplement summaries)
1059     * +sstr+ (serial streams)
1060     * +ssub+ (serial subscriptions)
1061     * +sunit+ (serial units)
1062   * followed by +/+
1063   * followed by a record identifier (or in the case of
1064     the +biblio_record_entry_feed+ class, multiple IDs separated
1065     by commas)
1066   * followed, optionally, by limit and offset in square brackets
1067   * followed, optionally, by a comma-separated list of "includes"
1068     enclosed in curly brackets.  The list of includes is
1069     the same as the list of classes with the following addition:
1070     * +bre.extern+ (information from the non-MARC parts of a bib
1071       record)
1072    * followed, optionally, by +/+ and org unit; "-" signifies
1073      the top of the org unit tree
1074    * followed, optionally, by +/+ and org unit depth
1075    * followed, optionally, by +/+ and a path. If the path
1076      is +barcode+ and the class is +acp+, the record ID is taken
1077      to be a copy barcode rather than a copy ID; for example, in
1078      +tag::U2@acp/ACQ140{acn,bre,mra}/-/0/barcode+, +ACQ140+ is
1079      meant to be a copy barcode.
1080    * followed, optionally, by +&format=+ and the format in which the record
1081      should be retrieved. If this part is omitted, the list of available 
1082      formats will be retrieved. 
1083
1084
1085
1086
1087 New form/genre search and facet index
1088 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1089 The stock indexing definitions now include a search and facet index on the
1090 form/genre field (tag 655). This allows genre links in the public catalog
1091 record display to retrieve works in the same genre. The public catalog genre
1092 links will no longer display content from the 659 MARC fields. 
1093
1094 The genre facet will also display by default in the public catalog.  A partial
1095 reingest during upgrade is required to use this index.
1096
1097
1098
1099
1100 Limit number of facets retrieved during search
1101 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1102 Catalog search now limits the number of facets retrieved
1103 per defined facet field. Setting a limit is useful so that
1104 `open-ils.cstore backends don't end up needlessly consuming
1105 memory when fetching facets for a large result set; if a broad
1106 search retrieves over 10,000 author facets (say), even the most
1107 persistant user is not going to actually look at all of them. Fetching
1108 fewer facets can also slightly speed up generation of search results.
1109
1110 The limit is controlled by a new global flag, `search.max_facets_per_field`,
1111 whose label is "Search: maximum number of facet values to retrieve for
1112 each facet field".  The default limit value is 1,000, but lower values
1113 (e.g., 100) are perhaps even better for most catalogs.
1114
1115 Significant bugfixes
1116 ~~~~~~~~~~~~~~~~~~~~
1117
1118 Add acquisitions cancel reason 85 for Baker & Taylor EDI
1119 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1120 Baker & Taylor send backs a quantity status code of 85
1121 when a line item is canceled when using EDI.  That code
1122 is now included in the system so those cancelations get 
1123 properly registered. 
1124
1125 Self-check printing
1126 ^^^^^^^^^^^^^^^^^^^
1127 Corrections were made to the self-check holds and fines printing
1128 functionality to so that the proper transactions can be printed.
1129 The change requires that the Self-Checkout Fines Receipt and
1130 Self-Checkout Holds Receipt action/trigger templates be updated
1131 in order to work properly. 
1132
1133 Miscellaneous
1134 ~~~~~~~~~~~~~
1135
1136 * Copy records in the "Concerto" test data set now have prices.
1137 * The web-based self-check interface now displays the patron
1138   information area only when a patron is logged in.
1139 * The progress page displayed by MARC Batch Edit is improved.
1140 * The public catalog now better handles the situation where
1141   a patron who does not have an email address registered in
1142   Evergreen tries to email a record.
1143
1144 Evergreen 2.10.0 bugs closed
1145 ----------------------------
1146
1147 * https://bugs.launchpad.net/bugs/838525[Bug 838525: Timestamp on dob can make date appear off by a day]
1148 * https://bugs.launchpad.net/bugs/963341[Bug 963341: Allow the JSPac and TPac to display both MFHD records and Serial Control/Alternate records,]
1149 * https://bugs.launchpad.net/bugs/1067823[Bug 1067823: tpac: genre links in record details page launch subject search]
1150 * https://bugs.launchpad.net/bugs/1164174[Bug 1164174: Add support for author/title series added entry]
1151 * https://bugs.launchpad.net/bugs/1175711[Bug 1175711: can't renew items on OPAC due to items being on Booking resource list]
1152 * https://bugs.launchpad.net/bugs/1197636[Bug 1197636: Email record detail does not check for email]
1153 * https://bugs.launchpad.net/bugs/1202742[Bug 1202742: Support alert/print message for transiting, non-active copies]
1154 * https://bugs.launchpad.net/bugs/1206936[Bug 1206936: money.transaction_billing_summary view displays incorrect billing_type and billing_note for the actual last transaction]
1155 * https://bugs.launchpad.net/bugs/1208613[Bug 1208613: Expand All button does not work past the 1st page when viewing a large picklist.]
1156 * https://bugs.launchpad.net/bugs/1229757[Bug 1229757: support distinct pop-up images for holds, transits, and hold transits]
1157 * https://bugs.launchpad.net/bugs/1240657[Bug 1240657: OpenILS::Application::Actor should check_perms for CREATE_CLOSED_DATE, not CREATE_CLOSEING]
1158 * https://bugs.launchpad.net/bugs/1251415[Bug 1251415: Use the juvenile setting when auto-removing juvenile flag.]
1159 * https://bugs.launchpad.net/bugs/1275118[Bug 1275118: Holds history displays canceled holds as active]
1160 * https://bugs.launchpad.net/bugs/1312699[Bug 1312699: Editable Checkout History]
1161 * https://bugs.launchpad.net/bugs/1319998[Bug 1319998: money.materialized_summary_billing_del() ADDS to balance_owed]
1162 * https://bugs.launchpad.net/bugs/1333254[Bug 1333254: EDI invoices automatically expend debits]
1163 * https://bugs.launchpad.net/bugs/1367926[Bug 1367926: Add support for (nearly) direct access to the full unapi backend]
1164 * https://bugs.launchpad.net/bugs/1370694[Bug 1370694: Selfcheck "Print List" for Holds view does not work]
1165 * https://bugs.launchpad.net/bugs/1371647[Bug 1371647: config.marc21_ff_pos_map needs an audit]
1166 * https://bugs.launchpad.net/bugs/1375043[Bug 1375043: Support for in-A/T telephony configuration]
1167 * https://bugs.launchpad.net/bugs/1380709[Bug 1380709: invoice print amounts-per-fund uses wrong value when item price varies]
1168 * https://bugs.launchpad.net/bugs/1384740[Bug 1384740: Add authority records support to marc stream importer (Connexion)]
1169 * https://bugs.launchpad.net/bugs/1391282[Bug 1391282: Default Action Trigger Templates  Updates]
1170 * https://bugs.launchpad.net/bugs/1392396[Bug 1392396: Wishlist: Action Trigger for new user creation]
1171 * https://bugs.launchpad.net/bugs/1402018[Bug 1402018: Acq Copy location UI scoped to registered workstation]
1172 * https://bugs.launchpad.net/bugs/1402770[Bug 1402770: Add column picker option for number of holds in item context]
1173 * https://bugs.launchpad.net/bugs/1406786[Bug 1406786: Merge parts functionality fails to preserve copy_part mapping]
1174 * https://bugs.launchpad.net/bugs/1422802[Bug 1422802: Parts need to be more visible on the place holds screen]
1175 * https://bugs.launchpad.net/bugs/1422932[Bug 1422932: TPAC: Holds history pager typo]
1176 * https://bugs.launchpad.net/bugs/1429268[Bug 1429268: Credit card payment fails on NULL mailing address]
1177 * https://bugs.launchpad.net/bugs/1452950[Bug 1452950: Angularize the patron editor]
1178 * https://bugs.launchpad.net/bugs/1454871[Bug 1454871: KPAC Hold Notifications - SMS]
1179 * https://bugs.launchpad.net/bugs/1454884[Bug 1454884: Hold placed on grouped metabib result displays wrong title]
1180 * https://bugs.launchpad.net/bugs/1464765[Bug 1464765: evergreen.lpad_number_substrings doesn't handle internal substring matches properly]
1181 * https://bugs.launchpad.net/bugs/1466173[Bug 1466173: Wishlist: Selfcheck Hide UI Elements until patron auth]
1182 * https://bugs.launchpad.net/bugs/1466990[Bug 1466990: Detailed search results shows parts for items that dont have parts]
1183 * https://bugs.launchpad.net/bugs/1468422[Bug 1468422: Improve Password Management and Authentication]
1184 * https://bugs.launchpad.net/bugs/1470957[Bug 1470957: Items are incorrectly sorting when using the Sort By Publication date feature]
1185 * https://bugs.launchpad.net/bugs/1474051[Bug 1474051: Avoid storing partial credit card payment info]
1186 * https://bugs.launchpad.net/bugs/1474455[Bug 1474455: Fixed navigation menu for the web client]
1187 * https://bugs.launchpad.net/bugs/1474566[Bug 1474566: Credit card API amount paid rounding error.]
1188 * https://bugs.launchpad.net/bugs/1482336[Bug 1482336: create_release_notes.sh include .adoc files]
1189 * https://bugs.launchpad.net/bugs/1483500[Bug 1483500: evergreen.lowercase needs test]
1190 * https://bugs.launchpad.net/bugs/1483506[Bug 1483506: public.first_agg needs test]
1191 * https://bugs.launchpad.net/bugs/1483508[Bug 1483508: public.text_concat needs tests]
1192 * https://bugs.launchpad.net/bugs/1486151[Bug 1486151: Modifying password regular expression in Library Settings Editor can cause helper on the Update Password page to be invalid]
1193 * https://bugs.launchpad.net/bugs/1486294[Bug 1486294: Add acquisitions data to the Concerto dataset]
1194 * https://bugs.launchpad.net/bugs/1486592[Bug 1486592: Copies in concerto data should have prices]
1195 * https://bugs.launchpad.net/bugs/1487527[Bug 1487527: TPAC: Provide shortcut for changing search scope]
1196 * https://bugs.launchpad.net/bugs/1491571[Bug 1491571: When circ.password_reset_request_requires_matching_email setting is true, email case must match in addition to content]
1197 * https://bugs.launchpad.net/bugs/1492793[Bug 1492793: Support for PostgreSQL Application Name Connection Options]
1198 * https://bugs.launchpad.net/bugs/1496837[Bug 1496837: xml-related test is invalid]
1199 * https://bugs.launchpad.net/bugs/1499123[Bug 1499123: Ability to Ignore Certain Standing Penalties Within a Proximity to the Patron's Home Library]
1200 * https://bugs.launchpad.net/bugs/1501471[Bug 1501471: fetching OU settings in batch can be made faster]
1201 * https://bugs.launchpad.net/bugs/1501516[Bug 1501516: Indicate whether a lineitem is fully paid/invoiced in PO list]
1202 * https://bugs.launchpad.net/bugs/1502152[Bug 1502152: Trap Warnings in marc_export for better error reporting]
1203 * https://bugs.launchpad.net/bugs/1504615[Bug 1504615: OPAC: Suggest record detail more useful when sorted by parts]
1204 * https://bugs.launchpad.net/bugs/1505286[Bug 1505286: set limit on facets retrieved during search]
1205 * https://bugs.launchpad.net/bugs/1506534[Bug 1506534: valid_z3950_attr_type check constraint can cause errors during pg_restore]
1206 * https://bugs.launchpad.net/bugs/1507845[Bug 1507845: Correct search engine optimization -- allow robots to crawl, but not index, results]
1207 * https://bugs.launchpad.net/bugs/1508477[Bug 1508477: browser client: hotkeys don't work if an input element has focus]
1208 * https://bugs.launchpad.net/bugs/1509479[Bug 1509479: infinite loop when parsing modified unclosed phrase search query]
1209 * https://bugs.launchpad.net/bugs/1510641[Bug 1510641: Cannot print PO without lineitems]
1210 * https://bugs.launchpad.net/bugs/1513554[Bug 1513554: It is possible to delete acq.cancel_reasons that are used by the system]
1211 * https://bugs.launchpad.net/bugs/1516022[Bug 1516022: reporting source for copy/hold ratio at pickup library and descendants]
1212 * https://bugs.launchpad.net/bugs/1516104[Bug 1516104: Wishlist: Additional Acq Toolbar Options]
1213 * https://bugs.launchpad.net/bugs/1516707[Bug 1516707: Relevance ranking deteriorates when phrases are added to search]
1214 * https://bugs.launchpad.net/bugs/1516757[Bug 1516757: SIP Date of Birth off by one day / parsed as UTC]
1215 * https://bugs.launchpad.net/bugs/1516867[Bug 1516867: HTML reports should be dynamically sortable]
1216 * https://bugs.launchpad.net/bugs/1519055[Bug 1519055: Simple checkbox to exclude electronic resources from search results]
1217 * https://bugs.launchpad.net/bugs/1519465[Bug 1519465: Purchase Orders with spaces in the name cause problems with EDI processing]
1218 * https://bugs.launchpad.net/bugs/1519911[Bug 1519911: Typo in seed data for hold cancel notification action triggers]
1219 * https://bugs.launchpad.net/bugs/1519925[Bug 1519925: Add UPC search to MARC Federated Search -  Native Evergreen option]
1220 * https://bugs.launchpad.net/bugs/1522538[Bug 1522538: Unexpected Journal Title Search Results when using second or third Search Input in Advanced Search]
1221 * https://bugs.launchpad.net/bugs/1522604[Bug 1522604: webclient: Red font to highlight Lost items in patron summary extends to Non-Cataloged label]
1222 * https://bugs.launchpad.net/bugs/1526543[Bug 1526543: Cannot disable password reset in TPAC]
1223 * https://bugs.launchpad.net/bugs/1526546[Bug 1526546: Parts do not sort correctly on Holdings Maintenance screen]
1224 * https://bugs.launchpad.net/bugs/1526547[Bug 1526547: Overdues adjusted via lost (or long overdue) processing get an incorrect note ("VOIDED FOR BACKDATE")]
1225 * https://bugs.launchpad.net/bugs/1527342[Bug 1527342: Maintain patron reading history in a dedicated table.]
1226 * https://bugs.launchpad.net/bugs/1528596[Bug 1528596: Another untrapped marc_export warning]
1227 * https://bugs.launchpad.net/bugs/1531976[Bug 1531976: Triggered Events UI not loading after visiting Message Center UI and vice-versa]
1228 * https://bugs.launchpad.net/bugs/1533329[Bug 1533329: Selectively disallow opt-in based on patron's home library]
1229 * https://bugs.launchpad.net/bugs/1533331[Bug 1533331: evergreen.protect_reserved_rows_from_delete() trigger function returning error]
1230 * https://bugs.launchpad.net/bugs/1538697[Bug 1538697: webclient: copy record does not save when changing stat cat entries]
1231 * https://bugs.launchpad.net/bugs/1539088[Bug 1539088: marc export should only print "Waiting for Input" when running interactively]
1232 * https://bugs.launchpad.net/bugs/1539776[Bug 1539776: webclient: Wrapping improvements for vol / copy editor]
1233 * https://bugs.launchpad.net/bugs/1544723[Bug 1544723: Add webstaff to update_pofiles]
1234 * https://bugs.launchpad.net/bugs/1545178[Bug 1545178: two dead methods for dealing with closed dates should be removed]
1235 * https://bugs.launchpad.net/bugs/1545226[Bug 1545226: MARC Batch Editor summary table html problems]
1236 * https://bugs.launchpad.net/bugs/1546125[Bug 1546125: Print Templates -&gt; Save Locally not working]
1237 * https://bugs.launchpad.net/bugs/1548143[Bug 1548143: Add Parts Support to Vandelay Item Import]
1238 * https://bugs.launchpad.net/bugs/1548147[Bug 1548147: Quick Export Feature for Vandelay Queues]
1239 * https://bugs.launchpad.net/bugs/1548869[Bug 1548869: KPAC - hold results screen not showing title]
1240 * https://bugs.launchpad.net/bugs/1549393[Bug 1549393: AddedContent: Invalid ISBN's are sent to Content Cafe as blank string]
1241 * https://bugs.launchpad.net/bugs/1550495[Bug 1550495: EDI Default Cancel Reason for Baker &amp; Taylor not included: Code 85]
1242 * https://bugs.launchpad.net/bugs/1551447[Bug 1551447: Selfcheck: Printing Fines Prints All Open Transactions]
1243 * https://bugs.launchpad.net/bugs/1552060[Bug 1552060: Persistent login no longer working in OPAC]
1244 * https://bugs.launchpad.net/bugs/1553813[Bug 1553813: Browser patron editor field validation and permission checks]
1245 * https://bugs.launchpad.net/bugs/1556339[Bug 1556339: API attempts to use nonexistent user_visible_circs method]
1246 * https://bugs.launchpad.net/bugs/1557525[Bug 1557525: Release Notes Omission]
1247 * https://bugs.launchpad.net/bugs/1557621[Bug 1557621: Verify password API fails on barcode; returns success on deleted users]
1248 * https://bugs.launchpad.net/bugs/1557683[Bug 1557683: Missing semicolon in 0953.function.unapi-bre.external-includes.sql]
1249
1250 Evergreen 2.10.0 Acknowledgments
1251 --------------------------------
1252 The Evergreen project would like to thank the following 
1253 individuals who contributed code, documentations patches and
1254 tests to this release of Evergreen:
1255
1256  * Thomas Berezansky
1257  * Adam Bowling
1258  * Jason Boyer
1259  * Kate Butler
1260  * Steven Callender
1261  * Steven Chan
1262  * Galen Charlton
1263  * Mark Cooper
1264  * Jeff Davis
1265  * Martha Driscoll
1266  * Bill Erickson
1267  * Jason Etheridge
1268  * Blake Henderson
1269  * Pasi Kallinen
1270  * Jake Litrell
1271  * Kathy Lussier
1272  * Terran McCanna
1273  * Christine Morgan
1274  * Dan Pearl
1275  * Michael Peters
1276  * Jennifer Pringle
1277  * Mike Rylander
1278  * Dan Scott
1279  * Chris Sharp
1280  * Ben Shum
1281  * Remington Steed
1282  * Jason Stephenson
1283  * Josh Stompro
1284  * Yamil Suarez
1285  * Dan Wells
1286  * Bob Wicksall
1287
1288 We would also like to thank the following individuals who
1289 tested and signed off on patches:
1290
1291  * Christine Burns
1292  * Andrea Neiman
1293  * Erica Rohlfs
1294
1295 We would also like to thank the following organizations who
1296 commissioned developments in this release of Evergreen:
1297
1298  * Linn Libraries Consortium
1299  * King County Library System
1300  * MassLNC
1301
1302 We also thank the following organizations whose employees contributed
1303 to this release:
1304
1305  * BC Libraries Coooperative
1306  * Berklee College of Music
1307  * Bibliomation
1308  * Calvin College
1309  * CW/MARS
1310  * Emerald Data
1311  * Equinox Software
1312  * Georgia Public Library Service
1313  * Indiana State Library
1314  * Kent County Public Library
1315  * King County Library System
1316  * Lake Agassiz Regional Library
1317  * Laurentian University
1318  * MassLNC
1319  * MOBIUS
1320  * MVLC
1321  * NOBLE
1322  * Rodgers Memorial Library
1323  * Sigio
1324
1325 We regret any omissions.  If a contributor has been inadvertantly
1326 missed, please open a bug at http://bugs.launchpad.net/evergreen/
1327 with a correction.
1328