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