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