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