working/Evergreen.git
9 years agoLP#1549505: Filter publication years to the current year and before to avoid junk... collab/gmcharlt/lp1549505_wip_popularity_ratings
Mike Rylander [Fri, 1 Apr 2016 00:40:49 +0000 (20:40 -0400)]
LP#1549505: Filter publication years to the current year and before to avoid junk data

Signed-off-by: Mike Rylander <mrylander@gmail.com>
9 years agoLP#1549505: add validation of required badge fields
Galen Charlton [Wed, 30 Mar 2016 21:29:32 +0000 (17:29 -0400)]
LP#1549505: add validation of required badge fields

The badge name is always required; the horizon and
percentile may be required depending on the popularity
parameter.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
9 years agoLP#1549505: tweak require_horizon for a couple pop params
Galen Charlton [Wed, 30 Mar 2016 20:28:49 +0000 (16:28 -0400)]
LP#1549505: tweak require_horizon for a couple pop params

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
9 years agoLP#1549505: tweak default sort
Galen Charlton [Wed, 30 Mar 2016 20:14:45 +0000 (16:14 -0400)]
LP#1549505: tweak default sort

Changed to *always* use the default sort order (if set),
unless the invoker of searchbar.tt2 is making arrangements
to display a drop-down for sort order.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
9 years agoLP#1549505: optimize population filtering for copy-oriented badges
Mike Rylander [Tue, 29 Mar 2016 15:03:33 +0000 (11:03 -0400)]
LP#1549505: optimize population filtering for copy-oriented badges

Signed-off-by: Mike Rylander <mrylander@gmail.com>
9 years agoLP#1549505: base holds_placed_over_time() on request age
Galen Charlton [Fri, 25 Mar 2016 18:15:46 +0000 (14:15 -0400)]
LP#1549505: base holds_placed_over_time() on request age

As opposed to how long ago it was fulfilled.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
9 years agowebstaff: sort column picker entries by class path and column labels
Mike Rylander [Fri, 25 Mar 2016 17:52:54 +0000 (13:52 -0400)]
webstaff: sort column picker entries by class path and column labels

Signed-off-by: Mike Rylander <mrylander@gmail.com>
9 years agoLP#1549505: fix *_over_time calculations
Galen Charlton [Fri, 25 Mar 2016 18:02:04 +0000 (14:02 -0400)]
LP#1549505: fix *_over_time calculations

Use the age of an event, not its interval from the
beginning of computer time, for the following
popularity parameters:

* holds_filled_over_time
* holds_placed_over_time
* circs_over_time

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
9 years agoLP#1549505: fix badge scoping
Galen Charlton [Fri, 25 Mar 2016 16:16:50 +0000 (12:16 -0400)]
LP#1549505: fix badge scoping

This patch fixes badge scoping during searches
so that only badges at the search location and its
ancestors are used to calculate popularity. Note that
if a user explicitly puts in a badge_orgs search "filter"
in the query, that will override this default behavior,
allowing you to do things like search the entire consortium,
but bring hits that are most popular per a badge
scoped at branch X to the top.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
9 years agoLP#1549505: display badges on record summary as ratio
Galen Charlton [Fri, 25 Mar 2016 14:23:58 +0000 (10:23 -0400)]
LP#1549505: display badges on record summary as ratio

A display of "Most Holds: 4" could be misinterpreted by the patron
as the number of holds; "Most Holds: 4 / 5.0" better indicates that
the value is a score.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
9 years agoLP#1549505: double-clicking existing badge now opens editor
Galen Charlton [Fri, 25 Mar 2016 01:55:58 +0000 (21:55 -0400)]
LP#1549505: double-clicking existing badge now opens editor

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
9 years agoLP#1549505: make badge names and descriptions translatable
Galen Charlton [Fri, 25 Mar 2016 01:25:12 +0000 (21:25 -0400)]
LP#1549505: make badge names and descriptions translatable

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
9 years agoLP#1549505: remove caching of badge definitions in TPAC
Galen Charlton [Fri, 25 Mar 2016 01:22:25 +0000 (21:22 -0400)]
LP#1549505: remove caching of badge definitions in TPAC

The speed difference turned out to be minimal (0.004 seconds)
per render of record summary page; this way, adding a new
badge won't require an Apache reload to see the new
badge's name consistently.

As a good side-effect, the badge name can now be
exposed to the I18N system.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
9 years agoLP#1549505: Filter more copies where possible in hold and circ populations
Mike Rylander [Thu, 24 Mar 2016 20:07:32 +0000 (16:07 -0400)]
LP#1549505: Filter more copies where possible in hold and circ populations

Signed-off-by: Mike Rylander <mrylander@gmail.com>
9 years agoLP#1549505: Only use appropriate filtering temp tables for uri-ish and global populations
Mike Rylander [Wed, 23 Mar 2016 22:37:12 +0000 (18:37 -0400)]
LP#1549505: Only use appropriate filtering temp tables for uri-ish and global populations

