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