]> git.evergreen-ils.org Git - working/Evergreen.git/blob - docs/RELEASE_NOTES_2_3.txt
LP 1190279 Installer makefiles OS targets for PG server
[working/Evergreen.git] / docs / RELEASE_NOTES_2_3.txt
1 Release notes
2 =============
3 :toc:
4 :numbered:
5
6 Upgrade notes
7 -------------
8
9 Log Protect (redaction)
10 ~~~~~~~~~~~~~~~~~~~~~~~
11 To prevent sensitive information such as passwords from being logged
12 in general activity logs, add the following XML chunk to the bottom of
13 `opensrf_core.xml`, just inside the `<config>` section:
14
15 [source, xml]
16 ----------------------------------------------------------------
17   ...
18   </routers>
19   <shared> <!-- new block starts here -->
20     <log_protect>
21       <match_string>open-ils.auth.authenticate.verify</match_string>
22       <match_string>open-ils.auth.authenticate.complete</match_string>
23       <match_string>open-ils.auth_proxy.login</match_string>
24       <match_string>open-ils.actor.user.password</match_string>
25       <match_string>open-ils.actor.user.username</match_string>
26       <match_string>open-ils.actor.user.email</match_string>
27       <match_string>open-ils.actor.patron.update</match_string>
28       <match_string>open-ils.cstore.direct.actor.user.create</match_string>
29       <match_string>open-ils.cstore.direct.actor.user.update</match_string>
30       <match_string>open-ils.cstore.direct.actor.user.delete</match_string>
31     </log_protect>
32   </shared> <!-- new block ends here -->
33 </config>
34 ----------------------------------------------------------------
35
36 EDI Order Template Updates
37 ~~~~~~~~~~~~~~~~~~~~~~~~~~
38 An updated EDI order template is now part of the stock data.  To avoid 
39 clobbering potentially functional EDI templates, no upgrade script was 
40 included to automatically upgrade existing templates.  To upgrade to the
41 newest template:
42
43 [source, sql]
44 ----------------------------------------------------------------
45 UPDATE action_trigger.event_definition SET template = 
46 $$
47 ...
48 $$ WHERE id = 23;
49
50 /* 
51 Use the template value for event definition 23 (line 7995) in 
52 950.data.seed-values.sql as the contents (...) of the above command.
53 */
54 ----------------------------------------------------------------
55
56 New features
57 ------------
58
59 Acquisitions
60 ~~~~~~~~~~~~
61
62 ACQ Invoice Inline Lineitem Search and Add
63 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
64
65 The Invoice UI is now composed of two tabs, the main invoice tab and a new
66 Search tab.  The search tab consists of a subset of the Acquisitions unified
67 search interface.  The goal is to allow users to search for lineitems to
68 invoice.  Search results may be added directly to the growing invoice.  A number of small usability features are included.
69
70 Features
71 ++++++++
72
73     * Option (default) to limit searches to invoiceable items.  
74         ** These are lineitems that are not cancelled, have at least one invoiceable copy, linked to a PO whose provider matches that of the current invoice, and are not already linked to the current invoice.
75     * Search defaults to last-run search (on workstation).
76     * New Lineitem Detail filter options
77     * Sort searches by lineitem number (default) and title.
78     * There is a new Expected Cost field which includes both the total invoiced cost plus the anticipated cost of lineitems as they are added.
79     * New Price per Copy field
80     * Lineitem count field
81     * Show / Hide Invoice details button.  Details are displayed by default, but hidden when the user enters the search tab.  From there it remains hidden until manually shown (or a new invoice is opened).
82     * A new "Save & Clear" button which saves the current invoice then clears the invoice display to create a new invoice.
83     * Provider, shipper, and receiver fields are auto-populated from the first-added invoice data (when not already set).
84     * Totals are now read-only, since they are derived from existing data (and are informational only).
85
86
87 EDI Invoices
88 ^^^^^^^^^^^^
89
90 The same setup that is required today for retrieving and reacting to EDI Order
91 Response messages (ORDRSP) will also react to Invoices (INVOIC).
92
93 This essentially means you must have a Provider (acq.provider) configured with
94 an EDI Account (acq.edi_account) containing login credentials for a vendor, you must have the edi_webrick service running (EDI translator), and you must have
95 the edi_pusher script run periodically by cron.
96
97 An open Evergreen invoice will be created for a each EDI Invoice message.
98 Evergreen invoice entries will be created for each lineitem detected in the
99 EDI message if that lineitem can be linked to a known Evergreen lineitem in
100 your system.  An Evergreen invoice item will be created for a whole-invoice
101 tax.
102
103 Enriched EDI
104 ^^^^^^^^^^^^
105
106 Support for Enriched EDI with copy-level data via EDI in ORDER messages.
107
108 Encumbrance-only Rollover
109 ^^^^^^^^^^^^^^^^^^^^^^^^^
110
111 A new Library Setting allows the year-end close-out operation to roll over
112 encumbrances while dumping any unspent money.
113
114 Fund Report
115 ^^^^^^^^^^^
116
117 A new IDL reporter view that provides summary information for funds for
118 reporting. The resulting table looks like a fund with four additional fields:
119 allocated_total, spent_total, encumbrance_total, and combined_balance.
120
121 EDI Fetching and Parsing Enhancements / Repairs
122 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
123 This release includes various improvements to how Evergreen processes
124 vendor EDI responses, including order responses and invoices.  Changes
125 include architectural improvements as well as new features.
126
127 Bug Fixes
128 +++++++++
129
130 * Improved order response handling for cancelled items.
131 * Deleting fund debits (encumbrances) for cancelled items.
132 * Extracting invoice date
133 * Invoices include quantity and amount paid (in addition to billed) to reduce
134   manual staff data entry
135 * Proper handling of previously-cancelled (e.g. back-ordered) invoiced items.
136
137 Architectural improvements
138 ++++++++++++++++++++++++++
139
140 For EDI parsing, the Ruby libraries, Ruby HTTP gateway, and Business::EDI Perl
141 modules are no longer needed.  They have been replaced with a single Perl
142 module which handles EDI parsing.
143
144 This reduces the complexity of the fetching and parsing layer.  Though the Ruby
145 libraries and Ruby HTTP gateway are still needed for outbound EDI (for now), 
146 the Perl Business::EDI modules are no longer needed at all, so they are no 
147 longer installed.
148
149 EDI order template improvements (no SQL upgrade script!)
150 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
151
152 Improved template for EDI purchase orders.  This theoretically just
153 works better where the old template worked.  Corrections made for
154 interactions with ULS, Midwest Tape, Baker & Taylor, and Recorded Books
155 especially.  GIR segments in the right place.
156
157 And also the template is just more maintainable now.
158
159 **THERE IS NO UPGRADE SCRIPT INCLUDED**.  Sites using EDI may not
160 necessarily want to mess with what they already have working.
161
162 If you want the changes, and maybe you do, especially if you're doing
163 enriched ordering and/or ordering from the vendors listed above, you can
164 extract the template changes easily enough yourself from the
165 950.data.seed-values.sql file.  See Upgrade Notes above.
166
167 OPAC
168 ~~~~
169
170 TPAC: Simplified CSS Color Customization
171 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
172 CSS colors are now defined as a pair of Template::Toolkit files,
173 `Open-ILS/src/templates/opac/css/styles.css.tt2` and
174 `Open-ILS/src/templates/opac/parts/css/colors.tt2`. Evergreen administrators
175 can customize the color scheme for a given skin by copying `colors.tt2` into a
176 template override directory and adjusting the colors as desired.
177
178 Change required to eg_vhost.conf
179 ++++++++++++++++++++++++++++++++
180 To enable Apache to pass the CSS file to the Template::Toolkit handler, you
181 must remove `.css` from the list of file extensions that should not be passed
182 to a handler in `eg_vhost.conf` as follows:
183
184 .From
185 ------------------------------------------------------------------------------
186 <LocationMatch ^/eg/.*(\.js|\.css|\.html|\.xhtml|\.xml|\.jpg|\.png|\.gif)$>
187     SetHandler None
188 </LocationMatch>
189 ------------------------------------------------------------------------------
190
191 .To
192 ------------------------------------------------------------------------------
193 <LocationMatch ^/eg/.*(\.js|\.html|\.xhtml|\.xml|\.jpg|\.png|\.gif)$>
194     SetHandler None
195 </LocationMatch>
196 ------------------------------------------------------------------------------
197
198 After making this change, restart Apache to make the change take effect.
199
200
201 Add to Permanent Bookbag
202 ^^^^^^^^^^^^^^^^^^^^^^^^
203
204 TPAC was modified to allow a logged-in user to add records from search
205 results and record summary screens to their permanent bookbags rather
206 than to a temporary bookbag that goes away when logged out.
207
208 Bookbag Selection Menu
209 ++++++++++++++++++++++
210
211 The search results and record summary screens were modified so that
212 the "Add to my list" will show a menu when moused over by a logged-in
213 user.  This menu will display the option to add to a temporary
214 bookbag, the user's default list (if any), up to ten of the user's
215 other bookbags, a "See all" option to allow the user to choose one of
216 the bags not on the menu, and to create a new list and add the record
217 to it.
218
219 Choosing the temporary list from the menu will add the record to the
220 temporary my list as TPAC does before the addition of this feature.
221
222 Choosing a named list will add the record to the chosen list.
223
224 Choosing "See all" or "Add to new list" will take the user to their My
225 Lists page.  (The only difference being that "See all" will actually
226 list all of the user's bookbags if they have more than the current
227 limit.)  The My Lists page will have a new button "Add to this list"
228 next to each of their existing lists.  In addition, if the user
229 creates a new list on this screen, the selected record will
230 automatically be added to this new list.
231
232 You can tell all of the above is working if you are redirected to your
233 search results or record summary after adding to a list.  If there was
234 a problem, you will get either an error page or will see your My Lists
235 page.
236
237 Designating a Default Bookbag/list
238 ++++++++++++++++++++++++++++++++++
239
240 The user's My List screen has had a 'Make Default List' button added
241 for each list.  Clicking the button will cause that list to be
242 registered as the user's default list.  This is the list that will be
243 added to when a user chooses the Default List option on the Add to my
244 list menu in search or record summary.
245
246 The current default list has a 'Remove Default List' button next to
247 it.  Clicking this button will unset the default status of the list
248 and return to a state of having no default list.
249
250 One handy way that users may want to use this feature is to create a
251 new list, and then designate it as the default.  This list could then
252 be used to add records from searches based on a current topic of
253 interest.  Changing the default list is so easy that users may want to
254 do so when changing search topics in order to keep their results
255 better organized.
256
257 A Note on CSS Styles
258 ++++++++++++++++++++
259
260 If a user has a bookbag with an overly long name, the end of it will
261 jut out past the right margin of the menu in FireFox and several other
262 browsers.  To change this behavior, you may want to edit the `.popmenu
263 li:hover li a` css entry in `web/css/skin/default/opac/style.css` by
264 adding an `overflow` property.  If you desire to have the longer names
265 clipped to the size ofthe menu then add `overlow: hidden`.  If you
266 prefer to have a scroll bar for oversized entries, then add `overflow:
267 auto`.
268
269
270 Warn When Adding to a Temporary Bookbag
271 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
272
273 TPAC has been modified so that a user will see a warning before adding
274 a record to a temporary bookbag.  This message serves to inform the
275 user that they are adding to a temporary list that will disappear when
276 their session ends.
277
278 A new org. unit setting has been added,
279 opac.patron.temporary_list_warn, that will enable this warning when
280 set.  Sites may choose not to display this warning.
281
282 The user may also set a preference in their search preferences to
283 disable this warning.  The setting only works when a user is logged
284 in, of course.
285
286 Kid's OPAC
287 ^^^^^^^^^^
288
289 The Kids OPAC (KPAC) is a public catalog search that was designed for children
290 and teens.  Colorful menu items,large buttons, and simple navigation make this
291 an appealing search interface for kids.  Librarians will appreciate the flexible
292 configuration of the KPAC.  Librarians can create links to canned search results
293 for kids and can apply these links by branch.  The KPAC uses the same infrastructure
294 as the Template Toolkit OPAC (TPAC), the adult catalog search, so you can easily
295 extend the KPAC using the code that already exists in the TPAC.  Finally, third
296 party content, such as reader reviews, can be integrated into the KPAC.
297
298
299 Locale picker
300 ^^^^^^^^^^^^^
301
302 In situations in which more than a single locale is configured, the TPAC header
303 will display a locale picker based on the registered locales. 
304
305 Hidden Place Hold Links
306 ^^^^^^^^^^^^^^^^^^^^^^^^^
307
308 The title-level 'Place Hold' link in TPAC will be hidden on the search result
309 and record summary screens when there are no holdable copies on the bib. This
310 is based on the copy, status and location holdable flags.
311
312 When enabled in config.tt2, the 'Place Holds' link in TPAC will also be hidden
313 if copies are available in the search location. 
314
315 Library Selectors in Advanced Searches
316 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
317
318 The library selector is now available on the numeric and expert search pages.
319
320 Journal Title Search
321 ^^^^^^^^^^^^^^^^^^^^
322
323 A journal title search is now available as a stock TPAC filter.
324
325 Public Patron Notes
326 ^^^^^^^^^^^^^^^^^^^
327
328 Public patron notes are now visible in the 'Account Summary' box of 'My
329 Account'.
330
331 Auto-Override Permissable Patron Hold Fail Events
332 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
333
334 A new Library Setting is available that tells TPAC to automatically override
335 hold placement failure events in cases where the patron has the permission to
336 do so. The goal is to skip the confirmation step previously required by patrons
337 when overriding a TPAC hold.
338
339 Cataloging
340 ~~~~~~~~~~
341
342 Z39.50 Source Attributes Management Interface
343 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
344
345 There is a new interface for managing Z39.50 attributes on a Z39.50
346 source.  The interface is linked from each source name in the Z39.50
347 Source administrative interface.
348
349 Cloning
350 +++++++
351
352 In addition to attribute creation, deletion, and editing, it's also 
353 possible to clone a set of attributes from one source into another.
354 When cloning, any attributes present in the cloned source that are
355 not present in the destination source are copied into the destination 
356 source.
357
358 Vandelay (MARC Import/Export) Copy Overlay
359 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
360
361 Vandelay Item Attributes (Cataloging -> MARC Import / 
362 Export -> Import Item Attribute Definitions) contains 
363 a new field called "Overlay Match ID".  The presence of data 
364 in this field extracted from an import-item copy indicates 
365 to the Vandelay import process that a copy overlay is requested 
366 instead of new copy creation.  The value for the field is the 
367 copy id for bib record queues and the ACQ lineitem_detail ID for 
368 Acquisitions Queues.  For either type of queue, however, overlay 
369 occurs against a real copy (asset.copy).  In the ACQ queue case, 
370 we use the lineitem_detail ID because this is the data ACQ 
371 providers and sub-systems will have access to.
372
373 When a match point ID value is a set and a matching copy is found, 
374 the values extracted from the inbound copy data are used to replace 
375 values on the existing found copy, including the call-number label.  
376 Any fields on the inbound copy that are empty are ignored.
377
378 One use case for this feature are shelf-ready items produced by a 
379 3rd-party (e.g. ACQ provider) and delivered to the library via MARC
380 file for upload.  The file might contain improved MARC bibliographic
381 data as well as real barcodes (i.e. not temporary ACQ generated 
382 barcodes) for the copies already purchased through the vendor.
383
384 Permission
385 ++++++++++
386
387 This adds a new permission called IMPORT_OVERLAY_COPY which is 
388 required to perform the copy overlay step.
389
390 Regardless of permission, it is not possible to overlay values on
391 a copy unless the imported bib record links (creates/overlays/merges)
392 to/with the owning bib record for the copy to be overlaid.  This is 
393 both for security and removal of a potent foot-gun.
394
395 Circulation
396 ~~~~~~~~~~~
397
398 Simplified Hold Pull List
399 ^^^^^^^^^^^^^^^^^^^^^^^^^
400
401 There is a new hold pull list interface based on the Flattener service that's
402 designed to perform faster than existing pull list interfaces, both in staff
403 client display and printing.
404
405 Sorting
406 +++++++
407
408 You can sort on any one column by clicking on it.  Click again to reverse
409 direction.  This is typical of similar interfaces.
410
411 Now you can also sort by multiple columns.  Right click the column headers of
412 the grid in the pull list interface to get a dialog that allows you to sort
413 by multiple columns, in any order.
414
415 Column Picking
416 ++++++++++++++
417
418 The same dialog that allows you to choose multiple sort columns (accessed by
419 right clicking any column header) also allows you to toggle the display of any
420 column available to the pull list on or off.
421
422 Persistence
423 +++++++++++
424
425 Once saved, your changes in this dialog persist for your user account.  Column
426 display, display order, and `sorting choices affect printing as well as
427 displayed output.
428
429 Administration
430 ~~~~~~~~~~~~~~
431
432 Search Filter Groups
433 ^^^^^^^^^^^^^^^^^^^^
434
435 Search filter groups support the collection of free-form search queries into
436 named groups of named filters which can be applied to searches.  The purpose 
437 is to allow systems to fine tune filters in the catalog.
438
439 Editing the groups and their entries is done in the staff client at
440 Admin -> Local Administration -> Search Filter Groups.
441
442 Example
443 +++++++
444
445 Consider a new filter called "reading_level".  It uses a combination of 
446 MARC audience and shelving location to differentiate items.  It might have
447 entries that look like this:
448
449 Children's Materials => audience(a,b,c) locations(1,2,3,4,5,6,7)
450
451 Young Adult => audience(j,d) locations(5,6,7,8,9,10)
452
453 Adult => audience(e,f,g, ) -locations(1,2,3,4,5,6,7,8,9)
454
455 Using the filter in a template
456 ++++++++++++++++++++++++++++++
457
458 [source, html]
459 ---------------------------------------------------
460 <span>[% ctx.filter_groups.reading_level.label %]</span>
461 <span>
462 [%
463     INCLUDE 'opac/parts/filter_group_selector.tt2'
464     filter_group='reading_level'
465     none_ok=1
466     none_label=l('All')
467 %]
468 </span>
469 ---------------------------------------------------
470
471 Standing Penalty CAPTURE and FULFILL Blocks
472 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
473
474 This feature adds two additional types of standing penalty blocks to manage
475 holds. 
476
477 When a user has a standing penalty containing 'CAPTURE' in the block list, the
478 user can place holds (pending no 'HOLD' block), but no holds for the user will
479 be captured. This is effectively a policy-based freeze of the hold.
480
481 Users that have penalties with 'FULFILL' in the block list will be able to
482 place holds and have their holds captured (i.e. delivered) but will not be able
483 to check out the captured holds. This is basically a way to get patrons in to
484 pay outstanding balances.
485
486 Copy Location Additions to Circulation Policies
487 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
488
489 Similar to circulation modifiers, circ policies can now be based on copy
490 location. This also adds copy location to the circ matrix weights and to circ
491 limit sets.
492
493 Staff Client
494 ~~~~~~~~~~~~
495
496 XULRunner / Firefox
497 ^^^^^^^^^^^^^^^^^^^
498 Support for later versions of XULRunner is included, which means that later
499 improvements to XULRunner can be taken advantage of. This also means that the
500 Firefox extension mode works in Firefox 3.6+, though some frequent tweaking
501 will be needed due to the rapid Firefox major release schedule.
502
503 The majority of the actual changes are backend changes, but there are some
504 significant things to note for local customizations.
505
506 Remote XUL
507 ++++++++++
508 Remote XUL no longer works in XULRunner/Firefox 4+, but to work around it a
509 custom extension now creates an oils:// wrapper. Within the staff client that
510 wrapper contains a "remote" host, from which server-side XUL can be loaded.
511
512 Custom XUL pages stored on the server will need to reference the new wrapper
513 to function.
514
515 As a note: The new wrapper is used for all OPAC access and only talks SSL.
516
517 enablePrivilege
518 +++++++++++++++
519 The enablePrivilege command that would allow code to access various protected
520 functionality is no longer available. Any code that depended upon it will need
521 to be adjusted to use the oils:// wrapper created for Remote XUL.
522
523 Cookies
524 +++++++
525 Unfortunately, the oils:// wrapper has one less than useful effect. Any
526 JavaScript loaded via it loses access to cookies. This is most notable when you
527 are dealing with authtoken cookies. This only applies to JavaScript, however,
528 and the server can still see the cookies when it gets requests.
529
530 As a workaround you can load the data stash and fetch authtokens via it instead.
531 This should always work when using the oils:// wrapper due to the elevated
532 permission set it gets (nearly, if not equal to, local XUL).
533
534 url_prefix
535 ++++++++++
536 Finally, as a useful feature, the url_prefix function is now slightly easier to
537 use. Instead of needing to reference urls.SOMETHING you can instead just put the
538 SOMETHING at the start of the url to prefix:
539
540 url_prefix('SOMETHING/stuff.html')
541
542 In this case SOMETHING can be terminated by the end of the string or up to the
543 first instance of a slash (/), question mark (?), or pipe (|). The pipe is a
544 special case and is removed during the replacement.
545
546 For example, if urls.REPLACE were set to 'oils://remote/replace':
547
548 url_prefix('REPLACE/stuff') becomes 'oils://remote/replace/stuff'
549 url_prefix('REPLACE?query') becomes 'oils://remote/replace?query'
550 url_prefix('RPLACE|ment') becomes 'oils://remote/replacement'
551
552 The pipe is intended for cases where the urls entry may or may not already
553 contain a query string, say for differences between OPACs where one requires
554 that something be passed into the query string, but the other uses a path
555 component instead.
556
557 New Operator Change Features
558 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
559
560 The operator change dialog has a new dropdown allowing the selection of a
561 Temporary, Staff, or Permanent authtoken. The first option provides a temporary
562 operator change as has typically been done through this menu item. 'Staff' uses
563 a normal staff login authtoken for a multi-hour timeout. 'Permanent' is a staff
564 change that disregards the previous login instead of allowing it to be
565 recovered by using the menu item again.
566
567 Additional Work Log Entries
568 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
569
570 Entries for bill payment and hold placement are now available in the 'Work Log'.
571
572 SIP
573 ~~~
574
575 Support for credit card payment type and fine items details
576 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
577
578 Support is now available to create a credit card payment type in the SIP Fee
579 Paid message. There is also now support for SIP clients to retrieve and
580 display a detailed/itemized list of billings to the patron.
581
582 Staff Client Initial Hostname
583 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
584
585 For fresh installs of the staff client a common issue is people remembering
586 what hostname to specify. If you are building your own staff clients you can
587 now fill this in automatically.
588
589 You can specify this when configuring Evergreen with a new configure option:
590
591 --with-initialhost=example.org
592
593 It is also possible to specify when building the staff client itself using the
594 INITIAL_HOST variable:
595
596 make INITIAL_HOST=example.org build