]> git.evergreen-ils.org Git - Evergreen.git/blob - docs/RELEASE_NOTES_3_6.adoc
LP1615805 No inputs after submit in patron search (AngularJS)
[Evergreen.git] / docs / RELEASE_NOTES_3_6.adoc
1 = Evergreen 3.6 Release Notes =
2 :toc:
3 :numbered:
4
5 == Evergreen 3.6.2 ==
6
7
8 This release contains bug fixes improving on Evergreen 3.6.1,
9 including a security bug fix.
10
11 === Bug Fixes ===
12
13 ==== Security ====
14
15 * Fix an issue where `open-ils.pcrud` backends could crash with
16 a segmentation fault under certain conditions that could be invoked
17 by an external attacker, thus leading to a potential denial
18 of service attack.
19
20 ==== Staff Interface ====
21 * Expert Search in the staff interface now respects the search library.
22 (https://bugs.launchpad.net/evergreen/+bug/1468132[Bug 1468132])
23 * The Items Out page is now less prone to cause `open-ils.actor` backend
24 exhaustion. It now also displays a progress bar while loading.
25 (https://bugs.launchpad.net/evergreen/+bug/1913811[Bug 1913811])
26 * Grids in the staff interface no longer require that a row
27 be selected in order to activate a grid action that doesn't
28 logically require that at least one row be selected.
29 (https://bugs.launchpad.net/evergreen/+bug/1670457[Bug 1670457])
30 * The display of total amounted billed, owed, and paid on the patron
31 Bills page now reflects just open bills with a non-zero balance, fixing
32 an issue where the totals could include paid billings for transactions
33 that are still open.
34 (https://bugs.launchpad.net/evergreen/+bug/1772955[Bug 1772955])
35 * The pending patron interface now respects the library setting whether
36 to set the patron's initial password to the last four digits of their
37 phone number.
38 (https://bugs.launchpad.net/evergreen/+bug/1887852[Bug 1887852])
39 * Several interfaces, including Mark Missing, adding patrons to a bucket
40 from a search, and applying a default item status now use batch
41 API calls for better efficiency.
42 (https://bugs.launchpad.net/evergreen/+bug/1896285[Bug 1896285])
43 * Fix an issue where the holdings editor would not close its window
44 when the Save & Exit button was clicked.
45 (https://bugs.launchpad.net/evergreen/+bug/1913219[Bug 1913219])
46 * Fix an issue where a double barcode scan could create a precat
47 item without giving the staff member the chance to review the
48 form before submitting it.
49 (https://bugs.launchpad.net/evergreen/+bug/1778522[Bug 1778522])
50 * Fix an issue preventing the staff interface from being used
51 on various Android and iOS devices.
52 (https://bugs.launchpad.net/evergreen/+bug/1901760[Bug 1901760])
53 * Fix an issue where the report editor could supply the wrong
54 kind of input for an aggregate filter.
55 (https://bugs.launchpad.net/evergreen/+bug/1858114[Bug 1858114])
56 * The staff interfaces now warns if the user attempts to delete
57 a bib record that has active holds on it.
58 (https://bugs.launchpad.net/evergreen/+bug/1398107[Bug 1398107])
59 * Expired staff accounts can no longer log into the staff interface
60 (https://bugs.launchpad.net/evergreen/+bug/1474029[Bug 1474029])
61 * Most Angular administration pages now include grid filters
62 (https://bugs.launchpad.net/evergreen/+bug/1846042[Bug 1846042])
63 * The grid header in most Angular admin interfaces is now sticky
64 (https://bugs.launchpad.net/evergreen/+bug/1855457[Bug 1855457])
65 * The Angular staff catalog now supports more easily placing multiple
66 holds on the same target
67 (https://bugs.launchpad.net/evergreen/+bug/1889128[Bug 1889128])
68 * The Angular staff catalog now respects the 'Not a Pickup Library'
69 setting
70 (https://bugs.launchpad.net/evergreen/+bug/1908743[Bug 1908743])
71 * Fix an issue where the staff catalog hold request form was not
72 registering a change of pickup library.
73 (https://bugs.launchpad.net/evergreen/+bug/1911031[Bug 1911031])
74 * In some cases, an upgraded database would fail to honor a request
75 to delete an item tag. This is now fixed.
76 (https://bugs.launchpad.net/evergreen/+bug/1786100[Bug 1786100])
77 * The order of fields in various staff interface record editing
78 forms has been improved.
79 (https://bugs.launchpad.net/evergreen/+bug/1857351[Bug 1857351])
80 * Fix an issue where the Angular MARC editor would sometimes fail
81 to display fields.
82 (https://bugs.launchpad.net/evergreen/+bug/1907115[Bug 1907115])
83 * Fix the retrieve last bib record feature in the Angular staff
84 catalog
85 (https://bugs.launchpad.net/evergreen/+bug/1907286[Bug 1907286])
86 * Improve the placement of the 'Add Materials' button in the Course
87 Material interface
88 (https://bugs.launchpad.net/evergreen/+bug/1907923[Bug 1907923])
89 * Catalog links in the line item manager now link to the Angular
90 staff catalog
91 (https://bugs.launchpad.net/evergreen/+bug/1908420[Bug 1908420])
92 * Fix an issue where MARC Batch Edit's Go button could be disabled
93 during a CSV file upload.
94 (https://bugs.launchpad.net/evergreen/+bug/1910409[Bug 1910409])
95 * Improve the labeling of publication date sort option in the
96 Angular staff catalog
97 (https://bugs.launchpad.net/evergreen/+bug/1908724[Bug 1908724])
98 * Fix sorting of the surveys administration grid.
99 (https://bugs.launchpad.net/evergreen/+bug/1908763[Bug 1908763])
100 * Saving a record created via 'Create New MARC Record' now directs
101 the user to the Angular staff catalog.
102 (https://bugs.launchpad.net/evergreen/+bug/1914630[Bug 1914630])
103 * Fix a couple typos.
104
105 ==== Public Catalog ====
106
107 * Fix an issue where titles could run together when viewing a
108 carousel with a mobile browser.
109 (https://bugs.launchpad.net/evergreen/+bug/1868147[Bug 1868147])
110 * The order that items in a carousel display in is now more
111 predictable. For example, for 'Top Circulated Items' carousels,
112 the order is from most circulated to least circulated.
113 (https://bugs.launchpad.net/evergreen/+bug/1866406[Bug 1866406])
114 * Carousels no longer display deleted items.
115 (https://bugs.launchpad.net/evergreen/+bug/1836254[Bug 1836254])
116 * CGI parameters in the public catalog are now consistently forced
117 to be separated by ampersands rather than semicolons.
118 (https://bugs.launchpad.net/evergreen/+bug/1687545[Bug 1687545]) and
119 (https://bugs.launchpad.net/evergreen/+bug/1914116[Bug 1914116])
120
121 ==== Public Catalog (Bootstrap theme) ====
122
123 * The Bootstrap public catalog now allows patrons to update
124 hold notification preferences.
125 (https://bugs.launchpad.net/evergreen/+bug/1902265[Bug 1902265])
126 * Fix an issue where email and phone number notification information
127 was not saved when placing a hold.
128 (https://bugs.launchpad.net/evergreen/+bug/1903424[Bug 1903424])
129 * Suspending a hold at the time of placement now works in the Bootstrap
130 public catalog.
131 (https://bugs.launchpad.net/evergreen/+bug/1903594[Bug 1903594])
132 * Add the Type filter to the Bootstrap public catalog's Advanced
133 Search page
134 (https://bugs.launchpad.net/evergreen/+bug/1908298[Bug 1908298])
135 * The Bootstrap public catalog now includes the record emailing
136 and printing enhancements added in 3.6.0.
137 (https://bugs.launchpad.net/evergreen/+bug/1895676[Bug 1895676])
138 * The Bootstrap public catalog is now implements course
139 materials search and display.
140 (https://bugs.launchpad.net/evergreen/+bug/1895678[Bug 1895678])
141 * Carousels in the Bootstrap public catalog now link to their titles.
142 (https://bugs.launchpad.net/evergreen/+bug/1908113[Bug 1908113])
143 * Fix an issue with saving list notes in the Bootstrap public catalog.
144 (https://bugs.launchpad.net/evergreen/+bug/1908766[Bug 1908766])
145 * The My Account circulation history display now includes the
146 title and author of loans of precat items.
147 (https://bugs.launchpad.net/evergreen/+bug/1910138[Bug 1910138])
148 * Fix an issue with adding a basket to an existing list.
149 (https://bugs.launchpad.net/evergreen/+bug/1907866[Bug 1907866])
150
151 ==== Administration ====
152
153 * The EDI Webrick installer now works on Ubuntu 18.04
154 (https://bugs.launchpad.net/evergreen/+bug/1901900[Bug 1901900])
155
156 === Acknowledgements ===
157
158 We would like to thank the following individuals who contributed code,
159 testing and documentation patches to the 3.6.1 point release of Evergreen:
160
161 * John Amundson
162 * Zavier Banks
163 * Jason Boyer
164 * Dan Briem
165 * Galen Charlton
166 * Garry Collum
167 * Jeff Davis
168 * Bill Erickson
169 * Ruth Frasur
170 * Blake Graham-Henderson
171 * Rogan Hamby
172 * Elaine Hardy
173 * Angela Kilsdonk
174 * Tiffany Little
175 * Terran McCanna
176 * Michele Morgan
177 * Jane Sandberg
178 * Mike Risher
179 * Mike Rylander
180 * Chris Sharp
181 * Jason Stephenson
182
183 == Evergreen 3.6.1 ==
184
185 This release contains bug fixes improving on Evergreen 3.6.0.
186
187 === Bug Fixes ===
188
189 ==== Administration ====
190
191 * Improves description of an org unit setting
192 (https://bugs.launchpad.net/evergreen/+bug/1325704[Bug 1325704])
193
194 ==== Cataloging ====
195
196 * Fixes the journal title search in the Angular Staff Catalog
197 (https://bugs.launchpad.net/evergreen/+bug/1901038[Bug 1901038])
198
199 ==== Circulation ====
200
201 * The Register Patron form can now set default password according to a patron's
202 phone number when the org setting "Patron: password from phone #" is TRUE
203 (https://bugs.launchpad.net/evergreen/+bug/1900184[Bug 1900184])
204 * Fixes an issue with the hold targeter
205 (https://bugs.launchpad.net/evergreen/+bug/1508208[Bug 1508208])
206 * Fixes an issue that prevents items from circulating when OpenSRF is installed
207 with non-default router names
208 (https://bugs.launchpad.net/evergreen/+bug/1904220[Bug 1904220])
209
210
211 ==== Client ====
212
213 * Fixes an issue that caused a blank screen to appear
214 (https://bugs.launchpad.net/evergreen/+bug/1855737[Bug 1855737])
215
216
217 === Acknowledgements ===
218
219 We would like to thank the following individuals who contributed code,
220 testing and documentation patches to the 3.6.1 point release of Evergreen:
221
222 * Jason Boyer
223 * Dan Briem
224 * Galen Charlton
225 * Garry Collum
226 * Bill Erickson
227 * Jason Etheridge
228 * Katie Greenleaf Martin
229 * Terran McCanna
230 * Mike Rylander
231 * Jane Sandberg
232 * Chris Sharp
233 * Remington Steed
234
235
236 == Evergreen 3.6.0 ==
237
238 === Upgrade notes ===
239
240 This release adds a new OpenSRF service called `open-ils.courses`.
241 While strictly speaking this is an optional service and could be
242 omitted if you are not planning on using the new Course Materials
243 module, it is recommended that the service be run in case future
244 work bakes in an assumption that it will always be present.
245
246 This release also a new OpenSRF service, `open-ils.curbside`, which
247 must be enabled and registered with the public router for the
248 Curbside Pickup feature to function.
249
250 This release also includes a new experimental public catalog skin
251 based on the Bootstrap framework. Instructions for turning it on
252 can be found below.
253
254 This release adds a new Perl module dependency, `Config::General`.
255
256 This release adds two new rows to action_trigger.event_definition,
257 two into action_trigger.hook, and six into action_trigger.environment.
258
259 === New Features ===
260
261 ==== Acquisitions ====
262
263 ===== Angular Acquisitions Search =====
264
265 The acquisitions search interfaces are now written in Angular
266 and provide a new centralized place for searching Line Items,
267 Purchase Orders, Invoices, and Selection Lists in the Acquisitions
268 module of Evergreen. The Acquisitions Search interface can be accessed
269 under Acquisitions -> General Search.
270
271 The search interface has four tabs for line item search, purchase order
272 search, invoices search, and selection list search.  Each tab
273 offers a search form allowing the user to select one or more
274 fields to search on. Each search tab stores a separate default search
275 that the user can update; for example, a user could have their
276 line item search default to showing all on-order line items from
277 a particular provider.
278
279 The grid that displays search results in each tab is filterable.
280
281 The line items and PO search interfaces allow the user to navigate to
282 linked POs, invoices, and so forth, but offers no direct actions. The
283 invoices search tab includes a 'Print Selected Invoices' action,
284 while the selection lists search tab offers actions to create,
285 clone, delete, and merge selection lists.
286
287 The Angular search page contains a link to the legacy Dojo search
288 interface if needed. The Dojo interface will be removed in a future
289 release of Evergreen.
290
291 The Angular search interface offers various usability improvements
292 over the Dojo interface, including:
293
294 * only the search operators that are relevant for a given field
295   are displayed.
296 * search fields that are associated with controlled vocabularies
297   will display drop-downs on the search form.
298 * results are sortable.
299 * the line item and PO state fields have been relabeled to "Status".
300 * greater than and less than are now available as search operators.
301 * publication date searches are more flexible.
302
303 As part of this feature, the stock permissions for the Acquisitions
304 and Acquisitions Administrator profiles have been expanded. In
305 particular, the Acquisitions Administrator profile can now be
306 more readily used to perform normal acquisitions work in addition
307 to configuring the acquisitions module.
308
309 ===== Angular Providers Interface =====
310
311 The interfaces for searching for and managing Acquisitions provider
312 records have been rewritten in Angular. This rewrite includes the
313 following significant changes:
314
315 * The provider search interface is now available directly from the
316   Acquisitions menu, supplementing its longstanding availability from
317   the Acquisitions Administration page.
318 * The search interface is modeled after the patron interface, including
319   a search form that can be hidden or displayed, a provider summary box,
320   and a multi-tabbed interface for managing the provider itself.
321 * The grid displaying search results is filterable and sortable.
322 * The provider display tabs are
323 ** Details, allowing the user to view, and if permitted, edit the base provider record.
324 ** Addresses
325 ** Contacts
326 ** Attribute Definitions
327 ** Holdings Definitions
328 ** EDI
329 ** Invoices, providing an interface for viewing the invoices associated with the provider.
330 ** POs, providing an interface for viewing the purchase orders associated with the provider.
331 * The new interface makes it possible to edit contact addresses.
332 * The base provider record now has an optional primary contact field.
333   Selecting a contact as the primary one is managed on the Contacts
334   tab.  The primary contact, if set, is displayed on the provider
335   summary box.
336
337 Interfaces that used to link to the Dojo provider interface now link
338 to the Angular one instead.
339
340 ==== Administration ====
341
342
343 ===== Changes to Autorenewal Action/Trigger Failure Reasons =====
344
345 Previously the "reason" field in the userdata for an Autorenewal
346 event would contain both the failure code and the description for
347 the failure event as a single string such as
348 "MAX_RENEWALS_REACHED : Circulation has no more renewals remaining."
349
350 Now the "reason" field will only contain the description of the issue
351 (Circulation has ...) while a new "textcode" field will contain the
352 event code (MAX_RENEWALS_REACHED) if administrators still want to
353 display it in template outputs.
354
355
356 ===== EZProxy authentication =====
357
358 Evergreen can now provide CGI authentication for EZProxy.
359 To enable this, you will need to:
360
361 . Add a new User Activity Type to Evergreen for EZProxy CGI authentications.
362 . Add a new Remote Authentication Profile to Evergreen. You will probably want
363 to use `EZProxyCGI` as the name.
364 . Edit the `<Location /api/ezproxy>` stanza in Evergreen's eg_vhost configuration
365 file. In particular, you will need to allow access to from your EZProxy server,
366 fill in the base uri of your EZProxy server, and add a secret to the
367 _OILSRemoteAuthEZProxySecret_ variable.
368 . Restart Apache.
369 . Edit the EZProxy user.txt file.  You will likely want to add a stanza such
370 as the following:
371
372 .Sample user.txt stanza
373 ----
374 ::CGI=http://your-evergreen-catalog.com/api/ezproxy?url=^R
375 ::Ticket
376 MD5 <same secret as in eg_vhost config>
377 Expired; Deny expiredticket.htm
378 /Ticket
379 ----
380
381 When this feature is enabled, users will see an Evergreen-based login screen.
382 You may customize the look and feel of this login screen by editing the relevant
383 template toolkit files.
384
385 ===== Matomo Support =====
386
387 Support for the open source web analytics platform Matomo is now
388 native to Evergreen. Support is on an org unit level so different
389 libraries can have separate or no analytics. Once you setup
390 a Matomo service you will need the URL and site ID. Typically
391 Matomo will give you a block of javascript you can insert into
392 web sites. One line will look like :
393
394 `var u="http://mylibrary.lib/matomo/";`
395
396 The full URL in the double quotes will be your URL.  Another line
397 will look like:
398
399 `_paq.push(['setSiteId', '1']);`
400
401 In this case the number 1 will be your site ID.
402
403 These are set by the Library Settings opac.analytics.matomo_url and
404 opac.analytics.matomo_id respectively.  A new permission,
405 MATOMO_UPDATE_SETTINGS, controls access to these.
406
407 ===== "PatronAPI" authentication =====
408
409 Evergreen now supports the III "PatronAPI" scheme for authenticating
410 patrons and supplying some information about them.
411
412 To enable this, you will need to:
413
414 . Add a new User Activity Type to Evergreen for PatronAPI authentications.
415 . Add a new Remote Authentication Profile to Evergreen. You will probably want
416 to use `PatronAPI` as the name.
417 . Edit the `<Location /api/patronapi>` stanza in Evergreen's eg_vhost configuration
418 file. In particular, you will need to allow access to it from the server(s)
419 wanting to make PatronAPI requests, determine whether to enable the PatronAPI
420 "dump" feature, and specify whether users can be identified by username
421 or barcode.
422 . Restart Apache.
423 . Update the PatronAPI client to use https://your.evergreen.server/api/patronapi
424   as its base URL.
425
426 Example PatronAPI URLs look something like this:
427
428 .PatronAPI URLs
429 ----
430 # test a patron's PIN:
431 https://evergreen.example.org/api/patronapi/USERNAME/PASSWORD/pintest
432
433 # dump some information about the patron. Note that this
434 # does _not_ require the the patron's password be supplied.
435 https://evergreen.example.org/api/patronapi/USERNAME/dump
436 ----
437
438 The responses for the `pintest` and `dump` actions are specified by
439 Template Toolkit templates under (e.g.) `/openils/var/templates/remoteauth`.
440
441
442 ===== Preloaded Audio Icon and Search Format =====
443
444 A new search and icon format called Preloaded Audio now exists
445 that overlaps with the eAudio format.  If you want to exclude
446 the Preloaded Audio format from overlapping with eAudio
447 you can use the following SQL:
448
449 ----
450 UPDATE config.composite_attr_entry_definition SET definition = '{"0":{"_attr":"item_type","_val":"i"},"1":[{"_attr":"item_form","_val":"o"},{"_attr":"item_form","_val":"s"}]}'
451     WHERE coded_value IN (SELECT id FROM config.coded_value_map WHERE code = 'eaudio');
452 ----
453
454 It is also recommended that you reingest your bibliographic records
455 to updated the fixed field indexes. You can accomplish this by running
456 the following query in your database:
457
458 ----
459 SELECT metabib.reingest_record_attributes(source)
460 FROM metabib.record_attr_vector_list WHERE
461 (SELECT id FROM config.coded_value_map WHERE ctype = 'item_form' AND code = 'q') = ANY(vlist)
462 AND (SELECT id FROM config.coded_value_map WHERE ctype = 'item_type' AND code = 'i') = ANY(vlist);
463 ----
464
465
466
467
468
469 ==== API ====
470
471
472
473 ===== Override Label for draw_field_label Patron Edit Fields =====
474
475 Evergreen developers may now specify a label for fields in
476 the patron registration/patron edit form (generated by
477 the draw_field_label macro). By default,
478 draw_field_label uses the label of supplied IDL field class.
479 Now a developer may supply an additional third parameter,
480 label_override, which overrides the default IDL-based label.
481 This would typically be done in the course of customizing
482 the web staff client template `circ/patron/t_edit.tt2`.
483
484
485
486
487 ==== Architecture ====
488
489
490
491
492 ===== New Action/Trigger reactor for 3rd party signaling =====
493
494 This new Action/Trigger reactor module allows an Evergreen administrator to
495 create event defintions that use HTTP (or HTTPS) to contact external services
496 and let them know that something has happened in Evergreen.
497
498 For instance, a discovery layer can be informed when a bib record is updated
499 or when a user's barcode changes.
500
501 ====== Reactor Template Syntax ======
502
503 The new reactor module uses a template to define its behavior.  While the
504 template is processed by Template Toolkit, as with any A/T templates, its
505 output format is new to Evergreen.
506
507 The template should output data that can be parsed by the Config::General Perl
508 module.  See: https://metacpan.org/pod/Config::General
509
510 Top level settings should include the HTTP *method* and the *url*.
511
512 A block called *Headers* can be used to supply arbitrary HTTP headers.
513
514 A block called *Parameters* can be used to append CGI parameters to the URL,
515 most useful for GET form submission.  Repeated parameters are allowed.  If
516 this block is used, the URL should /not/ contain any parameters, use one or
517 the other.
518
519 A HEREDOC called *content* can be used with POST or PUT to send an arbitrary block
520 of content to the remote server.
521
522 If the requested URL requires Basic or Digest authentication, the template can
523 include top level configuration parameters to supply a *user*, *password*, *realm*,
524 and hostname:port *location*.
525
526 A default user agent string of "EvergreenReactor/1.0" is used when sending requests.
527 This can be overridden using the top level *agent* setting.
528
529 Here is an example template that could be used by a definition attached to the
530 *bib.edit* hook:
531
532 [source,conf]
533 ----
534 method   post # Valid values are post, get, put, delete, head
535 url      https://example.com/api/incoming-update
536 agent    MySpecialAgent/0.1
537
538 user     updater
539 password uPd4t3StufF
540 realm    "Secret area"
541 location example.com:443
542
543 <Headers>
544   Accept-Language en
545 </Headers>
546
547 <Parameters>
548   type bib
549   id   [% target.id %]
550 </Parameters>
551
552 content <<MARC
553 [% target.marc %]
554 MARC
555 ----
556
557
558
559
560
561 ===== Documentation Now Uses the Antora Toolchain =====
562
563 The core Evergreen documentation under the `docs/` subdirectory
564 has been changed to use Antora, a documentation site generator
565 for AsciiDoc. The result of this change is the ability to generate
566 documentation for the `docs.evergreen-ils.org` website that is
567 searchable, easier to maintain, and readily installable on a
568 local Evergreen site if desired.
569
570 For instructions on how to build the documentation, consult
571 the file `README.adoc` under the `docs` directory.
572
573
574
575
576 ==== Cataloging ====
577
578
579
580 ===== Manage Authorities Angular Port =====
581
582 The Cataloging -> Manage Authorities interface has been ported to Angular.
583
584 New functionality includes displaying additional authority data, like create
585 and edit dates, etc.  It's also possible to view the list of linked bib
586 records.
587
588
589
590
591 ===== MARC Batch Edit UI Angular Port =====
592
593 The MARC Batch Edit interface has been ported to Angular.
594
595
596
597
598 ===== Preloaded Audio Icon and Search Format =====
599
600 A new search and icon format called Preloaded Audio now exists
601 using the following atttributes: itemtype i, item form q.  This
602 overlaps with the eAudio format.  If you want to exclude
603 preloaded audio from eAudio there is a script in the Administration
604 notes to exclude it.
605
606
607
608
609 ===== Item Status Allows Pasting a List of Barcodes in csv Format =====
610
611 The item status input box will now accept a string of barcodes, separated with commas, as well as a single barcode.
612
613
614 ===== Fix For "Blank" (Empty String) TCN Source =====
615
616 Previously, it was possible for sparsely-populated MARC records to be
617 saved with a TCN Source of '' (the "empty string"), which caused the
618 901 $b subfield to be void of data, causing errors when exporting
619 MARC records to such third-party programs as Zotero.
620
621 A site that has been running without this patch for a long time might want to
622 check how many bib records they have with an empty tcn_source:
623
624 ----
625 SELECT COUNT(*) FROM biblio.record_entry WHERE deleted IS FALSE AND tcn_source = '';
626 ----
627
628 Sites can fix the problem by issuing UPDATE statements to set the 901$b to a value
629 like 'AUTOGEN' or 'Unknown'. They should probably do it per-record, however, to
630 avoid locking the table in a huge commit.
631
632
633 ==== Circulation ====
634
635
636
637 ===== Booking Capture is now in Angular =====
638
639
640 The interface to capture resources for booking
641 reservations has been re-implemented in Angular.
642 Other booking screens, such as Pick Up and
643 Manage Reservations, now include an option to
644 re-print capture slips.
645
646 System administrators can now edit the template
647 for booking capture slips in Administration ->
648 Server administration -> Print templates.
649
650
651
652
653
654 ===== New Fields for AutorenewNotify Event Template =====
655
656
657 Two new fields, `auto_renewal_remaining`, and `total_renewal_remaining` have
658 been added to the AutorenewNotify action/trigger event code.  They will
659 report the number of autorenewals and regular renewals, respectively,
660 remaining on the new circulation if renewed, or on the old circulation
661 if not renewed.  This is provided as a convenience to avoid possibly
662 inaccurate math in the template.  You may access them in the template via
663 the `udata`:
664
665 ----
666 Automatic Renewals Remaining: [% udata.auto_renewal_remaining %]
667 Total Renewals Remaining: [% udata.total_renewal_remaining %]
668 ----
669
670
671
672
673
674 ===== Course Materials Module =====
675
676 This version of Evergreen includes an optional course materials module.
677 Like course reserves modules in other library software, this module
678 makes reserves collections more discoverable and easier to manage.
679 The module also provides similar functionality for library electronic
680 resources and open educational resources, whether they have been
681 cataloged or not.
682
683 To enable the course materials module, go to Administration ->
684 Local Administration -> Library Settings Editor. Find the setting
685 called "Opt Org Unit into the Course Materials Module".  Set it to
686 True for the org units that want to use the module.
687
688 To use the course materials module effectively, staff will need a
689 new permission called _MANAGE_RESERVES_.  By default, circulation
690 administrators will receive this permission.
691
692 Staff members with the _MANAGE_RESERVES_ permission can create
693 courses, attach materials to them, attach users to them, and
694 archive them when they are no longer needed.
695
696 When associating physical materials from the catalog to a
697 course, staff members can choose temporary item attributes.
698 These attributes will last until the course is archived or
699 the item is detached from the course, whichever happens
700 first.
701
702 Staff can also choose to associate electronic resources from
703 the catalog (which must have a transcendent bib source or
704 a located URI).  They can also create a brief bib record
705 to attach to the course from within the course materials
706 module.
707
708 Staff members can attach users to the course.  These users
709 can have either a public role (e.g. instructor) or private
710 roles (e.g. student).  The public roles will be displayed
711 in the OPAC.
712
713
714 If the module is enabled, the OPAC will include a course search
715 and a course browse option.
716
717
718 Libraries may also want to use this module to manage their
719 displays.  Each display can be treated as a course, and staff
720 can attach the items they wish to display to the course along
721 with the temporary attributes (e.g. a shelving location called
722 "On display").  When the display is over, staff members can
723 archive the course.
724
725
726
727
728 ===== Hopeless Holds Interface =====
729
730 A new interface under Local Administration has been added called
731 Hopeless Holds.  Using a new Hopeless Date field on hold requests,
732 this interface gives staff a way to resolve issues with hold
733 requests that may have become unfulfillable or "hopeless".
734
735 The Hopeless Date is set for a given request by the hold targeter
736 whenever the potential items list for the hold is empty, or when
737 all potential items have a copy status that has been designated
738 as Hopeless Prone (a new boolean field on Item Statuses).
739
740
741
742
743
744 ===== In-house use now records workstations =====
745
746 Evergreen now records the workstation along with each
747 in-house use.  Staff can now run reports on which
748 workstation created which in-house use.
749
750
751
752
753 ===== Option to Make Effective Date of Checkin Sticky =====
754
755 Adds a checkbox to the Checkin screen that will make the backdate effective until logout.
756
757
758
759
760 ===== Purge User Preferred Names =====
761
762 The new, user preferred name fields are now set to NULL in the
763 database when a user account is purged via the staff client or using
764 the actor.usr_delete function in the database.
765
766 To clear the preferred name fields from records that have already been
767 purged, run the following SQL update:
768
769 [source,sql]
770 ----
771 UPDATE actor.usr
772 SET pref_prefix = NULL,
773     pref_first_given_name = NULL,
774     pref_second_given_name = NULL,
775     pref_family_name = NULL,
776     pref_suffix = NULL,
777     name_keywords = NULL
778 WHERE usrname ~ ('^' || id || '-PURGED')
779 AND NOT active
780 AND deleted
781 AND (
782   pref_prefix IS NOT NULL OR
783   pref_first_given_name IS NOT NULL OR
784   pref_second_given_name IS NOT NULL OR
785   pref_family_name IS NOT NULL OR
786   pref_suffix IS NOT NULL OR
787   name_keywords IS NOT NULL
788 );
789 ----
790
791
792
793
794 ===== Test Notification Method =====
795
796 Patrons and staff may request a test notification for a patron's default email address or SMS
797 number via the Patron Registration interface in the staff client or the OPAC preferences interface. The OPAC_LOGIN permissions are required to
798 request a notification. When a notification is sent, it will be sent to either the user's default email or default SMS number, depending on what was requested.
799
800 ====== Upgrade Notes ======
801
802 This feature adds two new rows to action_trigger.event_definition, two into
803 action_trigger.hook, and six into action_trigger.environment.
804
805
806
807 ===== Curbside Pickup =====
808
809 The Curbside Pickup feature in Evergreen provides an interface to help
810 facilitate contact-free pickup of library materials.  It provides a dedicated
811 interface in the staff client for library staff to track and manage curbside
812 pickup appointments and materials through the various stages of the process.
813 Staff can also schedule pickup appointments on behalf of patrons.  This feature
814 also allows patrons to schedule their own curbside pickup appointments in their
815 OPAC account, as well as inform the library when they have arrived and are
816 waiting for their materials.  
817
818 This is an extension of the existing holds functionality in Evergreen.  A hold
819 must be placed for an item to be eligible for curbside pickup.  After an item
820 has been captured for a hold and is available for pickup from the holds shelf,
821 a curbside pickup appointment can be scheduled to allow the materials to be
822 obtained in a contact-free transaction.
823
824 It can accommodate several different workflows depending on how the library
825 decides to implement curbside pickup services.  It can help library staff track and
826 checkout batches of items to be picked up curbside and help facilitate
827 communication between library staff and patrons.  It does not prescribe nor require a
828 specific workflow for curbside pickup.
829
830 It can be used alongside regular (i.e. inside the library) hold pickup.  Curbside pickup
831 can be an option offered patrons in addition to regular pickup or it can
832 be the primary pickup option depending on the library’s current service plan.
833
834 It assumes the library will have a staff member assigned to managing curbside
835 pickup throughout the day.
836
837 ====== Library Settings ======
838
839 This feature adds the following library settings:
840
841  * `circ.curbside`: whether to enable curbside appointments for
842    picking up available hold requests. This defaults to off.
843     
844  * `circ.curbside.granularity`: interval between appointment slots. This
845    defaults to 15 minutes.
846  
847  * `circ.curbside.max_concurrent`: how many appointments to permit per
848    time slot.  This defaults to 10.
849
850  * `circ.curbside.disable_patron_input`: if turned on, display scheduled
851     and pending appointments in My Account in the public catalog but
852     do not give the patron the ability to change them from My Account.
853     This defaults to false, i.e., allowing patrons to modify appointments
854     from My Account.
855
856 ====== Notifications And Action Triggers ======
857
858 There are several new patron notice options related to curbside pickup.
859
860 When a patron’s holds are marked as ready for pickup in Evergreen, an email or
861 text/SMS notification can be sent to let them know that curbside pickup is an
862 option at their library.  This notice can be used to promote this service and
863 the default message will prompt patrons to log in to their OPAC account to
864 schedule an appointment or call the library to schedule an appointment.
865 Notice message is customizable.  The Trigger Event Definitions for this notice
866 are called:
867
868  * Curbside offer Email notification, triggered by CurbsideSlot reactor on a
869    definition attached to the hold available hook.
870  * Curbside offer SMS notification, triggered by CurbsideSlot reactor on a
871    definition attached to the hold available hook.
872
873 If a patron has scheduled a curbside pickup appointment, an email or text/SMS
874 notification can be sent to confirm the appointment.  It will also prompt them
875 to log into their account or call the library when they have arrived for their
876 pickup appointment.  The Trigger Event Definitions for this notice are called:
877
878  * Curbside confirmation Email notification.
879  * Curbside confirmation SMS notification.
880
881 Patrons can receive an email with a list of the items they checked out.  To
882 receive this notice patrons must have an email address associated with their
883 account and the option for “Email checkout receipts by default?” must be
884 selected in their account.  This is an existing notice in Evergreen that ties
885 in to the curbside pickup workflow.
886
887 There is another action trigger called “Trigger curbside offer events and
888 create a placeholder for the patron, where applicable”.  This action trigger
889 does not send a notice to patrons or staff.  It is a silent action behind the
890 scenes that initiates the curbside offer email or SMS notification described
891 above.  
892
893 ====== Upgrade Notes ======
894
895 This feature adds a new OpenSRF service, `open-ils.curbside`, which must be
896 enabled and registered with the public router for the feature to function.
897
898 This feature adds no new staff permissions.
899
900
901
902 ===== Allow Use of Adjusted Proximity for Age-protection =====
903
904 Introduces a new library setting to consult adjusted proximity for age-protected items at hold placement time.
905
906
907
908
909 ==== Client ====
910
911
912
913 ===== New Angular Staff Catalog Default =====
914
915 The experimental Angular staff catalog has been promoted to operate as the
916 default catalog in the browser staff client.  It will be used for all
917 catalog entry points, except for the menu entries for the traditional
918 catalog and any links within the traditional catalog.
919
920 ====== Menu Changes ======
921
922 * Search -> 'Search The Catalog' now searches to new catalog.
923 * Cataloging -> 'Search The Catalog' now searches to new catalog.
924 * Cataloging -> 'Search The Catalog (Traditional)' searches the traditional
925   TPAC-style catalog.
926 * Staff client splash page -> 'Search the catalog' inline form uses the
927   new catalog.
928
929
930
931
932
933 ===== Basket To Bucket Action Now Allows Adding To Shared Buckets =====
934
935 The Angular staff catalog's 'Add Basket to Bucket' action now
936 gives the user the option of adding the contents of the basket
937 to a shared bucket.
938
939
940 ===== Angular catalog recall/force/part holds =====
941
942 The Angular staff catalog now has entry points for placing Recall,
943 Force, and Part-level holds.
944
945 For any item-level hold type, the user now has the option to cycle
946 between Item, Recall, and Force hold types.  The selected type affects
947 the full batch of holds.
948
949 For title-level holds, the user now has the option to select a part
950 as the hold target for each record in the list.  Part selection is
951 optional.
952
953
954 ==== OPAC ====
955
956
957 ===== New Bootstrap-based OPAC =====
958
959
960 This release includes a new experimental OPAC with a cleaner, more modern design.
961
962 To enable the new OPAC design, open the `/etc/apache2/eg_vhost.conf` file.
963
964 Find the following line:
965
966 ----
967 PerlAddVar OILSWebTemplatePath "/openils/var/templates"
968 ----
969
970 Add the following line directly below it:
971
972 ----
973 PerlAddVar OILSWebTemplatePath "/openils/var/templates-bootstrap"
974 ----
975
976 Be sure that, if you have any local customizations, that they are referenced below
977 this line.  This way, your customizations will still appear in the new OPAC design
978 (although they may need to be adjusted to better fit the new style).
979
980 You can also turn on the new OPAC for some virtual hosts only, by adding it to the
981 appropriate virtual host entry.  Be sure to reference the OILSWebTemplatePath for
982 the `templates-bootstrap` directory before referencing any local customizations
983 used by that virtual host.
984
985 To emphasize, the new OPAC skin is considered experimental for 3.6.x. There
986 are some discrepancies between its functionality and the functionality
987 present in the original "TPAC" skin. The Evergreen community aims to
988 resolve those discrepancies and make the Bootstrap skin become the default
989 OPAC for the Spring 2021 release (though the original TPAC skin will still
990 be available). Using the Bootstrap skin in production for 3.6 is at your own risk.
991
992
993
994
995 ===== Enhanced Public Catalog Printing and Email =====
996
997 Evergreen now provides additional functionality for printing and emailing
998 bibliographic record and holdings information from the catalog, including
999 from an individual record or from a list or basket.
1000
1001 After selecting Print or Email, the user will be presented with a preview of
1002 the printout or email, respectively.  From the preview users can chose to view
1003 Brief or Full record information (Full includes holdings information) and how
1004 records should be sorted (Author, Title, Publication Date).  Holdings
1005 information can also be limited to a certain library.
1006
1007 Users can be required to log in to their OPAC account to send an email, or this
1008 feature can be configured to allow sending an email without signing in to the
1009 public catalog. If the option to allow emailing without signing in is enabled
1010 (by turning on the new 'Allow record emailing without login' library setting),
1011 user will be asked to solve an arithmetic CAPTCHA in order to send the email.
1012
1013 ====== Administration ======
1014
1015 Two new interfaces have been added to Local Administration: Event Definition
1016 Groups and Event Definition Group Members.  The Event Definition Groups defines
1017 the various groups for Action Trigger Event Definitions -- currently Print
1018 Record(s) or Email Record(s).  The Event Definition Group Members defines the
1019 options within each group -- currently Brief or Full record information.
1020
1021 These two interfaces expose the infrastructure behind the new print and
1022 email functionality and library staff will not need to make any changes to
1023 these interfaces to use the existing print and email options.  The stock print
1024 and email Action Trigger Event Definitions can be cloned and modified to
1025 provide additional bibliographic format options.  After creating the custom
1026 Event Definition, add it to the appropriate Event Definition Group (Print
1027 Record or Email Record) and the new format will be available in the catalog.
1028
1029
1030
1031
1032
1033 ===== Credit card payments using Stripe now on version 3 (Elements) =====
1034
1035 When Stripe payments are enabled, the public catalog will now
1036 use version 3 of the Stripe client library, as well as its
1037 Elements API for building the credit card form.  For
1038 technical reasons, this more easily lends a site to PCI
1039 compliance.
1040
1041 On the staff side, the credit card option is disabled for
1042 Stripe, as that has not been implemented and in the past
1043 would just give an error.
1044
1045
1046
1047
1048 ===== Improve Access to Library Info in OPAC =====
1049
1050 Adds the library's address, email, phone, and website link to the myopac patron account preferences page.
1051
1052
1053
1054
1055 ==== Reports ====
1056
1057
1058
1059 ===== Combined Aged and Active Circulations Source Naming =====
1060
1061 A recent improvement to aid web client data retrieval
1062 speed resulted in a new reports source that was named
1063 nearly identically to a long-existing one, and both
1064 were appearing in the "Core Sources" section of reports.
1065 The newer source has been renamed for clarity and removed
1066 from the core sources to prevent confusion:
1067
1068  * "Combined Aged and Active Circulations" is now named "Combined Aged and Active Circulations (Slim Version)"
1069    and is removed from the Core Sources.
1070  * "Combined Aged and Active Circulations", which contains more linkages to other data sources, remains in the
1071    Core Sources list.
1072
1073
1074
1075
1076 ===== Reports Subtotals =====
1077
1078 Reports now allow group subtotals and grand totals.  By checking the
1079 new "Calculate grouping subtotals" checkbox under "Output Options",
1080 a new unlabeled row or column is created with the subtotals for each
1081 grouping and an unlabeled grand total row or column.
1082
1083 This takes advantage of PostreSQL's built-in ROLLUP feature.  See the
1084 PostgreSQL documentation for details:
1085
1086 https://www.postgresql.org/docs/9.6/queries-table-expressions.html#QUERIES-GROUPING-SETS
1087
1088 An example of a report that could use this new feature is
1089 one based on the Circulation source with the following fields:
1090
1091  * Circulation -> Checkout / Renewal Library -> Short (Policy) Name (Raw Data)
1092  * Circulation -> Checkout Date/Time (Year)
1093  * Circulation -> Shelving Location -> Name (Raw Data)
1094  * Circulation -> Circ ID (Count Distinct)
1095
1096 Turning on the "Calculate grouping subtotals" checkbox would make
1097 the report show subtotals for each combination of
1098 short name, checkout year, and shelving location name.
1099
1100
1101
1102
1103 ==== SIP ====
1104
1105
1106
1107 ===== Allow Username in Patron ID =====
1108
1109 Evergreen now accepts a patron's username in the SIP2 Patron ID field
1110 (AA) in addition to the barcode.  This modification is useful for
1111 vendors, such as Overdrive, who can accept a user's username.
1112 Additionally, it is easier for a patron to find and remember their
1113 username over their barcode.
1114
1115 The new feature determines if the value in the Patron ID field is a
1116 barcode or username by comparing the field value against the
1117 `opac.barcode_regex` setting for the organizational unit of the logged
1118 in SIP2 account as configured in the oils_sip.xml file.  This is
1119 similar to what the OPAC does when a patron logs in.
1120
1121 This feature requires activation.  To activate, uncomment (or add) the
1122 following line in the oils_sip.xml configuration file and change the
1123 value from 'false' to 'true'.
1124
1125 [source,xml]
1126 ----
1127 <option name='support_patron_username_login' value='true' />
1128 ----
1129
1130
1131
1132 === Acknowledgments ===
1133
1134 The Evergreen project would like to acknowledge the following
1135 organizations that commissioned developments in this release of
1136 Evergreen:
1137
1138 * C/W MARS
1139 * Equinox Open Library Initiative
1140 * Evergreen Community Development Initiative
1141 * Georgia Public Library Service
1142 * Indiana State Library
1143 * Linn-Benton Community College
1144 * MassLNC
1145 * NOBLE
1146 * PaILS
1147 * Treasure Valley Community College
1148
1149 We would also like to thank the following individuals who contributed
1150 code, translations, documentation, patches, and tests to this release of
1151 Evergreen:
1152
1153 * John Amundson
1154 * Nelson Appell
1155 * Zavier Banks
1156 * a. bellenir
1157 * Felicia Beaudry
1158 * Jason Boyer
1159 * Dan Briem
1160 * Chris Burton
1161 * Steven Callender
1162 * Lisa Carlucci
1163 * Galen Charlton
1164 * Garry Collum
1165 * Dawn Dale
1166 * Jeff Davis
1167 * Diane Disbro
1168 * Bill Erickson
1169 * Jason Etheridge
1170 * Lynn Floyd
1171 * Ruth Frasur
1172 * Blake Graham-Henderson
1173 * Rogan Hamby
1174 * Elaine Hardy
1175 * Kyle Huckins
1176 * Angela Kilsdonk
1177 * Owen Leonard
1178 * Troy Leonard
1179 * Shula Link
1180 * Tiffany Little
1181 * Mary Llewellyn
1182 * Terran McCanna
1183 * Gina Monti
1184 * Christine Morgan
1185 * Michele Morgan
1186 * Andrea Buntz Neiman
1187 * Jennifer Pringle
1188 * Mike Risher
1189 * Mike Rylander
1190 * Jane Sandberg
1191 * Dan Scott
1192 * Chris Sharp
1193 * Remington Steed
1194 * Jason Stephenson
1195 * Josh Stompro
1196 * Dan Wells
1197 * Jennifer Weston
1198 * Beth Willis
1199 * John Yorio
1200
1201 We also thank the following organizations whose employees contributed
1202 patches:
1203
1204 * Ann Arbor District Library
1205 * BC Libraries Cooperative
1206 * Bibliomation
1207 * Calvin College
1208 * Catalyte
1209 * C/W MARS
1210 * Equinox Open Library Initiative
1211 * Georgia Public Library Service
1212 * Grand Rapids Public Library
1213 * Greater Clark Hills Regional Library System
1214 * Indiana State Library
1215 * Kenton County Public Library
1216 * King County Library System
1217 * Laurentian University
1218 * Linn-Benton Community College
1219 * MOBIUS
1220 * Niagara Falls Public Library
1221 * NOBLE
1222 * Scenic Regional Library
1223 * Sigio
1224 * Washington County (MO) Public Library
1225 * Westchester Library System
1226 * Zivot Design
1227
1228 We regret any omissions.  If a contributor has been inadvertently
1229 missed, please open a bug at http://bugs.launchpad.net/evergreen/
1230 with a correction.
1231