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