07ef46fb20933d571176a11393681cf5dc5abc90
[evergreen-equinox.git] / docs / RELEASE_NOTES_3_8.adoc
1 = Evergreen 3.8 Release Notes =
2 :toc:
3 :numbered:
4 :toclevels: 3
5
6 == Evergreen 3.8.1 ==
7
8 This release contains bug fixes improving on Evergreen 3.8.0
9
10 === Upgrade notes ===
11
12
13 === Bug Fixes ===
14
15 ==== Acquisitions ====
16
17 * Protects real copies from deletion by an acqusitions line item cancel 
18 (https://bugs.launchpad.net/evergreen/+bug/1928003[Bug 1928003])
19 * Fixes an issue where EDIWriter.pm was not correctly applying some attribute types (https://bugs.launchpad.net/evergreen/+bug/1930740[Bug 1930740])
20 * Fixes the Providers form to be more friendly to screenreaders (https://bugs.launchpad.net/evergreen/+bug/1950507[Bug 1950507])
21
22
23 ==== Administration ====
24
25 * Adds rdeleted parameter to the pingest.pl script (https://bugs.launchpad.net/evergreen/+bug/1862652[Bug 1862652])
26 * Fixes bug where Carousels could only be viewed & edited by their creating user (https://bugs.launchpad.net/evergreen/+bug/1939338[Bug 1939338])
27 * Updates Hopeless Holds interface so Title links open in a new tab (https://bugs.launchpad.net/evergreen/+bug/1909681[Bug 1909681])
28 * Fixes an issue where specific 'opensrf' user is required in oils_ctl.sh and autogen.sh https://bugs.launchpad.net/evergreen/+bug/1900005[Bug1900005])
29 * Adds MARC_NAMESPACE to Const.pm (https://bugs.launchpad.net/evergreen/+bug/1930747[Bug 1930747])
30 * Fixes an issue preventng correct MADS processing of field 755 (https://bugs.launchpad.net/evergreen/+bug/1800871[Bug 1800871])
31 * Adds default columns in the Angular staff catalog View Holds tab (https://bugs.launchpad.net/evergreen/+bug/1907123[Bug 1907123])
32 * Adds filters to MARC Coded Value Map grid (https://bugs.launchpad.net/evergreen/+bug/1843970[Bug 1843970])
33
34 ==== API ====
35
36 * Makes changes to the eBook API to support Overdrive's updated Checkouts API (https://bugs.launchpad.net/evergreen/+bug/1951021[Bug 1951021])
37 * Fixes issue where loading records with located URIs deleted and recreated call_numbers (https://bugs.launchpad.net/evergreen/+bug/1482757[Bug 1482757])
38
39
40 ==== Architecture ====
41
42 * Fixes typo in fm_idl.xml (https://bugs.launchpad.net/evergreen/+bug/1957840[Bug 1957840])
43 * Fixes an issue where retrieving a title via SuperCat can crash if the title has a serial unit with statcats (https://bugs.launchpad.net/evergreen/+bug/1970486[Bug 1970486])
44 * Upgrades karma in NPM dependencies (https://bugs.launchpad.net/evergreen/+bug/1965432[Bug 1965432])
45 * Fixes variable in log_me sub (https://bugs.launchpad.net/evergreen/+bug/1778783[Bug 1778783])
46 * Fixes material icons package error in NPM install (https://bugs.launchpad.net/evergreen/+bug/1969232[Bug 1969232])
47
48
49 ==== Catalog ==== 
50
51 * Fixes an issue in the traditional staff catalog where PLACE_UNFILLABLE_HOLD override fails if there are no items available (https://bugs.launchpad.net/evergreen/+bug/1906842[Bug 1906842])
52 * Fixes an issue in the Patron Search from Place Holds modal where barcode search was failing (https://bugs.launchpad.net/evergreen/+bug/1955927[Bug 1955927])
53 * Restores Hold links in the staff catalog detail page that were broken by a Chrome update (https://bugs.launchpad.net/evergreen/+bug/1964019[Bug 1964019])
54 * Fixes an issue in the traditional staff catalog where user settings wouldn't load in the Place Holds interface (https://bugs.launchpad.net/evergreen/+bug/1939426[Bug 1939426])
55 * Excludes empty bibs with transcendent=f from location limited staff searches (https://bugs.launchpad.net/evergreen/+bug/1746800[Bug 1746800])
56 * Fixes issue in the traditional staff catalog where Patron Barcode Completion didn't populate correctly in the Place Holds interface (https://bugs.launchpad.net/evergreen/+bug/1965317[Bug 1965317])
57 * Fixes an issue in the Angular staff catalog where monograph parts were sorting incorrectly in the Place Holds interface (https://bugs.launchpad.net/evergreen/+bug/1965161[Bug 1965161])
58 * Adds default columns in the Angular staff catalog View Holds tab (https://bugs.launchpad.net/evergreen/+bug/1907123[Bug 1907123])
59
60 ==== Cataloging ====
61
62 * Fixes a regression where owning libraries were not indicated in the Holdings View dropdown (https://bugs.launchpad.net/evergreen/+bug/1739277[Bug 1739277])
63 * Fixes an issue where batch deletes from an item bucket exhausted drones (https://bugs.launchpad.net/evergreen/+bug/1949910[Bug 1949910])
64 * Fixes an issue where the Holdings View showed incorrect item counts (https://bugs.launchpad.net/evergreen/+bug/1933275[Bug 1933275])
65 * Adds Author field to Item Buckets (https://bugs.launchpad.net/evergreen/+bug/1800474[Bug 1800474])
66 * Fixes an issue where batch removal of items from an item bucket exhausted drones (https://bugs.launchpad.net/evergreen/+bug/1968082[Bug 1968082])
67 * Splits Active Date and Create Date into separate columns in Angular Holdings View (https://bugs.launchpad.net/evergreen/+bug/1916600[Bug 1916600])
68 * Adds Author field to Item Buckets (https://bugs.launchpad.net/evergreen/+bug/1800474[Bug 1800474])
69 * Fixes copy templates setting to allow migration of copy templates from AngularJS to Angular (https://bugs.launchpad.net/evergreen/+bug/1951162[Bug 1951162])
70 * Angular copy location editor can now pass multiple context org unit IDs (https://bugs.launchpad.net/evergreen/+bug/1956626[Bug 1956626])
71
72
73 ==== Circulation ====
74
75 * Excludes child organizational units when fleshing standing penalties (https://bugs.launchpad.net/evergreen/+bug/1959461[Bug 1959461])
76 * Fixes invalidate email regression (https://bugs.launchpad.net/evergreen/+bug/1950826[Bug 1950826])
77 * Fixes a bug where Patron Search could cause the browser to become unresponsive (https://bugs.launchpad.net/evergreen/+bug/1959904[Bug 1959904])
78 * Fixes issue with slow user merging or deleting (https://bugs.launchpad.net/evergreen/+bug/1960956[Bug 1960956])
79 * Fixes display issue in Hold Shelf Record Summary Detail View (https://bugs.launchpad.net/evergreen/+bug/1838580[Bug 1838580])
80 * Adds server-side saving for Holds Groups grids (https://bugs.launchpad.net/evergreen/+bug/1956003[Bug 1956003
81 * Fixes download & print issue with Angular Holds Pull List (https://bugs.launchpad.net/evergreen/+bug/1958265[Bug1958265])
82 * Adds duplicate barcode check to Item Status Replace Barcode (https://bugs.launchpad.net/evergreen/+bug/1950468[Bug 1950468])
83
84
85 ==== Client ====
86
87 * Improved filtering on egBasicComboBox typeaheads (https://bugs.launchpad.net/evergreen/+bug/1819233[Bug 1819233])
88 * Corrects print template data field names for Items Out template (https://bugs.launchpad.net/evergreen/+bug/1766726[Bug 1766726]
89 * Implements batch method for adding users to a bucket (https://bugs.launchpad.net/evergreen/+bug/1946531[Bug 1946531])
90 * Fixes untranslatable strings in the Historical Bills print template (https://bugs.launchpad.net/evergreen/+bug/1772631[Bug 1772631]
91
92 ==== Course Materials ====
93
94 * Adds owning library check to Course Terms uniqueness constraint 
95 (https://bugs.launchpad.net/evergreen/+bug/1942645[LP1942645])
96 * Fixes course search issue (https://bugs.launchpad.net/evergreen/+bug/1913340[Bug 1913340])
97
98 ==== Documentation ====
99
100 * Updates to Print Template Export documentation (https://bugs.launchpad.net/evergreen/+bug/1929592[Bug 1929592])
101 * Added Advanced Authorities documentation (https://bugs.launchpad.net/evergreen/+bug/1944205[Bug 1944205
102 * Corrections to Override Actions documentation
103 * Updates to Barcode Completion documentation
104 * Added Course Materials documentation
105 * Updates to Holds documentation
106 * Updates to z39.50 documentation
107 * Updates to OPAC Lists documentation
108 * Added relevant Conference videos to some documentation pages
109 * Updates to Using the Public Access Catalog documentation
110 * Updates to Billing documentation
111
112 ==== OPAC ====
113
114 * Fixes an issue in the Bootstrap OPAC where changing a branch did not clear the shelving location list (https://bugs.launchpad.net/evergreen/+bug/1946019[Bug 1946019])
115 * Restores line breaks in Patron Messages (https://bugs.launchpad.net/evergreen/+bug/1927990[Bug 1927990])
116 * Fixes an issue where some electronic resource links would not display in the Bootstrap OPAC (https://bugs.launchpad.net/evergreen/+bug/1950394[Bug 1950394])
117 * Fixes an issue in the Bootstrap OPAC where the 'More Details' button was not translatable (https://bugs.launchpad.net/evergreen/+bug/1919494[Bug 1919494])
118 * Fixes an issue where a hold in the status "Hold Shelf Delay" displayed blank in the OPAC (https://bugs.launchpad.net/evergreen/+bug/1959405[Bug 1959405])
119 * Fixes Bootstrap OPAC 'More Details' button so it toggles to 'Less Details' when clicked (https://bugs.launchpad.net/evergreen/+bug/1920039[Bug 1920039])
120 * Fixes circ history CSV export in the Bootstrap OPAC (https://bugs.launchpad.net/evergreen/+bug/1954923[Bug 1954923])
121 * Fixes color contrast on Bootstrap OPAC forms (https://bugs.launchpad.net/evergreen/+bug/1942240[Bug 1942240])
122 * Fixes formatting in Bootstrap OPAC My Lists (https://bugs.launchpad.net/evergreen/+bug/1907863[Bug 1907863])
123 * Fixes a bug in the Bootstrap OPAC where the self-registration library setting wasn't honored (https://bugs.launchpad.net/evergreen/+bug/1958163[Bug 1958163])
124 * Adds Matomo support to the Bootstrap OPAC (https://bugs.launchpad.net/evergreen/+bug/1966802[Bug 19668020])
125 * Stopgap fix to prevent OPAC payment when zero-dollar or negative bills are present on a patron's account (https://bugs.launchpad.net/evergreen/+bug/1965579[Bug 19965579])
126
127
128 ==== Serials ====
129
130 * Fixes an issue where subscription manager fetched too many parallel requests (https://bugs.launchpad.net/evergreen/+bug/1949389[Bug 1949389])
131
132 ==== Self Check ====
133
134 * Adds Preferred Name to self checkout (https://bugs.launchpad.net/evergreen/+bug/1847827[Bug1847827])
135
136
137 === Acknowledgements ===
138
139 We would like to thank the following individuals who contributed code,
140 testing and documentation patches to the 3.7.3 point release of Evergreen:
141
142 * MaryAnn Alexander
143 * John Amundson
144 * Jason Boyer
145 * Dan Briem
146 * Jennifer Bruch
147 * Christine Burns
148 * Steve Callender
149 * Galen Charlton
150 * Garry Collum
151 * Jeff Davis
152 * Bill Erickson
153 * Jason Etheridge
154 * Lynn Floyd
155 * Ruth Frasur
156 * Jeff Godin
157 * Elaine Hardy
158 * Blake Graham Henderson
159 * Kyle Huckins
160 * Tiffany Little
161 * Shula Link
162 * Mary Llewellyn
163 * Terran McCanna
164 * Gina Monti
165 * Michele Morgan
166 * Andrea Buntz Neiman
167 * Jennifer Pringle
168 * Mike Risher
169 * Mike Rylander
170 * Jane Sandberg
171 * Chris Sharp
172 * Jason Stephenson
173 * Josh Stompro
174 * Jennifer Weston
175 * Beth Willis
176 * Jessica Woolford
177
178
179 == Evergreen 3.8.0 ==
180
181 === Upgrade notes ===
182
183 ==== New Permissions ====
184
185 * UPDATE_USER_PHOTO_URL
186 * CREATE_RECORD_NOTE
187 * UPDATE_RECORD_NOTE
188 * DELETE_RECORD_NOTE
189
190 ==== Removed Permissions ====
191
192 * VIEW_STANDING_PENALTY
193
194 ==== New Library Settings ====
195
196 * Pickup Library Soft stalling interval
197 * Pickup Library Hard stalling interval
198 * Void item deposit fee on checkin
199 * Require Photo URL field on patron registration
200 * Show Photo URL field on patron registration
201 * Suggest Photo URL field on patron registration
202 * My Account URL
203 * Maximum number of spelling suggestions that may be offered
204 * Stripe ISO 4217 currency code
205 * Use Item Price or Cost as Primary Item Value
206 * Use Item Price or Cost as Backup Item Value
207 * Staff Catalog Search Filters
208 * Workstation OU is the default for staff-placed holds
209
210 ==== Backing Up Auditor `alert_message` Column ====
211
212 WARNING: The upgrade script will remove the alert_message field from the
213 auditor table, so if you care about preserving those you should run a query to
214 create a backup.
215
216 For example:
217
218 [source,sql]
219 ----
220 CREATE TABLE auditor.backup_usr_alert_msg AS
221    CREATE audit_id, audit_time, audit_action, audit_user,
222           audit_ws, id as "usr_id", last_update_time,
223           alert_message
224    FROM auditor.actor_usr_history
225    WHERE alert_message IS NOT NULL;
226 ----
227
228 ==== Reindexing for Search Suggestions ====
229
230 The upgrade includes a partial reindexing to update search suggestions. After
231 running the schema upgrade script, e.g., `version-upgrade/3.7.1-3.8.0-upgrade-db.sql`,
232 the reindexing can be done as follows.
233
234 First, in a `psql` session connected to your Evergreen database, run:
235
236 [source,sql]
237 ----
238 \a
239 \t
240
241 \o title
242 select value from metabib.title_field_entry where source in (select id from biblio.record_entry where not deleted);
243 \o author
244 select value from metabib.author_field_entry where source in (select id from biblio.record_entry where not deleted);
245 \o subject
246 select value from metabib.subject_field_entry where source in (select id from biblio.record_entry where not deleted);
247 \o series
248 select value from metabib.series_field_entry where source in (select id from biblio.record_entry where not deleted);
249 \o identifier
250 select value from metabib.identifier_field_entry where source in (select id from biblio.record_entry where not deleted);
251 \o keyword
252 select value from metabib.keyword_field_entry where source in (select id from biblio.record_entry where not deleted);
253
254 \o
255 \a
256 \t
257 \q
258 ----
259
260 Then, from the command line:
261
262 [source,sh]
263 ----
264 $ ~/EG-src-path/Open-ILS/src/support-scripts/symspell-sideload.pl title > title.sql
265 $ ~/EG-src-path/Open-ILS/src/support-scripts/symspell-sideload.pl author > author.sql
266 $ ~/EG-src-path/Open-ILS/src/support-scripts/symspell-sideload.pl subject > subject.sql
267 $ ~/EG-src-path/Open-ILS/src/support-scripts/symspell-sideload.pl series > series.sql
268 $ ~/EG-src-path/Open-ILS/src/support-scripts/symspell-sideload.pl identifier > identifier.sql
269 $ ~/EG-src-path/Open-ILS/src/support-scripts/symspell-sideload.pl keyword > keyword.sql
270 ----
271
272 Then finally, back in `psql`:
273
274 [source,sql]
275 ----
276 ALTER TABLE search.symspell_dictionary SET UNLOGGED;
277 TRUNCATE search.symspell_dictionary;
278
279 \i identifier.sql
280 \i author.sql
281 \i title.sql
282 \i subject.sql
283 \i series.sql
284 \i keyword.sql
285
286 CLUSTER search.symspell_dictionary USING symspell_dictionary_pkey;
287 REINDEX TABLE search.symspell_dictionary;
288 ALTER TABLE search.symspell_dictionary SET LOGGED;
289 VACUUM ANALYZE search.symspell_dictionary;
290
291 DROP TABLE search.symspell_dictionary_partial_title;
292 DROP TABLE search.symspell_dictionary_partial_author;
293 DROP TABLE search.symspell_dictionary_partial_subject;
294 DROP TABLE search.symspell_dictionary_partial_series;
295 DROP TABLE search.symspell_dictionary_partial_identifier;
296 DROP TABLE search.symspell_dictionary_partial_keyword;
297 ----
298
299 ==== Updating Reports on Patron Notes ====
300
301 The underlying data structure for patron notes has changed with all notes
302 living in the `actor.usr_message` table, so report writers will need to change
303 the following paths in existing reports:
304
305  * `actor.usr_note` -> all columns
306  * `actor.usr` -> `alert_message`
307  * `actor.usr_standing_penalty` -> note
308
309 And for `actor.usr_message`, there is now both a `pub` column and a `deleted` column.
310
311 ==== Holdings Editor Preferences ====
312
313 Given the number of changes between the AngJS holdings editor and the
314 new Angular interfaces, preferences stored for the AngJS interface will
315 not be honored by the new interface.  New preferences will have to be
316 applied by staff as needed.
317
318 === New Features ===
319
320 ==== Acquisitions ====
321
322 ===== Angular Rewrite of Acquisitions Administration Interfaces =====
323
324 Several administrative interfaces for acquisitions have been rewritten
325 to use the Angular framework:
326
327   * Claiming
328   * Currencies and Exchange Rates
329   * Distribution Formulas
330   * EDI Attribute Sets
331   * Fund Administration
332
333 ====== Claiming ======
334
335 The interface for managing claim policies is now a single multi-tabbed
336 page that combines the previous interfaces for:
337
338   * Claim Policies
339   * Claim Policy Actions
340   * Claim Types
341   * Claim Event Types
342
343 The new interface can be found in Administration > Acquisitions
344 Administration > Claiming.
345
346 ====== Currencies and Exchange Rates ======
347
348 The previous two interfaces for managing currencies and exchange
349 rates have been consolidated into one. The new interface allows
350 users to create, modify, and delete currency types. In addition,
351 the list of currencies now has 'Manage Exchange Rates' buttons
352 to allow specifying the exchange rate from the selected currency
353 to another one.
354
355 If an exchange is set in one direction, e.g., from USD to EUR,
356 opening the 'Manage Exchange Rates' for EUR will show the inverse
357 of the exchange rate for USD as a read-only field.
358
359 The new interface can be found in Administration > Acquisitions
360 Administration > Currencies and Exchange Rates.
361
362 ====== Distribution Formulas ======
363
364 The Angular interface for managing distribution formulas displays
365 a grid of existing formulas and allows authorized users to create,
366 modify, and delete formulas. The dialog for editing a formula
367 allows the user to define one or more entries containing
368 owning library, number of items, and optionally shelving location, fund,
369 circulation modifier, and collection code.
370
371 The new interface can be found in Administration > Acquisitions
372 Administration > Distribution Formulas.
373
374 ====== EDI Attribute Sets ======
375
376 The Angular EDI attribute sets interface is similar to the previous
377 one. However, it includes enhancements to display the number of
378 providers using an attribute set as well as a 'View Providers' button
379 to navigate to those providers.
380
381 The new interface can be found in Administration > Acquisitions
382 Administration > EDI Attribute Sets.
383
384 ====== Fund Administration ======
385
386 The new fund administration interface unifies configuration of funding
387 sources, purchasing funds, and fund tags. The interface has three tabs:
388
389   * Funds
390   * Funding Sources
391   * Fund Tags
392
393 The Funds tab displays a filterable list of funds that allows the
394 user to create, modify, and remove funds. The fund name is hyperlinked;
395 clicking that hyperlink opens a dialog that has the following tabs:
396
397   * Summary: this contains summary information about the fund,
398     including various balances.
399   * Allocations: this lists allocations to and from the fund.
400   * Transfers: this lists fund transfers to and from the fund.
401   * Debits: this lists debits against the fund. As an enhancement
402     from the previous version of the funds interface, the grid
403     of debits now has links to the line item, purchase order,
404     and/or invoice associated with the debit.
405   * Tags: this lists the tags associated with the funds and allows
406     the user to add or remove tag associations.
407
408 The fund management dialog also allows the user to create allocations
409 into the fund and transfer money away from the fund.
410
411 The funds tab also has a 'Fiscal Propagation and Rollover' button.
412 The library from the selector on the funds tab is used to set the
413 context org unit for the propagation and rollover. Upon clicking the
414 button, a dialog box appears that allows the user to select the fiscal
415 year to propagate or rollover, checkboxes to specify whether to also
416 perform a fiscal year close-out and whether to limit a close-out to
417 encumbrances, and a checkbox to specify whether or not to do a dry run.
418 Upon completion of the propagation, the dialog will display summary
419 results.
420
421
422 The Funding Sources tab displays a filterable list of funding
423 sources and allows the user to create funding sources, apply and view
424 credits, allocate money to funds, and view allocations.
425
426 The Fund Tags tab presents a grid that allows users view view,
427 create, modify, and delete fund tags. Assigning a tag to a fund is
428 done using the fund management dialog.
429
430 The new interface can be found in Administration > Acquisitions
431 Administration > Fund Administration.
432
433 ====== Other Changes ======
434
435 The following miscellaneous changes are included in this work:
436
437 * Funds are now displayed in Angular selectors with the pattern
438   "CODE (YEAR) (OWNING_LIBRARY)"
439 * The automatically generated fund allocation note associated with
440   fund transfers now reads "Transfer to/form fund CODE (YEAR) (OWNER)".
441   Previously, the fund was identified only by its numeric fund ID.
442 * A new style was added for display of negative money amounts. By
443   default, these amounts display with red text.
444 * The fund propagation and rollover report now includes the total
445   amount of encumbrances that were rolled over.
446 * Various dynamic Angular comboboxes will now display up to 100
447   entries upon a click without requiring that the user submit a
448   search term.
449 * Various Angular record editing forms will now complain if
450   the user tries to save a field value that contains only whitespace.
451 * Currency amounts in Angular are no longer displayed with a currency
452   symbol. Prior to this change, monetary amounts were displayed with
453   a dollar sign regardless of the intended currency.
454 * Various changes were made in the IDL to adjust field labels and
455   to mark certain fields as required.
456
457 ===== Fund Debit Auditor Table =====
458
459 A new auditor table now exists for the `acq.fund_debit` table. This
460 allows detailed reporting on changes to encumbrances and expenditures
461 over time.
462
463
464 ===== Miscellaneous =====
465
466 * Funding sources now have an active flag. If a funding source is marked
467   as inactive, adding credits to it or allocating from it is disabled, and
468   it will not show up in the list of possible funding sources when allocating
469   to a fund.
470
471 ==== Administration ====
472
473 ===== Case Insensitive Browse Entries =====
474
475 It is now possible for a system administrator to select whether
476 a particular browse entry field's case should be considered when
477 determining uniqueness.  A new "Browse Folding is Case-Insensitive"
478 column has been added to the Administration -> Server Administration
479 -> MARC Search/Facet Fields interface.  Note that a bib record reingest
480 will be required for changes to take effect.
481
482 ===== Miscellaneous =====
483
484 * The 'Search Filter Groups' administration interface is now ported
485   to Angular.
486
487 ==== Cataloging ====
488
489 ===== Holdings Maintenance & Item Attributes Editor Angular Port =====
490
491 Key differences from the AngularJS Holdings and Item Attr. editor 
492 interfaces include the following:
493
494 * Tabbed Holdings vs. Item Attr. interfaces.
495 ** With option to display as a unified interface without tabs.
496 * Item Attr. fields retain position when showing/hiding
497 * Improve keyboard navigation of Item Attr. editor.
498 * Templates are once again managed directly in the Item Attr. editor.
499 * Item Attr. displays values as counts summaries with option to edit by
500   clicking on a field (or tabbing + Enter) a la XUL.
501 * Item Attr batch values support changing only items with selected values.
502 * Batch value display limit vertical expansion of long lists with option for 
503   manual expansion.
504 * All fields are visible by default; hidden by modifying preferences. 
505 * Owning Library is managed in the Item Attr editor a la XUL.
506 * New feature called "Change Circ Lib When Owning Lib Changes"
507 * Generate Barcodes and Use Checkdigit are visible in the main holdings
508   form with option to hide.
509 * Print Labels checkbox moved from Preferences to the save actions toolbar.
510 * Option to hide various Holdings interface columns for extra horizontal space.
511 * Option to temporarily expand columns in the Holdings interface for reviewing
512   wide columns of text.
513
514 ===== Fix for Authority Records with Long Subfields =====
515
516 Importing or updating authority records with long subfields, i.e. in
517 the vicinity of 5,000 characters or more in length, can cause database
518 errors that will prevent the update or import from happening.  The
519 error occurs because non-full text indexes in PostgreSQL have a
520 limited length, and long fields sometimes lead to index entries that
521 exceed this maximum value.
522
523 In order to rectify this issue, two database indexes on the
524 `authority.full_rec` table's `value` column have been redefined to
525 match their counterparts in the `metabib.real_full_rec` table.  After
526 this update, only the first 1024 characters of an authority field or
527 subfield will be considered by these indexes.
528
529 NOTE: These indexes are not used for authority record search, though
530 they are used for sorting and paging.
531
532 ===== Bib Record -1 Can No Longer Be Edited =====
533
534 Now when retrieving the bibliographic record with the id of -1 the
535 delete button will be missing and the save button is disabled.
536
537 In addition, new database rules now protect bib record ID -1,
538 call number ID -1 and copy location ID 1 from editing.
539
540 ===== MARC Batch Import/Export Separate Edit Date/Editor Toggle =====
541
542 Adds a new field "Update Bib Edit Date" to Vandelay merge profiles which
543 allows users to update the edit date and editor information on a
544 merged/overlaid bib record without also having to modify the bib source.
545
546 For backwards compatibility, any existing merge profiles that have 
547 "Update Bib Source" applied will also get "Update Bib Edit Date" applied.
548
549 ===== Browse Heading Navigation =====
550
551 In the Angular staff catalog, when viewing the list of bib records linked
552 to a heading, it's now possible to navigate to the previous or next heading
553 directly on the bib list page without having to return to the original
554 browse search.
555
556 ===== Bibliographic Record Notes =====
557
558 Bibliographic record notes (i.e., administrative notes stored in the
559 `biblio.record_note` table, not 5XX fields in the MARC record) can now
560 be edited from the Record Notes tab.  Three new permissions manage this
561 and should be added to cataloging accounts and permission groups as
562 appropriate:  `CREATE_RECORD_NOTE`, `UPDATE_RECORD_NOTE`, and
563 `DELETE_RECORD_NOTE`. There is an optional public display flag that is
564 not yet supported in the public catalog but included to support future functionality.
565
566 ==== Circulation ====
567
568 ===== Granular control over how to use price and acquisition cost to determine item value  =====
569
570 This feature adds two new library settings:
571
572  * Use Item Price or Cost as Primary Item Value
573  * Use Item Price or Cost as Backup Item Value
574
575 Which intersect the behavior of these existing settings:
576
577  * Charge lost on zero
578  * Default Item Price
579  * Minimum Item Price
580  * Maximum Item Price
581
582 Each of these settings affect how item price is used in
583 various contexts and is not limited to "lost" items, but
584 can affect notices, fine rules, and billings for long
585 overdue and damaged items (as well as lost items).
586
587 By default, the price field on items is the only field
588 considered by these various uses, but if we set, for
589 example, "Use Item Price or Cost as Primary Item Value" to
590 "cost", then we'll use the cost field instead of the price
591 field.
592
593 Alternately, if we set the "Backup Item Value" to "cost"
594 and either leave the "Primary Item Value" setting unset or
595 set to "price", then we'll consider the price field first,
596 and if it is either unset/null or equal to 0 (and
597 "Charge lost on zero" is true), then it'll fall-through to
598 the cost field.  We can also flip the behavior with these
599 settings and consider cost first and then price second.
600
601 The primary intended use case for this feature is:
602
603  - If there's an acquisition cost, charge this as the lost value.
604  - If there's not an acquisition cost, but there's a price, charge the price.
605  - If neither, charge the default value.
606
607 ===== Library selector on the holds pull list =====
608
609 The holds pull list screen now includes a library/org unit selector.
610 This allows staff to view the pull list of any library where they have
611 VIEW_HOLDS permissions, rather than having to log in to a workstation
612 at that library.
613
614 ===== Angular Holds Pull List =====
615
616 The holds pull list now uses Angular and has an address of `/eg2/en-US/staff/circ/holds/pull-list`.
617
618 ===== New Item Triggered Events Log =====
619
620 A reimplementation of the Item Triggered Events Log interface, building
621 on the Patron Triggered Events Log Angular reimplementation.
622
623 ===== Template Support for Information and My Account URLs =====
624
625 A new setting has been added named `lib.my_account_url` to provide a
626 path usable in templates to a patron's account login. Both this and
627 the existing `lib.info_url` settings are now available in the
628 server-side processed templates, action triggers and traditional print
629 receipts.
630
631 Web side processed templates can be found in 
632 Administration -> Server Administration -> Print Templates.
633
634 You can add settings using the following syntax:
635
636 [source,html]
637 ----
638 <div>[% helpers.get_org_setting(staff_org.id, 'lib.info_url'); %]</div>
639 <div>[% helpers.get_org_setting(staff_org.id, 'lib.my_account_url'); %]</div>
640 ----
641
642 Print Receipts found in Administration -> Workstation -> Print Templates
643 can be added with these includes:
644
645 [source,conf]
646 ----
647 {{includes.info_url}}
648 {{includes.my_account_url}}
649 ----
650
651 Action triggers can use both values with the `helpers.get_org_setting`
652 include.  Example:
653
654 [source,conf]
655 ----
656 [% helpers.get_org_setting(circ_lib.id, 'lib.my_account_url') %]
657 ----
658
659
660 ===== Override Dialogs  =====
661
662 This reworks the override action dialogs in the patron display for Check Out
663 and Items Out, and in the Circulation -> Renew Items interface.  It exposes the
664 auto-override behavior as checkboxes giving staff more fine-grained control
665 over which events are auto-forced or skipped upon subsequent encounters.  It
666 also changes the Cancel action for batch renewals to abort the remaining
667 renewals in the batch, and makes it so that new authorization credentials
668 provided during such a batch will be treated as an operator change for the
669 entire batch.  We also fix an existing bug where events marked as already
670 encountered for auto-override could leak into other patron contexts via Patron
671 Search.
672
673 ===== New Patron Triggered Events Log =====
674
675 A reimplementation of the Patron Triggered Events Log interface along with
676 supporting infrastructure for speedier results with large datasets.
677
678 ===== Photo URL  =====
679
680 Editing of the patron's photo URL can now be done in the staff client's patron
681 registration and edit screen. A new permission UPDATE_USER_PHOTO_URL controls
682 the ability to actually edit the field.
683
684 ===== `open-ils.circ.renew.auto` Removed =====
685
686 The deprecated `open-ils.circ.renew.auto` API was removed.  You will
687 want to use `open-ils.circ.renew` with the `auto_renewal` option set
688 to 1.  This mainly affects those who have written custom code using
689 the open-ils.circ backend.
690
691 ===== Void Deposit Billing at Checkin =====
692
693 There is a new setting called "Void item deposit fee on checkin"
694 that, when enabled, will cause items that have deposit billings
695 to be automatically voided.
696
697 ===== Miscellaneous =====
698
699 * The patron record editor now has a button to send a password
700   reset email to the patron's email address.
701 * Add a new pair of library settings to support pickup library-based
702   hold stalling. 'Pickup Library Soft stalling interval', when set for,
703   the pickup library, specifies that for holds with a request time age
704   smaller than the specified interval only items scanned at the pickup
705   library can be opportunistically captured. Example "5 days". This setting
706   takes precedence over "Soft stalling interval" (circ.hold_stalling.soft)
707   when the interval is in force. 'Pickup Library Hard stalling interval',
708   when set for the pickup library, specifies that no items with a
709   calculated proximity greater than 0 from the pickup library can be
710   directly targeted for this time period if there are local available
711   copies.
712 * Add a new library setting, 'Workstation OU is the default for staff-placed holds',
713   to indicate that the workstation OU should be set as the default pickup
714   location for hold requests that are placed via the staff interface. The
715   process for setting the default pickup location is now:
716   . Workstation if the 'Workstation OU is the default for staff-placed holds' setting
717     is turned on
718   . The user's preferred pickup location, if set
719   . if the user's preferred pickup location is not set, the
720     Workstation if the 'Workstation OU fallback for staff-placed holds'
721     setting is turned on
722   . Otherwise, it defaults to the user's home library.
723
724 ==== Client ====
725
726 ===== Consolidate Patron Notes, Alerts, and Messages =====
727
728 Patron notes, messages, alert messages, and standing penalties have been folded
729 into one Notes interface.  Notes designated as public will show in the My
730 Account -> Message Center in the public catalog for patrons.
731
732 The underlying data structure has also changed with all notes living in the
733 `actor.usr_message` table, so report writers will need to change the following
734 paths in existing reports:
735
736  * `actor.usr_note` -> all columns
737  * `actor.usr` -> `alert_message`
738  * `actor.usr_standing_penalty` -> note
739
740 And for `actor.usr_message`, there is now both a `pub` column and a `deleted` column.
741
742 Depending on privacy policies, system administrators may wish to set up a
743 recurring process to truly delete older entries in `actor.usr_message` that have
744 been flagged as deleted.
745
746 WARNING: The upgrade script will remove the alert_message field from the
747 auditor table, so if you care about preserving those you should run a query to
748 create a backup.
749
750 For example:
751
752 [source,sql]
753 ----
754 CREATE TABLE auditor.backup_usr_alert_msg AS
755    CREATE audit_id, audit_time, audit_action, audit_user,
756           audit_ws, id as "usr_id", last_update_time,
757           alert_message
758    FROM auditor.actor_usr_history
759    WHERE alert_message IS NOT NULL;
760 ----
761
762 ===== Fix for Staff Splash Page Multi-Word Search =====
763
764 The addition of the Angular Staff Catalog surfaced a double-encoding issue
765 with redirects in certain Apache versions. This caused searches for multiple
766 words to have %20 in place of spaces, almost certainly resulting in 0 results.
767
768 In order to apply this fix, change the Angular redirects in eg_vhost.conf from
769
770  RewriteRule ^/eg2/(.*) https://%{HTTP_HOST}/eg2/en-US/$1 [R=307,L]
771
772 to
773
774  RewriteRule ^/eg2/(.*) https://%{HTTP_HOST}/eg2/en-US/$1 [NE,R=307,L]
775
776 ===== Miscellaneous =====
777
778 * In the Angular staff catalog, rename 'Catalog Preferences' to
779   'Search Preferences' and add a return button.
780 * Angular grids now have a have a 'Manage Actions Menu' configuration
781   action to allow users to control which actions are displayed
782   on the context menu for the grid.
783 * The item table and holdings view in the Angular staff catalog record
784   details page now include 'Total Circ Count' and 'Last Circ Date' columns.
785 * There is a new library setting, 'Staff Catalog Search Filters', that can be
786   used to customize the list of search filters that are available on the
787   Angular staff catalog advanced search form. This setting takes an array
788   of desired filters, e.g., `["item_lang","audience","lit_form"]`. The complete
789   list of available filters is item_type, item_form, item_lang, audience,
790   vr_format, bib_level, and lit_form. If the library setting is not set,
791   all of the filters are displayed.
792
793 ==== Public Catalog ====
794
795 ===== Credit card payments using Stripe now implemented with PaymentIntents instead of Charges =====
796
797 This changes the Stripe code in the public catalog to use their PaymentIntents and confirmCreditCard API,
798 which is recommended over their Charges API.  Credit card charges are no longer finalized
799 (captured/confirmed) on Evergreen's backend, though the backend does check whether a payment was
800 made successfully before recording it.
801
802 ===== Miscellaneous =====
803
804 * The Bootstrap public catalog now displays cover images on the My Account
805   items checked out, check out history, holds, and holds history pages.
806 * Carousels on the public catalog home page now take up 80% of the page width
807   by default rather than just 40%.
808
809 ==== Reports ====
810
811 ===== Reporter Item Statistics View =====
812
813 A new reports source, Item Statistics View is available.
814 Certain third-party products such as collection development
815 management providers require copy statistics that are not
816 readily available in a single report.  This view adds those,
817 which will also benefit library staff reports generally.
818
819 To add the view, a system administrator will need to (re-)run
820 the example.reporter-extension.sql script, which will create 
821 the new view in the database.
822
823 ===== Hold/Copy Ratio Report Source Changes =====
824
825 This standardizes how the existing Hold/Copy Ratio reports sources count holdable copies; notably, metarecord copies are no longer counted in these report sources and all sources now use action.hold_copy_map. 
826
827 Any reports using these sources will need to be rewritten.
828
829 A new source that breaks out counts by patron home library was also added, named Hold/Copy Ratio per Bib and Home Library.
830
831
832 ===== Add Dewey Call Number Blocks and Ranges to Reports =====
833
834 A new view is added to the reporter with links from Call Number that
835 will allow users to display or filter on the Dewey 10's or 100's block
836 or range that a call number falls within. They can be accessed by
837 following the "Dewey Classification" link from Call Number.
838
839 ===== More Granular Age Divisions for Reports =====
840
841 Reports now include an option for more detailed age divisions for users
842 based on the entered date of birth.  Divisions include:
843
844  * Child 0-5 Years Old
845  * Child 6-12 Years Old
846  * Teen 13-17 Years Old
847  * Adult 18-25 Years Old
848  * Adult 26-49 Years Old
849  * Adult 50-59 Years Old
850  * Adult 60-69 Years Old
851  * Adult 70+
852
853 This new column is accessible from ILS User -> Demographic Info and the new
854 field is named "Detailed Age Division".
855
856 === Acknowledgments ===
857
858 The Evergreen project would like to acknowledge the following
859 organizations that commissioned developments in this release of
860 Evergreen:
861
862 * CW MARS
863 * Evergreen Community Development Initiative
864 * NOBLE
865 * PaILS
866 * Westchester Library System
867
868 We would also like to thank the following individuals who contributed
869 code, translations, documentations, patches, and tests to this release of
870 Evergreen:
871
872 * Adam Bowling
873 * Andrea Buntz Neiman
874 * Angela Kilsdonk
875 * Beth Willis
876 * Bill Erickson
877 * Blake Graham-Henderson
878 * Chris Sharp
879 * Christine Burns
880 * Christine Morgan
881 * Chrisy Schroth
882 * Dan Briem
883 * Dawn Dale
884 * Elaine Hardy
885 * Erica Rohlfs
886 * Galen Charlton
887 * Garry Collum
888 * Gina Monti
889 * Jane Sandberg
890 * Jason Boyer
891 * Jason Etheridge
892 * Jason Stephenson
893 * Jeff Davis
894 * Jeff Godin
895 * Jennifer Bruch
896 * Jennifer Pringle
897 * Jennifer Weston
898 * Jessica Woolford
899 * John Amundson
900 * Josh Stompro
901 * Katie G. Martin
902 * Kyle Huckins
903 * Lindsay Stratton
904 * Lisa Carlucci
905 * Lynn Floyd
906 * Mary Llewellyn
907 * Michele Morgan
908 * Mike Risher
909 * Mike Rylander
910 * Rogan Hamby
911 * Rosie Le Faive
912 * Ruth Frasur
913 * Seth Erickson
914 * Shula Link
915 * Stephen Wills
916 * Terran McCanna
917 * Tiffany Little
918 * Verbio Group
919
920 We also thank the following organizations whose employees contributed
921 patches:
922
923 * BC Libraries Coop
924 * Bibliomation
925 * Catalyte
926 * CW MARS
927 * Emerald Data
928 * Equinox Open Library Initiative
929 * Georgia Public Library Service
930 * Greater Clarks Hill Regional Library
931 * Indiana State Library
932 * Kenton County Library
933 * King County Library System
934 * Linn Benton Community College
935 * MOBIUS
936 * NOBLE
937 * PaILS
938 * Sigio
939 * University of Prince Edward Island
940 * Westchester Library System
941
942 We regret any omissions.  If a contributor has been inadvertently
943 missed, please open a bug at http://bugs.launchpad.net/evergreen/
944 with a correction.