From 936729f2b04fdf7813d2b198edf717e4fd78f058 Mon Sep 17 00:00:00 2001 From: Galen Charlton Date: Mon, 4 Oct 2021 12:04:56 -0400 Subject: [PATCH] check in first draft of release notes Signed-off-by: Galen Charlton --- docs/RELEASE_NOTES_3_8.adoc | 686 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 686 insertions(+) create mode 100644 docs/RELEASE_NOTES_3_8.adoc diff --git a/docs/RELEASE_NOTES_3_8.adoc b/docs/RELEASE_NOTES_3_8.adoc new file mode 100644 index 0000000000..01f56a3d7a --- /dev/null +++ b/docs/RELEASE_NOTES_3_8.adoc @@ -0,0 +1,686 @@ += Evergreen 3.8 Release Notes = +:toc: +:numbered: +:toclevels: 3 + +== Evergreen 3.8-beta == + +=== Upgrade notes === + +==== New Permissions ==== + +* UPDATE_USER_PHOTO_URL +* CREATE_RECORD_NOTE +* UPDATE_RECORD_NOTE +* DELETE_RECORD_NOTE + +==== Removed Permissions ==== + +* VIEW_STANDING_PENALTY + +==== New Library Settings ==== + +* Pickup Library Soft stalling interval +* Pickup Library Hard stalling interval +* Void item deposit fee on checkin +* Require Photo URL field on patron registration +* Show Photo URL field on patron registration +* Suggest Photo URL field on patron registration +* My Account URL +* Maximum number of spelling suggestions that may be offered +* Stripe ISO 4217 currency code +* Use an all lowercase version of a Stripe-supported ISO 4217 currency code. Defaults to "usd" +* Use Item Price or Cost as Primary Item Value +* Use Item Price or Cost as Backup Item Value +* Staff Catalog Search Filters +* Workstation OU is the default for staff-placed holds + +==== Backing Up Auditor `alert_message` Column ==== + +WARNING: The upgrade script will remove the alert_message field from the +auditor table, so if you care about preserving those you should run a query to +create a backup. + +For example: + +[source,sql] +---- +CREATE TABLE auditor.backup_usr_alert_msg AS + CREATE audit_id, audit_time, audit_action, audit_user, + audit_ws, id as "usr_id", last_update_time, + alert_message + FROM auditor.actor_usr_history + WHERE alert_message IS NOT NULL; +---- + +==== Updating Reports on Patron Notes ==== + +The underlying data structure for patron notes has changed with all notes +living in the `actor.usr_message` table, so report writers will need to change +the following paths in existing reports: + + * `actor.usr_note` -> all columns + * `actor.usr` -> `alert_message` + * `actor.usr_standing_penalty` -> note + +And for `actor.usr_message`, there is now both a `pub` column and a `deleted` column. + +==== Holdings Editor Preferences ==== + +Given the number of changes between the AngJS holdings editor and the +new Angular interfaces, preferences stored for the AngJS interface will +not be honored by the new interface. New preferences will have to be +applied by staff as needed. + +=== New Features === + +==== Acquisitions ==== + +===== Angular Rewrite of Acquisitions Administration Interfaces ===== + +Several administrative interfaces for acquisitions have been rewritten +to use the Angular framework: + + * Claiming + * Currencies and Exchange Rates + * Distribution Formulas + * EDI Attribute Sets + * Fund Administration + +====== Claiming ====== + +The interface for managing claim policies is now a single multi-tabbed +page that combines the previous interfaces for: + + * Claim Policies + * Claim Policy Actions + * Claim Types + * Claim Event Types + +The new interface can be found in Administration > Acquisitions +Administration > Claiming. + +====== Currencies and Exchange Rates ====== + +The previous two interfaces for managing currencies and exchange +rates have been consolidated into one. The new interface allows +users to create, modify, and delete currency types. In addition, +the list of currencies now has 'Manage Exchange Rates' buttons +to allow specifying the exchange rate from the selected currency +to another one. + +If an exchange is set in one direction, e.g., from USD to EUR, +opening the 'Manage Exchange Rates' for EUR will show the inverse +of the exchange rate for USD as a read-only field. + +The new interface can be found in Administration > Acquisitions +Administration > Currencies and Exchange Rates. + +====== Distribution Formulas ====== + +The Angular interface for managing distribution formulas displays +a grid of existing formulas and allows authorized users to create, +modify, and delete formulas. The dialog for editing a formula +allows the user to define one or more entries containing +owning library, number of items, and optionally shelving location, fund, +circulation modifier, and collection code. + +The new interface can be found in Administration > Acquisitions +Administration > Distribution Formulas. + +====== EDI Attribute Sets ====== + +The Angular EDI attribute sets interface is similar to the previous +one. However, it includes enhancements to display the number of +providers using an attribute set as well as a 'View Providers' button +to navigate to those providers. + +The new interface can be found in Administration > Acquisitions +Administration > EDI Attribute Sets. + +====== Fund Administration ====== + +The new fund administration interface unifies configuration of funding +sources, purchasing funds, and fund tags. The interface has three tabs: + + * Funds + * Funding Sources + * Fund Tags + +The Funds tab displays a filterable list of funds that allows the +user to create, modify, and remove funds. The fund name is hyperlinked; +clicking that hyperlink opens a dialog that has the following tabs: + + * Summary: this contains summary information about the fund, + including various balances. + * Allocations: this lists allocations to and from the fund. + * Transfers: this lists fund transfers to and from the fund. + * Debits: this lists debits against the fund. As an enhancement + from the previous version of the funds interface, the grid + of debits now has links to the line item, purchase order, + and/or invoice associated with the debit. + * Tags: this lists the tags associated with the funds and allows + the user to add or remove tag associations. + +The fund management dialog also allows the user to create allocations +into the fund and transfer money away from the fund. + +The funds tab also has a 'Fiscal Propagation and Rollover' button. +The library from the selector on the funds tab is used to set the +context org unit for the propagation and rollover. Upon clicking the +button, a dialog box appears that allows the user to select the fiscal +year to propagate or rollover, checkboxes to specify whether to also +perform a fiscal year close-out and whether to limit a close-out to +encumbrances, and a checkbox to specify whether or not to do a dry run. +Upon completion of the propagation, the dialog will display summary +results. + + +The Funding Sources tab displays a filterable list of funding +sources and allows the user to create funding sources, apply and view +credits, allocate money to funds, and view allocations. + +The Fund Tags tab presents a grid that allows users view view, +create, modify, and delete fund tags. Assigning a tag to a fund is +done using the fund management dialog. + +The new interface can be found in Administration > Acquisitions +Administration > Fund Administration. + +====== Other Changes ====== + +The following miscellaneous changes are included in this work: + +* Funds are now displayed in Angular selectors with the pattern + "CODE (YEAR) (OWNING_LIBRARY)" +* The automatically generated fund allocation note associated with + fund transfers now reads "Transfer to/form fund CODE (YEAR) (OWNER)". + Previously, the fund was identified only by its numeric fund ID. +* A new style was added for display of negative money amounts. By + default, these amounts display with red text. +* The fund propagation and rollover report now includes the total + amount of encumbrances that were rolled over. +* Various dynamic Angular comboboxes will now display up to 100 + entries upon a click without requiring that the user submit a + search term. +* Various Angular record editing forms will now complain if + the user tries to save a field value that contains only whitespace. +* Currency amounts in Angular are no longer displayed with a currency + symbol. Prior to this change, monetary amounts were displayed with + a dollar sign regardless of the intended currency. +* Various changes were made in the IDL to adjust field labels and + to mark certain fields as required. + +===== Fund Debit Auditor Table ===== + +A new auditor table now exists for the `acq.fund_debit` table. This +allows detailed reporting on changes to encumbrances and expenditures +over time. + + +===== Miscellaneous ===== + +* Funding sources now have an active flag. If a funding source is marked + as inactive, adding credits to it or allocating from it is disabled, and + it will not show up in the list of possible funding sources when allocating + to a fund. + +==== Administration ==== + +===== Case Insensitive Browse Entries ===== + +It is now possible for a system administrator to select whether +a particular browse entry field's case should be considered when +determining uniqueness. A new "Browse Folding is Case-Insensitive" +column has been added to the Administration -> Server Administration +-> MARC Search/Facet Fields interface. Note that a bib record reingest +will be required for changes to take effect. + +===== Miscellaneous ===== + +* The 'Search Filter Groups' administration interface is now ported + to Angular. + +==== Cataloging ==== + +===== Holdings Maintenance & Item Attributes Editor Angular Port ===== + +Key differences from the AngularJS Holdings and Item Attr. editor +interfaces include the following: + +* Tabbed Holdings vs. Item Attr interfaces +** With option to display as a unified interface without tabs. +* Item Attr. fields retain position when showing/hiding +* Improve keyboard navigation of Item Attr. editor +* Templates are once again managed directly in the Item Attr. editor. +* Item Attr. displays values as counts summaries with option to edit by + clicking on a field (or tabbing + Enter) a la XUL. +* Item Attr batch values support changing only items with selected values. +* Batch value display limit vertical expansion of long lists with option for + manual expansion. +* All fields are visible by default; hidden by modifying preferences. +* Owning Library is managed in the Item Attr editor a la XUL. +* New feature called "Change Circ Lib When Owning Lib Changes" +* Generate Barcodes and Use Checkdigit are visible in the main holdings + form with option to hide. +* Print Labels checkbox moved from Preferences to the save actions toolbar. +* Option to hide various Holdings interface columns for extra horizontal space. +* Option to temporarily expand columns in the Holdings interface for reviewing + wide columns of text. + +===== Fix for Authority Records with Long Subfields ===== + +Importing or updating authority records with long subfields, i.e. in +the vicinity of 5,000 characters or more in length, can cause database +errors that will prevent the update or import from happening. The +error occurs because non-full text indexes in PostgreSQL have a +limited length, and long fields sometimes lead to index entries that +exceed this maximum value. + +In order to rectify this issue, two database indexes on the +`authority.full_rec` table's `value` column have been redefined to +match their counterparts in the `metabib.real_full_rec` table. After +this update, only the first 1024 characters of an authority field or +subfield will be considered by these indexes. + +NOTE: These indexes are not used for authority record search, though +they are used for sorting and paging. + +===== Bib Record -1 Can No Longer Be Edited ===== + +Now when retrieving the bibliographic record with the id of -1 the +delete button will be missing and save button is disabled. + +In addition, new database rules now protect bib record ID -1, +call number ID -1 and copy location ID 1 from editing. + +===== MARC Batch Import/Export Separate Edit Date/Editor Toggle ===== + +Adds a new field "Update Bib Edit Date" to Vandelay merge profiles which +allows users to update the edit date and editor information on a +merged/overlaid bib record without also having to modify the bib source. + +For backwards compatibility, any existing merge profiles that have +"Update Bib Source" applied will also get "Update Bib Edit Date" applied. + +===== Browse Heading Navigation ===== + +In the Angular staff catalog, when viewing the list of bib records linked +to a heading, it's now possible to navigate to the previous or next heading +directly on the bib list page without having to return to the original +browse search. + +===== Bibliographic Record Notes ===== + +Bibliographic record notes (i.e., administrative notes stored in the +`biblio.record_note` table, not 5XX fields in the MARC record) can now +be edited from the Record Notes tab. Three new permissions manage this +and should be added to cataloging accounts and permission groups as +appropriate: `CREATE_RECORD_NOTE`, `UPDATE_RECORD_NOTE`, and +`DELETE_RECORD_NOTE`. There is an optional public display flag that is +not yet supported in the public catalog but included to support future functionality. + +==== Circulation ==== + +===== Granular control over how to use price and acquisition cost to determine item value ===== + +This feature adds two new library settings: + + * Use Item Price or Cost as Primary Item Value + * Use Item Price or Cost as Backup Item Value + +which intersect the behavior of these existing settings: + + * Charge lost on zero + * Default Item Price + * Minimum Item Price + * Maximum Item Price + +Each of these settings affect how item price is used in +various contexts and is not limited to "lost" items, but +can affect notices, fine rules, and billings for long +overdue and damaged items (as well as lost items). + +By default, the price field on items is the only field +considered by these various uses, but if we set, for +example, "Use Item Price or Cost as Primary Item Value" to +"cost", then we'll use the cost field instead of the price +field. + +Alternately, if we set the "Backup Item Value" to "cost" +and either leave the "Primary Item Value" setting unset or +set to "price", then we'll consider the price field first, +and if it is either unset/null or equal to 0 (and +"Charge lost on zero" is true), then it'll fall-through to +the cost field. We can also flip the behavior with these +settings and consider cost first and then price second. + +The primary intended use case for this feature is: + + - If there's an acquisition cost, charge this as the lost value. + - If there's not an acquisition cost, but there's price, charge the price. + - If neither, charge the default value. + +===== Library selector on the holds pull list ===== + +The holds pull list screen now includes a library/org unit selector. +This allows staff to view the pull list of any library where they have +VIEW_HOLDS permissions, rather than having to log in to a workstation +at that library. + +===== New Item Triggered Events Log ===== + +A reimplementation of the Item Triggered Events Log interface, building +on the Patron Triggered Events Log Angular reimplemenation. + +===== Template Support for Information and My Account URLs ===== + +A new setting has been added named `lib.my_account_url` to provide a +path usable in templates to a patron's account login. Both this and +the existing `lib.info_url` settings are now available in the +server-side processed templates, action triggers and traditional print +receipts. + +Web side processed templates can be found in +Administration -> Server Administration -> Print Templates. + +You can add settings using the following syntax: + +[source,html] +---- +
[% helpers.get_org_setting(staff_org.id, 'lib.info_url'); %]
+
[% helpers.get_org_setting(staff_org.id, 'lib.my_account_url'); %]
+---- + +Print Receipts found in Administration -> Workstation -> Print Templates +can be added with these includes: + +[source,conf] +---- +{{includes.info_url}} +{{includes.my_account_url}} +---- + +Action triggers can use both values with the `helpers.get_org_setting` +include. Example: + +[source,conf] +---- +[% helpers.get_org_setting(circ_lib.id, 'lib.my_account_url') %] +---- + + +===== Override Dialogs ===== + +This reworks the override action dialogs in the patron display for Check Out +and Items Out, and in the Circulation -> Renew Items interface. It exposes the +auto-override behavior as checkboxes giving staff more fine grained control +over which events are auto-forced or skipped upon subsequent encounters. It +also changes the Cancel action for batch renewals to abort the remaining +renewals in the batch, and makes it so that new authorization credentials +provided during such a batch will be treated as an operator change for the +entire batch. We also fix an existing bug where events marked as already +encountered for auto-override could leak into other patron contexts via Patron +Search. + +===== New Patron Triggered Events Log ===== + +A reimplementation of the Patron Triggered Events Log interface along with +supporting infrastructure for speedier results with large datasets. + +===== Photo URL ===== + +Editing of the patron's photo URL can now be done in the staff client's patron +registration and edit screen. A new permission UPDATE_USER_PHOTO_URL controls +the ability to actually edit the field. + +===== `open-ils.circ.renew.auto` Removed ===== + +The deprecated `open-ils.circ.renew.auto` API was removed. You will +want to use `open-ils.circ.renew` with the `auto_renewal` option set +to 1. This mainly affects those who have written custom code using +the open-ils.circ backend. + +===== Void Deposit Billing at Checkin ===== + +There is a new setting called "Void item deposit fee on checkin" +that, when enabled, will cause items that have deposit billings +to be automatically voided. + +===== Miscellaneous ===== + +* The patron record editor now has a button to send a password + reset email to the patron's email address. +* Add a new pair of library settings to support pickup library-based + hold stalling. 'Pickup Library Soft stalling interval', when set for, + the pickup library, specifies that for holds with a request time age + smaller than the specified interval only items scanned at the pickup + library can be opportunistically captured. Example "5 days". This setting + takes precedence over "Soft stalling interval" (circ.hold_stalling.soft) + when the interval is in force. 'Pickup Library Hard stalling interval', + when set for the pickup library, specifies that no items with a + calculated proximity greater than 0 from the pickup library can be + directly targeted for this time period if there are local available + copies. +* Add a new library setting, 'Workstation OU is the default for staff-placed holds', + to indicate that the workstation OU should be set as the default pickup + location for hold requests that are placed via the staff interface. The + process for setting the default pickup location is now: + . Workstation if the 'Workstation OU is the default for staff-placed holds' setting + is turned on + . The user's preferred pickup location, if set + . if the user's preferred pickup location is not set, the + Workstation if the 'Workstation OU fallback for staff-placed holds' + setting is turned on + . Otherwise, it defaults to the user's home library. + +==== Client ==== + +===== Consolidate Patron Notes, Alerts, and Messages ===== + +Patron notes, messages, alert messages, and standing penalties have been folded +into one Notes interface. Notes designated as public will show in the My +Account -> Message Center in the public catalog for patrons. + +The underlying data structure has also changed with all notes living in the +`actor.usr_message` table, so report writers will need to change the following +paths in existing reports: + + * `actor.usr_note` -> all columns + * `actor.usr` -> `alert_message` + * `actor.usr_standing_penalty` -> note + +And for `actor.usr_message`, there is now both a `pub` column and a `deleted` column. + +Depending on privacy policies, system administrators may wish to set up a +recurring process to truly delete older entries in `actor.usr_message` that have +been flagged as deleted. + +WARNING: The upgrade script will remove the alert_message field from the +auditor table, so if you care about preserving those you should run a query to +create a backup. + +For example: + +[source,sql] +---- +CREATE TABLE auditor.backup_usr_alert_msg AS + CREATE audit_id, audit_time, audit_action, audit_user, + audit_ws, id as "usr_id", last_update_time, + alert_message + FROM auditor.actor_usr_history + WHERE alert_message IS NOT NULL; +---- + +===== Fix for Staff Splash Page Multi-Word Search ===== + +The addition of the Angular Staff Catalog surfaced a double-encoding issue +with redirects in certain Apache versions. This caused searches for multiple +words to have %20 in place of spaces, almost certainly resulting in 0 results. + +In order to apply this fix, change the Angular redirects in eg_vhost.conf from + + RewriteRule ^/eg2/(.*) https://%{HTTP_HOST}/eg2/en-US/$1 [R=307,L] + +to + + RewriteRule ^/eg2/(.*) https://%{HTTP_HOST}/eg2/en-US/$1 [NE,R=307,L] + +===== Miscellaneous ===== + +* In the Angular staff catalog, rename 'Catalog Preferences' to + 'Search Preferences' and add a return button. +* Angular grids now have a have a 'Manage Actions Menu' configuration + action to allow users to control which actions are displayed + on the context menu for the grid. +* The item table and holdings view in the Angular staff catalog record + details page now include 'Total Circ Count' and 'Last Circ Date' columns. +* There is a new library setting, 'Staff Catalog Search Filters', that can be + used to customize the list of search filters that are available on the + Angular staff catalog advanced search form. This setting takes an array + of desired filters, e.g., `["item_lang","audience","lit_form"]`. The complete + list of available filters is item_type, item_form, item_lang, audience, + vr_format, bib_level, and lit_form. If the library setting is not set, + all of the filters are displayed. + +==== Public Catalog ==== + +===== Credit card payments using Stripe now implemented with PaymentIntents instead of Charges ===== + +This changes the Stripe code in the public catalog to use their PaymentIntents and confirmCreditCard API, +which is recommended over their Charges API. Credit card charges are no longer finalized +(captured/confirmed) on Evergreen's backend, though the backend does check whether a payment was +made successfully before recording it. + +===== Miscellaneous ===== + +* The Bootstrap public catalog now displays cover images on the My Account + items checked out, check out history, holds, and holds history pages. +* Carousels on the public catalog home page now take up 80% of the page width + by default rather than just 40% + +==== Reports ==== + +===== Reporter Item Statistics View ===== + +A new reports source, Item Statistics View is available. +Certain third-party products such as collection development +management providers require copy statistics that are not +readily available in a single report. This view adds those, +which will also benefit library staff reports generally. + +To add the view, a system administrator will need to (re-)run +the example.reporter-extension.sql script, which will create +the new view in the database. + +===== Add Dewey Call Number Blocks and Ranges to Reports ===== + +A new view is added to the reporter with links from Call Number that +will allow users to display or filter on the Dewey 10's or 100's block +or range that a call number falls within. They can be accessed by +following the "Dewey Classification" link from Call Number. + +===== More Granular Age Divisions for Reports ===== + +Reports now include an option for more detailed age divisions for users +based on the entered date of birth. Divisions include: + + * Child 0-5 Years Old + * Child 6-12 Years Old + * Teen 13-17 Years Old + * Adult 18-25 Years Old + * Adult 26-49 Years Old + * Adult 50-59 Years Old + * Adult 60-69 Years Old + * Adult 70+ + +This new column is accessible from ILS User -> Demographic Info and the new +field is named "Detailed Age Division". + +=== Acknowledgments === + +The Evergreen project would like to acknowledge the following +organizations that commissioned developments in this release of +Evergreen: + +* CW MARS +* Evergreen Community Development Initiative +* NOBLE +* PaILS +* Westchester Library System + +We would also like to thank the following individuals who contributed +code, translations, documentations, patches, and tests to this release of +Evergreen: + +* Adam Bowling +* Andrea Buntz Neiman +* Beth Willis +* Bill Erickson +* Blake Graham-Henderson +* Chris Sharp +* Christine Burns +* Christine Morgan +* Chrisy Schroth +* Dan Briem +* Dawn Dale +* Elaine Hardy +* Erica Rohlfs +* Galen Charlton +* Garry Collum +* Gina Monti +* Jane Sandberg +* Jason Boyer +* Jason Etheridge +* Jason Stephenson +* Jeff Davis +* Jeff Godin +* Jennifer Bruch +* Jennifer Pringle +* Jennifer Weston +* Jessica Woolford +* John Amundson +* Josh Stompro +* Katie G. Martin +* Kyle Huckins +* Lindsay Stratton +* Lynn Floyd +* Mary Llewellyn +* Michele Morgan +* Mike Risher +* Mike Rylander +* Rogan Hamby +* Rosie Le Faive +* Ruth Frasur +* Seth Erickson +* Shula Link +* Stephen Wills +* Terran McCanna +* Tiffany Little + +We also thank the following organizations whose employees contributed +patches: + +* BC Libraries Coop +* Bibliomation +* Catalyte +* CW MARS +* Emerald Data +* Equinox Open Library Initiative +* Georgia Public Library Service +* Greater Clarks Hill Regional Library +* Indiana State Library +* Kenton County Library +* King County Library System +* Linn Benton Community College +* MOBIUS +* NOBLE +* PaILS +* Sigio +* University of Prince Edward Island +* Westchester Library System + +We regret any omissions. If a contributor has been inadvertently +missed, please open a bug at http://bugs.launchpad.net/evergreen/ +with a correction. + -- 2.11.0