[open-ils-commits] [GIT] Evergreen ILS branch rel_2_8 updated. edc882f39620576173a98392ff70ad120ffe46f8
Evergreen Git
git at git.evergreen-ils.org
Mon Jun 15 15:16:18 EDT 2015
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Evergreen ILS".
The branch, rel_2_8 has been updated
via edc882f39620576173a98392ff70ad120ffe46f8 (commit)
via ee2f83b1add627a46d80be6790037f3608ea5288 (commit)
via c258851aa11f67eac7e3b0c8422bacb42f20c63a (commit)
from ca7e68298e823f77e50fcb141249cc16a63bf5b9 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit edc882f39620576173a98392ff70ad120ffe46f8
Author: Mike Rylander <mrylander at gmail.com>
Date: Fri Jun 12 14:29:02 2015 -0400
LP#902255: Use simple alert box
Instead of the generic communication error dialog, we'll use
the simple yns_alert box instead.
Signed-off-by: Mike Rylander <mrylander at gmail.com>
Signed-off-by: Kathy Lussier <klussier at masslnc.org>
Signed-off-by: Jason Stephenson <jstephenson at mvlc.org>
diff --git a/Open-ILS/xul/staff_client/server/circ/util.js b/Open-ILS/xul/staff_client/server/circ/util.js
index 2328f4f..32bfabf 100644
--- a/Open-ILS/xul/staff_client/server/circ/util.js
+++ b/Open-ILS/xul/staff_client/server/circ/util.js
@@ -3609,7 +3609,13 @@ circ.util.checkin_via_barcode2 = function(session,params,backdate,auto_print,che
} else /* UPDATE failed, and async */ if (check.ilsevent == 2001 && async) {
check.what_happened = 'error';
sound.special('checkin.error');
- error.standard_network_error_alert(document.getElementById('circStrings').getString('staff.circ.checkin.possible_dupe_scan'));
+ error.yns_alert(
+ document.getElementById('circStrings').getString('staff.circ.checkin.possible_dupe_scan'),
+ document.getElementById('circStrings').getString('staff.circ.alert'),
+ document.getElementById('circStrings').getString('staff.circ.utils.msg.ok'),
+ null, null,
+ document.getElementById('circStrings').getString('staff.circ.confirm.msg')
+ );
} else {
if (check.ilsevent == null) { return null; /* handled */ }
commit ee2f83b1add627a46d80be6790037f3608ea5288
Author: Mike Rylander <mrylander at gmail.com>
Date: Thu Jun 11 08:49:21 2015 -0400
LP#902255: Correct "ILS Event at check in" logic
In a classic case of "fix a bug to reveal another" it turn out that
there was a small logic bug hiding in the check in hold-capture code.
The result of this bug was that the wrong ILS Event object was being
returned when we ran into the double-scan hold-capture situation by
overwriting the correct one immediately after we construct it, which
in turn prevented the previous commit from working as designed.
We now return the correct ILS Event immediately so that we can
properly detect the situation. Two birds with one branch.
Signed-off-by: Mike Rylander <mrylander at gmail.com>
Signed-off-by: Kathy Lussier <klussier at masslnc.org>
Signed-off-by: Jason Stephenson <jstephenson at mvlc.org>
diff --git a/Open-ILS/src/perlmods/lib/OpenILS/Utils/CStoreEditor.pm b/Open-ILS/src/perlmods/lib/OpenILS/Utils/CStoreEditor.pm
index c289324..d1a935e 100644
--- a/Open-ILS/src/perlmods/lib/OpenILS/Utils/CStoreEditor.pm
+++ b/Open-ILS/src/perlmods/lib/OpenILS/Utils/CStoreEditor.pm
@@ -847,13 +847,13 @@ sub runmethod {
my $evt = OpenILS::Event->new(
'DATABASE_UPDATE_FAILED', payload => $arg, debug => "$err" );
$self->event($evt);
+ return undef;
}
if( $err ) {
$self->event(
OpenILS::Event->new( 'DATABASE_QUERY_FAILED',
payload => $arg, debug => "$err" ));
- return undef;
}
return undef;
commit c258851aa11f67eac7e3b0c8422bacb42f20c63a
Author: Mike Rylander <mrylander at gmail.com>
Date: Mon Jun 8 11:11:04 2015 -0400
LP#902255: Protect against hold double-capture
When the staff client is in Fast Scan (async) mode, it is possible
to double-scan at checkin and cause two holds to be captured by the
same item. By creating a specially crafted unique index we ensure
that the database rejects this situation.
This protection would cause unhandled errors in the staff client, so
we also register a new string to be displayed when this particular
situation occurs, alerting staff to the possible double-scan of a
barcode at checkin IFF they are using async mode.
Signed-off-by: Mike Rylander <mrylander at gmail.com>
Signed-off-by: Kathy Lussier <klussier at masslnc.org>
Signed-off-by: Jason Stephenson <jstephenson at mvlc.org>
diff --git a/Open-ILS/src/sql/Pg/090.schema.action.sql b/Open-ILS/src/sql/Pg/090.schema.action.sql
index 0a1c5bf..ca1e7f3 100644
--- a/Open-ILS/src/sql/Pg/090.schema.action.sql
+++ b/Open-ILS/src/sql/Pg/090.schema.action.sql
@@ -429,6 +429,7 @@ CREATE INDEX hold_request_fulfillment_staff_idx ON action.hold_request ( fulfill
CREATE INDEX hold_request_requestor_idx ON action.hold_request ( requestor );
CREATE INDEX hold_request_open_idx ON action.hold_request (id) WHERE cancel_time IS NULL AND fulfillment_time IS NULL;
CREATE INDEX hold_request_current_copy_before_cap_idx ON action.hold_request (current_copy) WHERE capture_time IS NULL AND cancel_time IS NULL;
+CREATE UNIQUE INDEX hold_request_capture_protect_idx ON action.hold_request (current_copy) WHERE current_copy IS NOT NULL AND capture_time IS NOT NULL AND cancel_time IS NULL AND fulfillment_time IS NULL;
CREATE TABLE action.hold_request_note (
diff --git a/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.disallow-double-capture.sql b/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.disallow-double-capture.sql
new file mode 100644
index 0000000..e644d35
--- /dev/null
+++ b/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.disallow-double-capture.sql
@@ -0,0 +1,13 @@
+BEGIN;
+
+SELECT evergreen.upgrade_deps_block_check('XXXX', :eg_version);
+
+CREATE UNIQUE INDEX CONCURRENTLY
+ hold_request_capture_protect_idx ON action.hold_request (current_copy)
+ WHERE current_copy IS NOT NULL -- sometimes null in old/bad data
+ AND capture_time IS NOT NULL
+ AND cancel_time IS NULL
+ AND fulfillment_time IS NULL;
+
+COMMIT;
+
diff --git a/Open-ILS/xul/staff_client/server/circ/util.js b/Open-ILS/xul/staff_client/server/circ/util.js
index 96eee5b..2328f4f 100644
--- a/Open-ILS/xul/staff_client/server/circ/util.js
+++ b/Open-ILS/xul/staff_client/server/circ/util.js
@@ -2666,7 +2666,7 @@ circ.util.checkin_via_barcode = function(session,params,backdate,auto_print,asyn
JSAN.use('util.error'); var error = new util.error();
try {
var check = req.getResultObject();
- var r = circ.util.checkin_via_barcode2(session,params,backdate,auto_print,check);
+ var r = circ.util.checkin_via_barcode2(session,params,backdate,auto_print,check,async);
try {
error.work_log(
document.getElementById('circStrings').getFormattedString(
@@ -2772,7 +2772,7 @@ circ.util.checkin_via_barcode = function(session,params,backdate,auto_print,asyn
}
};
-circ.util.checkin_via_barcode2 = function(session,params,backdate,auto_print,check) {
+circ.util.checkin_via_barcode2 = function(session,params,backdate,auto_print,check,async) {
try {
JSAN.use('util.error'); var error = new util.error();
JSAN.use('util.network'); var network = new util.network();
@@ -3606,6 +3606,10 @@ circ.util.checkin_via_barcode2 = function(session,params,backdate,auto_print,che
check.what_happened = 'error';
sound.special('checkin.error');
error.standard_network_error_alert(document.getElementById('circStrings').getString('staff.circ.checkin.suggest_offline'));
+ } else /* UPDATE failed, and async */ if (check.ilsevent == 2001 && async) {
+ check.what_happened = 'error';
+ sound.special('checkin.error');
+ error.standard_network_error_alert(document.getElementById('circStrings').getString('staff.circ.checkin.possible_dupe_scan'));
} else {
if (check.ilsevent == null) { return null; /* handled */ }
diff --git a/Open-ILS/xul/staff_client/server/locale/en-US/circ.properties b/Open-ILS/xul/staff_client/server/locale/en-US/circ.properties
index 6a2aea1..415eb97 100644
--- a/Open-ILS/xul/staff_client/server/locale/en-US/circ.properties
+++ b/Open-ILS/xul/staff_client/server/locale/en-US/circ.properties
@@ -450,6 +450,7 @@ staff.circ.checkin.error=Check In Failed (in circ.util.checkin) (%1$s):
# "Circulation" - check &staff.main.menu.circ.label; in lang.dtd
# "Offline Interface" - check &staff.main.menu.circ.offline.label; in lang.dtd
staff.circ.checkin.suggest_offline=Check In Failed. If you wish to use the offline interface, in the top menubar select Circulation -> Offline Interface
+staff.circ.checkin.possible_dupe_scan=Check In May Have Failed. Possible double-scan of the barcode. Use Item Status to confirm Check In and possible Hold capture.
staff.circ.checkin.renew_failed.error=Renew Failed for %1$s
staff.circ.checkin.renew_failed.override=Override Renew Failure?
staff.circ.renew.barcode=Barcode: %1$s
-----------------------------------------------------------------------
Summary of changes:
.../src/perlmods/lib/OpenILS/Utils/CStoreEditor.pm | 2 +-
Open-ILS/src/sql/Pg/090.schema.action.sql | 1 +
.../XXXX.schema.disallow-double-capture.sql | 13 +++++++++++++
Open-ILS/xul/staff_client/server/circ/util.js | 14 ++++++++++++--
.../server/locale/en-US/circ.properties | 1 +
5 files changed, 28 insertions(+), 3 deletions(-)
create mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.schema.disallow-double-capture.sql
hooks/post-receive
--
Evergreen ILS
More information about the open-ils-commits
mailing list