Signed-off-by: Mike Rylander <mrylander@gmail.com>
9 years agoLP#1549505: Add back the global (copy/uri unaware) fixed rating population function
Mike Rylander [Wed, 23 Mar 2016 21:31:46 +0000 (17:31 -0400)]
LP#1549505: Add back the global (copy/uri unaware) fixed rating population function

Signed-off-by: Mike Rylander <mrylander@gmail.com>
9 years agoLP#1549505: Correct function name for fixed rating badges
Mike Rylander [Wed, 23 Mar 2016 21:24:19 +0000 (17:24 -0400)]
LP#1549505: Correct function name for fixed rating badges

Signed-off-by: Mike Rylander <mrylander@gmail.com>
9 years agoLP#1549505: comment out 'Least Popular' catalog sort option
Galen Charlton [Tue, 22 Mar 2016 17:50:29 +0000 (13:50 -0400)]
LP#1549505: comment out 'Least Popular' catalog sort option

Support for sorting by ascending popularity remains in the
back end, however, since if one's configured badges such that
almost every record has a badge score, that sort order could
be useful for examining the long tail of the collection.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
9 years agoLP#1549505: avoid doubling of the 'sort' CGI parameter
Galen Charlton [Tue, 22 Mar 2016 17:45:58 +0000 (13:45 -0400)]
LP#1549505: avoid doubling of the 'sort' CGI parameter

This patch ensures that the hidden input to set
the default sort value doesn't get applied to the results
page, which already supplied a widget for the purpose.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
9 years agoLP#1549505: tweak handling of the maximum popularity importance
Galen Charlton [Tue, 22 Mar 2016 17:43:07 +0000 (13:43 -0400)]
LP#1549505: tweak handling of the maximum popularity importance

From comments:

