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