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