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