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