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