]> git.evergreen-ils.org Git - Evergreen.git/commit
LP#1796945 Reporter cloning and creation fixes
authorDan Wells <dbw2@calvin.edu>
Fri, 3 May 2019 17:17:50 +0000 (13:17 -0400)
committerJason Boyer <jboyer@library.in.gov>
Thu, 22 Aug 2019 18:20:32 +0000 (14:20 -0400)
commitcc444ec0f6a201ccda27d58c56a0bb7e07bd9261
treef4b13749dd9c0e8fc6e38fe9553c7f47cc07bf9d
parent6d683f88c9fb8ac90489c81194be10ed50a9a0a6
LP#1796945 Reporter cloning and creation fixes

This commit addresses a variety of issues with the webstaff reporter
interface, particularly cases of cloning reports created in the XUL
client.

1. The conversion process did not account for manually selected JOIN
operations (aka nullability).  These JOINs are now honored by the
conversion code.

2. The conversion process did not account for aggregate filters.  These
filters are now converted where present.

3. The previous reporter interface attempted to intelligently apply LEFT
and INNER JOINs by default.  The new interface applied INNER joins
exclusively by default, leading in many cases to different results.
This commit reinstates the previous logic.  One side effect of this
change is that the IDL tree itself is no longer opinionated about JOIN
type, and the default JOIN is undefined.

4. The nullability selector has been expanded to allow for manual
selection of INNER joins, as they will longer be the default in some
cases.

5. Cloned-converted reports did not retain column order.  The order is
now preserved.

6. Some templates created in the older interface could, in some cases,
have aggregate values set as the string "undefined" rather than
actually being undefined.  This led to converted templates failing with
"column [xxx] must appear in the GROUP BY clause...", as they were
incorrectly converted as aggregates.  The conversion code now accounts
for this latent bug.

Signed-off-by: Dan Wells <dbw2@calvin.edu>
Signed-off-by: Jason Boyer <jboyer@library.in.gov>
Open-ILS/src/templates/staff/reporter/t_edit_template.tt2
Open-ILS/web/js/ui/default/staff/reporter/template/app.js
Open-ILS/web/js/ui/default/staff/services/idl.js