Scale the 0-5 effect of popularity badges by providing a multiplier
for the badge average based on the overall maximum
multiplier.  Two examples, comparing the effect to the default
$max_mult value of 2.0, which causes a $adjusted_scale value
of 0.2:

 * Given the default $max_mult of 2.0, the value of
   $adjusted_scale will be 0.2 [($max_mult - 1.0) / 5.0].
   For a record whose average badge score is the maximum
   of 5.0, that would make the relevance multiplier be
   2.0:
      1.0 + (5.0 [average score] * 0.2 [ $adjusted_scale ],
   This would have the effect of doubling the effective
   relevance of highly popular items.

 * Given a $max_mult of 1.1, the value of $adjusted_scale
   will be 0.02, meaning that the average badge value will be
   multiplied by 0.02 rather than 0.2, then added to 1.0 and
   used as a multiplier against the base relevance.  Thus a
   change of at most 10% to the base relevance for a record
   with a 5.0 average badge score. This will allow records
   that are naturally very relevant to avoid being pushed
   below badge-heavy records.

 * Given a $max_mult of 3.0, the value of $adjusted_scale
   will be 0.4, meaning that the average badge value will be
   multiplied by 0.4 rather than 0.2, then added to 1.0 and
   used as a multiplier against the base relevance. Thus a
   change of as much as 200% to (or three times the size of)
   the base relevance for a record with a 5.0 average badge
   score.  This in turn will cause badges to outweigh
   relevance to a very large degree.

The maximum badge multiplier can be set to a value less than
1.0; this would have the effect of making less popular items
show up higher in the results.  While this is not a likely
option for production use, it could be useful for identifying
interesting long-tail hits, particularly in a database
where enough badges are configured so that very few records
have an overage badge score of zero.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
9 years agoLP#1549505: fix link from badges to copy location groups
Galen Charlton [Mon, 21 Mar 2016 21:03:24 +0000 (17:03 -0400)]
LP#1549505: fix link from badges to copy location groups

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
9 years agoLP#1549505: Scale popularity adjustment to relevance differently
Mike Rylander [Sat, 19 Mar 2016 20:31:04 +0000 (16:31 -0400)]
LP#1549505: Scale popularity adjustment to relevance differently

From code comments:

$max_mult below is the value of the newly introduced global flag
called search.max_popularity_importance_multiplier.

$adjusted_scale below is the converted badge score scaling value
after accounting for the administrator-supplied $max_mult value.

This will cale the 0-5 effect of popularity badges by providing a
divisor for the badge average that is the inverse of the maximum
multiplier.  Two examples, comparing the effect to the default
$max_mult value of 2.0, which causes a $adjusted_scale value
of 5.0:

 * Given a $max_mult of 1.1, the value of $adjusted_scale
   will be 50.0, meaning that the average badge value will be
   /divided/ by 50.0 rather than 5.0, then added to 1.0 and
   used as a multiplier against the base relevance.  Thus a
   change of at most 10% to the base relevance for a record
   with a 5.0 average badge score. This will allow records
   that are naturally very relevant to avoid being pushed
   below badge-heavy records.

 * Given a $max_mult of 3.0, the value of $adjusted_scale
   will be 2.5, meaning that the average badge value will be
   /divided/ by 2.5 rather than 5.0, then added to 1.0 and
   used as a multiplier against the base relevance. Thus a
   change of as much as 200% to (or three times the size of)
   the base relevance for a record with a 5.0 average badge
   score.  This in turn will cause badges to outweigh
   relevance to a very large degree.

Signed-off-by: Mike Rylander <mrylander@gmail.com>
9 years agoLP#1549505: Always use active_date for copy-circ-percent, and only count non-deleted...
Mike Rylander [Wed, 16 Mar 2016 20:52:04 +0000 (16:52 -0400)]
LP#1549505: Always use active_date for copy-circ-percent, and only count non-deleted non-circulating copies

Signed-off-by: Mike Rylander <mrylander@gmail.com>
9 years agoLP#1549505: tweak percentage of time checked out calculation
Galen Charlton [Fri, 11 Mar 2016 18:34:36 +0000 (13:34 -0500)]
LP#1549505: tweak percentage of time checked out calculation

This patch excludes lost, claims-returned, claims-never-checked-out,
long-overdue, and open max-fines loans from consideration.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
9 years agoLP#1549505: add flag to tweak popularity-adjusted relevance
Galen Charlton [Fri, 11 Mar 2016 18:27:03 +0000 (13:27 -0500)]
LP#1549505: add flag to tweak popularity-adjusted relevance

This adds a new global_flag, search.max_popularity_importance_multiplier,
to control the factor by which popularity affects Popularity Adjusted
relevance ranking.

The value should be a decimal number, typically between 1.0 and 2.0:

* 1.0 be would be equivalent to not adjusting relevance for popularity
  at all.
* 1.1 would mean that the multiplier would range from 1 (for zero
  popularity) to 1.1 (for maximum popularity)
* values less than 1.0 would have the effect of boosting lower
  popularity records in search results -- dramatically

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
9 years agoLP#1549505: fix thinko
Galen Charlton [Thu, 10 Mar 2016 23:16:52 +0000 (18:16 -0500)]
LP#1549505: fix thinko

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
9 years agoLP#1549505: fix handling of OPAC sort CGI parameter
Galen Charlton [Thu, 10 Mar 2016 20:55:57 +0000 (15:55 -0500)]
LP#1549505: fix handling of OPAC sort CGI parameter

This patch ensures that the 'sort' parameter does not
get duplicate when a global default sort order is set
and a user switches from that to relevance to another
order.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
9 years agoLP#1549505: fix editing of badge percentile field
Galen Charlton [Thu, 10 Mar 2016 20:29:37 +0000 (15:29 -0500)]
LP#1549505: fix editing of badge percentile field

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
9 years agoLP#1549505: fix thinko in rating.precalc_location_filter()
Galen Charlton [Thu, 10 Mar 2016 18:13:35 +0000 (13:13 -0500)]
LP#1549505: fix thinko in rating.precalc_location_filter()

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
9 years agoLP#1549505: fix rating.percent_time_circulating()
Galen Charlton [Thu, 10 Mar 2016 17:57:26 +0000 (12:57 -0500)]
LP#1549505: fix rating.percent_time_circulating()

Fixes an issue with the item age calculation; not all items
will have a non-NULL active_date. This led to return
records with a NULL time circulating value, meaning
that they didn't get excluded by the percentile
filter.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
9 years agoLP#1549505: Precalculate full bib population in temp tables
Mike Rylander [Wed, 2 Mar 2016 18:57:42 +0000 (13:57 -0500)]
LP#1549505: Precalculate full bib population in temp tables

Signed-off-by: Mike Rylander <mrylander@gmail.com>
9 years agoLP#1549505: Streamline the population views a bit more, and make them easier to replace
Mike Rylander [Tue, 1 Mar 2016 22:06:30 +0000 (17:06 -0500)]
LP#1549505: Streamline the population views a bit more, and make them easier to replace

Signed-off-by: Mike Rylander <mrylander@gmail.com>
9 years agoLP#1549505: fix issues preventing filter precalc functions from installing
Galen Charlton [Tue, 1 Mar 2016 20:39:23 +0000 (15:39 -0500)]
LP#1549505: fix issues preventing filter precalc functions from installing

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
9 years agoLP#1549505: Precalculate attr_filter set, as it is very expensive in-view
Mike Rylander [Tue, 1 Mar 2016 18:08:36 +0000 (13:08 -0500)]
LP#1549505: Precalculate attr_filter set, as it is very expensive in-view

Signed-off-by: Mike Rylander <mrylander@gmail.com>
9 years agoLP#1549505: another fix to the trigger
Galen Charlton [Mon, 29 Feb 2016 21:39:35 +0000 (16:39 -0500)]
LP#1549505: another fix to the trigger

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
9 years agoLP#1549505: mark the percentile as a float
Galen Charlton [Fri, 26 Feb 2016 21:58:56 +0000 (16:58 -0500)]
LP#1549505: mark the percentile as a float

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
9 years agoLP#1549505: more fixes to badge recalculator
Galen Charlton [Fri, 26 Feb 2016 21:06:34 +0000 (16:06 -0500)]
LP#1549505: more fixes to badge recalculator

* set last calculation timestamp when handling
  fixed badges
* fix a syntax error and typo

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
9 years agoLP#1549505: Trigger syntax typo fix
Mike Rylander [Mon, 29 Feb 2016 16:09:16 +0000 (11:09 -0500)]
LP#1549505: Trigger syntax typo fix

Signed-off-by: Mike Rylander <mrylander@gmail.com>
9 years agoLP#1549505: Make rhrr a materialized view for speed. This will help many holds report...
Mike Rylander [Mon, 29 Feb 2016 16:06:00 +0000 (11:06 -0500)]
LP#1549505: Make rhrr a materialized view for speed. This will help many holds reports as well.

Signed-off-by: Mike Rylander <mrylander@gmail.com>
9 years agoLP#1549505: Mark badge as having been recalculated
Mike Rylander [Thu, 25 Feb 2016 21:53:28 +0000 (16:53 -0500)]
LP#1549505: Mark badge as having been recalculated

Signed-off-by: Mike Rylander <mrylander@gmail.com>
9 years agoLP#1549505: fix bug in rating.circs_over_time
Galen Charlton [Thu, 25 Feb 2016 19:32:31 +0000 (14:32 -0500)]
LP#1549505: fix bug in rating.circs_over_time

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
9 years agoLP#1549505: add admin interface to manage badges
Galen Charlton [Wed, 24 Feb 2016 22:19:14 +0000 (17:19 -0500)]
LP#1549505: add admin interface to manage badges

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
9 years agoLP#1549505: Correct 1) ultimate tie-breaker sort 2) secondary sort for popularity
Mike Rylander [Thu, 4 Feb 2016 22:48:02 +0000 (17:48 -0500)]
LP#1549505: Correct 1) ultimate tie-breaker sort 2) secondary sort for popularity

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
9 years agoLP#1549505: Add ability to set default sorter via global flag
Mike Rylander [Thu, 4 Feb 2016 22:19:03 +0000 (17:19 -0500)]
LP#1549505: Add ability to set default sorter via global flag

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
9 years agoLP#1549505: Invert popularity sort value so default ASC does what we want
Mike Rylander [Thu, 4 Feb 2016 21:18:48 +0000 (16:18 -0500)]
LP#1549505: Invert popularity sort value so default ASC does what we want

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
9 years agoLP#1549505: fix crash displaying list of a record's badges
Galen Charlton [Thu, 4 Feb 2016 20:47:00 +0000 (15:47 -0500)]
LP#1549505: fix crash displaying list of a record's badges

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
9 years agoLP#1549505: fix SQL syntax error in QP
Galen Charlton [Thu, 4 Feb 2016 20:26:38 +0000 (15:26 -0500)]
LP#1549505: fix SQL syntax error in QP

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
9 years agoLP#1549505: fix Perl syntax error
Galen Charlton [Thu, 4 Feb 2016 20:16:00 +0000 (15:16 -0500)]
LP#1549505: fix Perl syntax error

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
9 years agoLP#1549505: Provide a cron-able script to perform badge recalculation
Mike Rylander [Wed, 3 Feb 2016 20:46:52 +0000 (15:46 -0500)]
LP#1549505: Provide a cron-able script to perform badge recalculation

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
9 years agoLP#1549505: Show popularity if > 0
Mike Rylander [Wed, 3 Feb 2016 18:40:14 +0000 (13:40 -0500)]
LP#1549505: Show popularity if > 0

Also Pass badge list to record detail page if coming
from a search, to retain badge context

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
9 years agoLP#1549505: Show per-badge popularity in the record summary
Mike Rylander [Wed, 3 Feb 2016 18:38:01 +0000 (13:38 -0500)]
LP#1549505: Show per-badge popularity in the record summary

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
9 years agoLP#1549505: Load badge list and per-record badge score map into the tpac context...
Mike Rylander [Wed, 3 Feb 2016 18:36:03 +0000 (13:36 -0500)]
LP#1549505: Load badge list and per-record badge score map into the tpac context object

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
9 years agoLP#1549505: Surface popularity from the search query
Mike Rylander [Wed, 3 Feb 2016 18:34:35 +0000 (13:34 -0500)]
LP#1549505: Surface popularity from the search query

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
9 years agoLP#1549505: Surface badge list and popularity in the result data
Mike Rylander [Wed, 3 Feb 2016 17:26:53 +0000 (12:26 -0500)]
LP#1549505: Surface badge list and popularity in the result data

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
9 years agoLP#1549505: Teach perl and qp stored proc search code about badges, so they can be...
Mike Rylander [Wed, 27 Jan 2016 15:43:22 +0000 (10:43 -0500)]
LP#1549505: Teach perl and qp stored proc search code about badges, so they can be returned to the caller

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
9 years agoLP#1549505: De-complicate badge search stuff, and weight badge scores
Mike Rylander [Wed, 27 Jan 2016 15:42:05 +0000 (10:42 -0500)]
LP#1549505: De-complicate badge search stuff, and weight badge scores

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
9 years agoLP#1549505: Add a "badges" filter, and logic to gather badge orgs from location_group...
Mike Rylander [Mon, 25 Jan 2016 21:09:04 +0000 (16:09 -0500)]
LP#1549505: Add a "badges" filter, and logic to gather badge orgs from location_groups filters

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
9 years agoLP#1549505: Assume all orgs when none supplied for sorting on popularity
Mike Rylander [Mon, 25 Jan 2016 15:41:46 +0000 (10:41 -0500)]
LP#1549505: Assume all orgs when none supplied for sorting on popularity

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
9 years agoLP#1549505: Teach QP and its caller how to use badges
Mike Rylander [Fri, 22 Jan 2016 22:13:25 +0000 (17:13 -0500)]
LP#1549505: Teach QP and its caller how to use badges

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
9 years agoLP#1549505: schema and IDL for statistical poularity ratings
Mike Rylander [Fri, 8 Jan 2016 03:00:20 +0000 (22:00 -0500)]
LP#1549505: schema and IDL for statistical poularity ratings

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
9 years agoLP#1206936 Stamping upgrade script; adding test
Dan Wells [Wed, 24 Feb 2016 19:27:15 +0000 (14:27 -0500)]
LP#1206936 Stamping upgrade script; adding test

Signed-off-by: Dan Wells <dbw2@calvin.edu>
9 years agoLP#1206936 - Fix wrong billing info in money.transaction_billing_summary
Chris Sharp [Mon, 30 Nov 2015 14:48:26 +0000 (09:48 -0500)]
LP#1206936 - Fix wrong billing info in money.transaction_billing_summary

The money.transaction_billing_summary view was showing the wrong
last billing type and last billing note for certain transactions.
This fix, from Dan Scott, in turn from Mike Rylander, recreates
that view so that it depends on the speedier and more accurate
money.materialized_billable_xact_summary view.

Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
9 years agoLP#1526546 Sort copies by part label in holdings maint.
Remington Steed [Wed, 16 Dec 2015 20:46:17 +0000 (15:46 -0500)]
LP#1526546 Sort copies by part label in holdings maint.

This commit improves the sorting of copies on the Holdings Maintenance
screen in the XUL-based staff client. The previous code sorted the
copies by their barcodes after retrieval. This commit moves the sorting
logic into the search call and adds logic to first sort by the part
label sort key.

Signed-off-by: Remington Steed <rjs7@calvin.edu>
Signed-off-by: Dan Wells <dbw2@calvin.edu>
9 years agoLP#1505286: stamping upgrade script for limit facets retrieved
Ben Shum [Wed, 24 Feb 2016 04:50:11 +0000 (23:50 -0500)]
LP#1505286: stamping upgrade script for limit facets retrieved

Signed-off-by: Ben Shum <ben@evergreener.net>
9 years agoLP#1505286: add release notes
Galen Charlton [Fri, 23 Oct 2015 17:18:19 +0000 (17:18 +0000)]
LP#1505286: add release notes

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Ben Shum <ben@evergreener.net>
9 years agoLP#1505286: add pgTAP tests
Galen Charlton [Fri, 23 Oct 2015 17:04:17 +0000 (17:04 +0000)]
LP#1505286: add pgTAP tests

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Ben Shum <ben@evergreener.net>
9 years agoLP#1505286: limit number of facets retrieved
Galen Charlton [Fri, 23 Oct 2015 16:29:38 +0000 (16:29 +0000)]
LP#1505286: limit number of facets retrieved

This patch teaches search how to limit the number of facets retrieved
per defined facet field. Setting a limit is useful so that
open-ils.cstore backends don't end up needlessly consuming
memory when fetching facets for a large result set; if a broad
search retrieves over 10,000 author facets (say), even the most
persistant user is not going to actually look at all of them. Fetching
fewer facets can also slightly speed up generation of search
results.

The limit is controlled by a new global flag, search.max_facets_per_field,
whose label is "Search: maximum number of facet values to retrieve for
each facet field".  The default limit value is 1,000, but lower values
(e.g., 100) are perhaps even better for most catalogs.

To test:

[1] Upon applying the patch, set the value of the
    search.max_facets_per_field global flag to a small
    value.
[2] Perform some searches and verify that the number
    of facets retrieved doesn't exceed the limit; note
    that the limit is per facet *field*, not overall
    or per field class.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Ben Shum <ben@evergreener.net>
9 years agoLP#1545178: remove two unused methods
Galen Charlton [Fri, 12 Feb 2016 22:10:25 +0000 (17:10 -0500)]
LP#1545178: remove two unused methods

This patch removes two methods that were both broken
and not in use:

  * open-ils.actor.org_unit.closed_date.create
  * open-ils.actor.org_unit.closed_date.delete

To test:

[1] This patch has no user-visible impact whatsoever, but
    to check for regressions, verify the proper functioning
    of the closed dates editor.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Ben Shum <ben@evergreener.net>
9 years agoLP#1466990: Detailed search results shows parts for items that dont have parts
blake [Wed, 23 Dec 2015 20:20:40 +0000 (14:20 -0600)]
LP#1466990: Detailed search results shows parts for items that dont have parts

The part_label variable needs to be reset between iterations. The variable was still set
and bled from copy to copy. Testing this will require a search with details turned on.
The search result set needs to include a bib that has copies with parts (with at least
one copy invisible) and another bib that has copies without parts.

Signed-off-by: blake <blake@mobiusconsortium.org>
Signed-off-by: Ben Shum <ben@evergreener.net>
9 years agoLP#1474051 Stamping upgrade script for drop-cc-data
Kathy Lussier [Fri, 19 Feb 2016 17:41:43 +0000 (12:41 -0500)]
LP#1474051 Stamping upgrade script for drop-cc-data

Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agoLP#1474051 Release/Upgrade Notes on dropped CC fields
Bill Erickson [Mon, 13 Jul 2015 19:29:25 +0000 (15:29 -0400)]
LP#1474051 Release/Upgrade Notes on dropped CC fields

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agoLP#1474051 CRON script for clearing CC numbers
Bill Erickson [Wed, 14 Oct 2015 15:59:32 +0000 (11:59 -0400)]
LP#1474051 CRON script for clearing CC numbers

Adds a new srfsh script which calls a new open-ils.storage API call
which sets the cc_number value to NULL on all credit card payments
older than the age specified in the srfsh script.

Adds example CRON entry.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agoLP#1474051 PGTAP test checking dropped columns
Bill Erickson [Mon, 13 Jul 2015 19:19:35 +0000 (15:19 -0400)]
LP#1474051 PGTAP test checking dropped columns

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agoLP#1474051 Drop unneeded CC payment fields
Bill Erickson [Mon, 13 Jul 2015 18:00:06 +0000 (14:00 -0400)]
LP#1474051 Drop unneeded CC payment fields

Avoid storing the following credit card fields:

expire month
expire year
first name
last name
credit card type

Print and email receipts for credit card data modified to avoid
referencing these fields.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agoPorting 2.8.4-2.8.5 / 2.8.5-2.8.6 DB upgrade scripts
Bill Erickson [Fri, 19 Feb 2016 17:35:42 +0000 (12:35 -0500)]
Porting 2.8.4-2.8.5 / 2.8.5-2.8.6 DB upgrade scripts

Signed-off-by: Bill Erickson <berickxx@gmail.com>
9 years agoForward port 2.9.1 to 2.9.2 upgrade script and server upgrade instructions.
Jason Stephenson [Fri, 19 Feb 2016 17:00:24 +0000 (12:00 -0500)]
Forward port 2.9.1 to 2.9.2 upgrade script and server upgrade instructions.

Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
9 years agoLP#1202742 non-active copy transit release notes
Bill Erickson [Mon, 4 Aug 2014 13:16:41 +0000 (09:16 -0400)]
LP#1202742 non-active copy transit release notes

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agoLP#1202742 Non-active transit copy status messages
Bill Erickson [Thu, 18 Jul 2013 15:17:23 +0000 (11:17 -0400)]
LP#1202742 Non-active transit copy status messages

When an in-transit copy is checked into the staff client, display a special
message in the transit alert dialog and in the printed transit receipt
(optionally, via macro) if the copy is in (or, rather, will be once it
arrives at its destination) a non-active copy status.

See config.copy_status.copy_active.

For example, assuming the org unit setting 'circ.lost_immediately_available'
is unset, when a Lost copy is checked in that must transit home, the
following message will appear in the transit alert dialog:

This item is in status "Lost", additional staff action may be required.

Additionally, the value of the 'transit_copy_status_msg' macro, which
defaults to "", will be set to this message, so that the message may
appear in printed transit slips.

Note that the code will test for the presence of the
"staff.circ.utils.transit.copy_status_message" string property and fail
gracefully if it is unset.  Through this, admins can disable this
feature entirely.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agoLP#1486151 Stamping upgrade script for password reset regex description
Kathy Lussier [Thu, 18 Feb 2016 23:51:33 +0000 (18:51 -0500)]
LP#1486151 Stamping upgrade script for password reset regex description

Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agoLP#1013786 TPAC add reminder to modify update_pasword_msg.tt2 to global.password_regex
Michael Peters [Tue, 18 Aug 2015 16:49:10 +0000 (12:49 -0400)]
LP#1013786 TPAC add reminder to modify update_pasword_msg.tt2 to global.password_regex

Currently, libraries can configure their own password strength regular expressions
via the Library Settings Editor.  This, however, did not provide a reminder
that the message shown to the patron when resetting their password needed to
meet those requirements.

This patch provides a hint in the description of the YAOUS global.password_regex
to remind that update_password_msg.tt2 should be updated with a user-friendly
text string explaining the password requirements if they are changed from the default.

Signed-off-by: Michael Peters <mpeters@emeralddata.net>
Signed-off by: Christine Burns <christine.burns@bc.libraries.coop>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agoLP#1380709 Stamping upgrade script for fund debit invoice links
Kathy Lussier [Thu, 18 Feb 2016 17:58:03 +0000 (12:58 -0500)]
LP#1380709 Stamping upgrade script for fund debit invoice links

Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agoLP#1367926 Stamping upgrade script for direct access to full unapi backend
Kathy Lussier [Thu, 18 Feb 2016 17:53:19 +0000 (12:53 -0500)]
LP#1367926 Stamping upgrade script for direct access to full unapi backend

Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agoLP#1380709 Renaming live-t test to avoid duplicate numbers
Kathy Lussier [Thu, 18 Feb 2016 16:50:56 +0000 (11:50 -0500)]
LP#1380709 Renaming live-t test to avoid duplicate numbers

Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agoLP#1380709 Perl live test
Bill Erickson [Mon, 4 Jan 2016 16:20:27 +0000 (11:20 -0500)]
LP#1380709 Perl live test

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agoLP#1380709 acq.lineitem_detail.fund_debit INDEX
Bill Erickson [Thu, 11 Dec 2014 19:17:09 +0000 (14:17 -0500)]
LP#1380709 acq.lineitem_detail.fund_debit INDEX

Use of the new fund_debit.invoice_entry column includes a query joining
fund_debits to lineitem_details.  On sufficiently large data sets
(tested on 2M rows), the query can take > 1 second without the index.
Down to < 1ms with the index.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jennifer Pringle <jennifer.pringle@bc.libraries.coop>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agoLP#1380709 fund_debit.invoice_entry INDEX
Bill Erickson [Mon, 8 Dec 2014 15:34:26 +0000 (10:34 -0500)]
LP#1380709 fund_debit.invoice_entry INDEX

Adds index on new acq.fund_debit.invoice_entry column, since fund_debit
can get quite large.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jennifer Pringle <jennifer.pringle@bc.libraries.coop>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agoLP#1380709 Fund debit links to invoice entry
Bill Erickson [Thu, 16 Oct 2014 20:17:16 +0000 (16:17 -0400)]
LP#1380709 Fund debit links to invoice entry

Fund debits created by lineitem_details (copies) now track which invoice
entry last touched the fund debit.  With this, it's possible to say with
certainty which invoice a fund_debit "belongs" to, which is particularly
useful for reporting fund summary information on an invoice.

Note this has no affect fund_debit's linked to invoice_item's, since
they already link to the fund debits.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Jennifer Pringle <jennifer.pringle@bc.libraries.coop>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agoLP#1367926 Release notes addition
Kathy Lussier [Thu, 18 Feb 2016 16:06:36 +0000 (11:06 -0500)]
LP#1367926 Release notes addition

Adding a bullet point to the release notes to further clarify the format that
the URL should take.

Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agoLP#1367926: release notes
Galen Charlton [Tue, 16 Feb 2016 19:20:06 +0000 (14:20 -0500)]
LP#1367926: release notes

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agoLP#1367926: add some unit tests
Galen Charlton [Tue, 16 Feb 2016 18:28:27 +0000 (13:28 -0500)]
LP#1367926: add some unit tests

- a pgTAP test of the new 'bre.extern' include option
  for unapi.bre()
- tests for OpenILS::WWW::SuperCat::unapi2_formats and
  OpenILS::Utils::TagURI

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agoLP#1367926: various improvements and bugfixes
Galen Charlton [Tue, 16 Feb 2016 16:31:34 +0000 (11:31 -0500)]
LP#1367926: various improvements and bugfixes

- use entityize() so that non-ASCII characters don't break
  XML well-formedness
- when a U2 identifier is given, the list of supported formats
  returned is now accurate
- biblio_record_entry_feed now works; for example,

/opac/extras/unapi?id=tag::U2@biblio_record_entry_feed/1608,454{holdings_xml}&format=mods32

returns a modsCollection of bibs 1608 and 454.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agoLP#1367926: Expose non-MARC bre data via U2
Mike Rylander [Tue, 8 Dec 2015 15:08:41 +0000 (10:08 -0500)]
LP#1367926: Expose non-MARC bre data via U2

Many use cases for the new unAPI implemetation depend on being able to run
recurring processes on new, updated, or deleted objects.  For most objects,
this is simple because they carry timestamps as fields.  However, the bre
class, as exposed by unAPI, does not provide access to many non-MARC fields.

So, here we add an 'includes' options to expose the non-MARC fields of use
to external processes.  The option is spelled "bre.extern", as in the tag
URI:

  tag::U2@bre/267{bre.extern}

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agoLP#1367926: Add support for (nearly) direct access to the full unapi backend
Mike Rylander [Wed, 10 Sep 2014 16:22:44 +0000 (12:22 -0400)]
LP#1367926: Add support for (nearly) direct access to the full unapi backend

Some parts of Evergreen (notably the TPAC), and various 3rd party services,
would benefit from full and direct access to the power of the backend (read:
faster, more complete, more API-stable) unAPI (um) API. Related, many moons
ago, I built a perl module (OpenILS::Utils::TagURI) to make parsing of tag
URIs systematic for use in OpenSearch and unAPI contexts. This branch uses
O::U::TagURI and a simple shim inside open-ils.supercat to expose the power
of that backend unAPI functionality.

By way of example, here is the tag URI to look up a copy, by barcode, and
request the call number, bib and bib attributes at the same time.  The
barcode in this example is "ACQ140":

 tag::U2@acp/ACQ140{acn,bre,mra}/-/0/barcode

The full example URL would be something like:

 http://example.com/opac/extras/unapi?id=tag::U2@acp/ACQ140{acn,bre,mra}/-/0/barcode&format=xml

Here is retrieving a bib in MODS 3.2 with holdings embedded:

 tag::U2@bre/267{holdings_xml,acn,acp,mra}

And the URL:

 http://example.com/opac/extras/unapi?tag::U2@bre/267{holdings_xml,acn,acp,mra}&format=mods32

To test:

Try the example URLs, varying record ID, classes, and includes. Some
classes and includes available are:

* bre (bibs)
* acn (volumes)
* acp (copies)
* biblio_record_entry_feed (multiple bibs)
* holdings_xml
* cbs (bib source)
* circ (circulation checkout and due dates)

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agoForgot an acknowledgement in the 2.9.2 point release notes
Kathy Lussier [Wed, 17 Feb 2016 19:43:24 +0000 (14:43 -0500)]
Forgot an acknowledgement in the 2.9.2 point release notes

Sorry Ben!

Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agoAdding 2.9.2 bug fixes and acknowledgements to the 2.9 release notes
Kathy Lussier [Wed, 17 Feb 2016 19:34:18 +0000 (14:34 -0500)]
Adding 2.9.2 bug fixes and acknowledgements to the 2.9 release notes

Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agoAdding 2.8.6 bug fixes to the 2.8 Release Notes
Kathy Lussier [Wed, 17 Feb 2016 18:03:40 +0000 (13:03 -0500)]
Adding 2.8.6 bug fixes to the 2.8 Release Notes

Signed-off-by: Kathy Lussier <klussier@masslnc.org>
9 years agoLP#1544606: Copy the new directories we make for locales
Ben Shum [Wed, 17 Feb 2016 18:39:22 +0000 (13:39 -0500)]
LP#1544606: Copy the new directories we make for locales

Make it cp -r to copy the directories and not just the files (of which
there won't be any by default).

Signed-off-by: Ben Shum <ben@evergreener.net>
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
9 years agoLP#1544606: Change i18n Makefile so that there are different dirs for opac vs webstaff
Ben Shum [Thu, 11 Feb 2016 20:40:05 +0000 (15:40 -0500)]
LP#1544606: Change i18n Makefile so that there are different dirs for opac vs webstaff

In i18n Makefile, we only have a single directory variable TT2_DATA_DIR.

Remove that variable, and add distinct variables for TT2_OPAC_DATA_DIR and
TT2_WEBSTAFF_DATA_DIR that point to more distinct defined areas.

Signed-off-by: Ben Shum <ben@evergreener.net>
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
9 years agoLP#1544606: Change docs to more specific locale/opac location
Ben Shum [Thu, 11 Feb 2016 19:54:49 +0000 (14:54 -0500)]
LP#1544606: Change docs to more specific locale/opac location

Signed-off-by: Ben Shum <ben@evergreener.net>
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
9 years agoLP#1544606: Change apache examples for TPAC to more specific locale/opac location
Ben Shum [Thu, 11 Feb 2016 19:30:57 +0000 (14:30 -0500)]
LP#1544606: Change apache examples for TPAC to more specific locale/opac location

Signed-off-by: Ben Shum <ben@evergreener.net>
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>