From b8fd484b3fd1f49d01e8556951a23eda6a49ee76 Mon Sep 17 00:00:00 2001 From: Lebbeous Fogle-Weekley Date: Tue, 10 Jan 2012 12:59:57 -0500 Subject: [PATCH] Add a "staff_alert" column to config.standing_penalty, and ... ... consult this when deciding whether to show the stop sign page in the patron interface of the staff client, rather than explicitly checking for the id of the ALERT_NOTE config.standing_penalty. Now only show the standing penalty if the staff_alert value is true, instead of unconditionally showing it for all penalties with a block_list value. This allows staff to configure blocking penalties that do not alert. Signed-off-by: Bill Erickson Signed-off-by: Lebbeous Fogle-Weekley --- Open-ILS/examples/fm_IDL.xml | 1 + Open-ILS/src/sql/Pg/002.schema.config.sql | 35 +++++++++++----------- .../Pg/upgrade/0667.schema.alerting-penalties.sql | 12 ++++++++ Open-ILS/xul/staff_client/server/patron/display.js | 2 +- 4 files changed, 32 insertions(+), 18 deletions(-) create mode 100644 Open-ILS/src/sql/Pg/upgrade/0667.schema.alerting-penalties.sql diff --git a/Open-ILS/examples/fm_IDL.xml b/Open-ILS/examples/fm_IDL.xml index e9c6f1a310..8c481ec5ed 100644 --- a/Open-ILS/examples/fm_IDL.xml +++ b/Open-ILS/examples/fm_IDL.xml @@ -2962,6 +2962,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + diff --git a/Open-ILS/src/sql/Pg/002.schema.config.sql b/Open-ILS/src/sql/Pg/002.schema.config.sql index 542d0ada5f..eaf5c15632 100644 --- a/Open-ILS/src/sql/Pg/002.schema.config.sql +++ b/Open-ILS/src/sql/Pg/002.schema.config.sql @@ -86,7 +86,7 @@ CREATE TRIGGER no_overlapping_deps BEFORE INSERT OR UPDATE ON config.db_patch_dependencies FOR EACH ROW EXECUTE PROCEDURE evergreen.array_overlap_check ('deprecates'); -INSERT INTO config.upgrade_log (version, applied_to) VALUES ('0666', :eg_version); -- phasefx/miker +INSERT INTO config.upgrade_log (version, applied_to) VALUES ('0667', :eg_version); -- senator/berick CREATE TABLE config.bib_source ( id SERIAL PRIMARY KEY, @@ -122,26 +122,27 @@ CREATE TABLE config.standing_penalty ( name TEXT NOT NULL UNIQUE, label TEXT NOT NULL, block_list TEXT, + staff_alert BOOL NOT NULL DEFAULT FALSE, org_depth INTEGER ); -INSERT INTO config.standing_penalty (id,name,label,block_list) - VALUES (1,'PATRON_EXCEEDS_FINES','Patron exceeds fine threshold','CIRC|HOLD|RENEW'); -INSERT INTO config.standing_penalty (id,name,label,block_list) - VALUES (2,'PATRON_EXCEEDS_OVERDUE_COUNT','Patron exceeds max overdue item threshold','CIRC|HOLD|RENEW'); -INSERT INTO config.standing_penalty (id,name,label,block_list) - VALUES (3,'PATRON_EXCEEDS_CHECKOUT_COUNT','Patron exceeds max checked out item threshold','CIRC'); -INSERT INTO config.standing_penalty (id,name,label,block_list) - VALUES (4,'PATRON_EXCEEDS_COLLECTIONS_WARNING','Patron exceeds pre-collections warning fine threshold','CIRC|HOLD|RENEW'); +INSERT INTO config.standing_penalty (id,name,label,block_list,staff_alert) + VALUES (1,'PATRON_EXCEEDS_FINES','Patron exceeds fine threshold','CIRC|HOLD|RENEW', TRUE); +INSERT INTO config.standing_penalty (id,name,label,block_list,staff_alert) + VALUES (2,'PATRON_EXCEEDS_OVERDUE_COUNT','Patron exceeds max overdue item threshold','CIRC|HOLD|RENEW', TRUE); +INSERT INTO config.standing_penalty (id,name,label,block_list,staff_alert) + VALUES (3,'PATRON_EXCEEDS_CHECKOUT_COUNT','Patron exceeds max checked out item threshold','CIRC', TRUE); +INSERT INTO config.standing_penalty (id,name,label,block_list,staff_alert) + VALUES (4,'PATRON_EXCEEDS_COLLECTIONS_WARNING','Patron exceeds pre-collections warning fine threshold','CIRC|HOLD|RENEW', TRUE); -INSERT INTO config.standing_penalty (id,name,label) VALUES (20,'ALERT_NOTE','Alerting Note, no blocks'); +INSERT INTO config.standing_penalty (id,name,label,staff_alert) VALUES (20,'ALERT_NOTE','Alerting Note, no blocks',TRUE); INSERT INTO config.standing_penalty (id,name,label) VALUES (21,'SILENT_NOTE','Note, no blocks'); -INSERT INTO config.standing_penalty (id,name,label,block_list) VALUES (22,'STAFF_C','Alerting block on Circ','CIRC'); -INSERT INTO config.standing_penalty (id,name,label,block_list) VALUES (23,'STAFF_CH','Alerting block on Circ and Hold','CIRC|HOLD'); -INSERT INTO config.standing_penalty (id,name,label,block_list) VALUES (24,'STAFF_CR','Alerting block on Circ and Renew','CIRC|RENEW'); -INSERT INTO config.standing_penalty (id,name,label,block_list) VALUES (25,'STAFF_CHR','Alerting block on Circ, Hold and Renew','CIRC|HOLD|RENEW'); -INSERT INTO config.standing_penalty (id,name,label,block_list) VALUES (26,'STAFF_HR','Alerting block on Hold and Renew','HOLD|RENEW'); -INSERT INTO config.standing_penalty (id,name,label,block_list) VALUES (27,'STAFF_H','Alerting block on Hold','HOLD'); -INSERT INTO config.standing_penalty (id,name,label,block_list) VALUES (28,'STAFF_R','Alerting block on Renew','RENEW'); +INSERT INTO config.standing_penalty (id,name,label,block_list,staff_alert) VALUES (22,'STAFF_C','Alerting block on Circ','CIRC'); +INSERT INTO config.standing_penalty (id,name,label,block_list,staff_alert) VALUES (23,'STAFF_CH','Alerting block on Circ and Hold','CIRC|HOLD', TRUE); +INSERT INTO config.standing_penalty (id,name,label,block_list,staff_alert) VALUES (24,'STAFF_CR','Alerting block on Circ and Renew','CIRC|RENEW', TRUE); +INSERT INTO config.standing_penalty (id,name,label,block_list,staff_alert) VALUES (25,'STAFF_CHR','Alerting block on Circ, Hold and Renew','CIRC|HOLD|RENEW', TRUE); +INSERT INTO config.standing_penalty (id,name,label,block_list,staff_alert) VALUES (26,'STAFF_HR','Alerting block on Hold and Renew','HOLD|RENEW', TRUE); +INSERT INTO config.standing_penalty (id,name,label,block_list,staff_alert) VALUES (27,'STAFF_H','Alerting block on Hold','HOLD', TRUE); +INSERT INTO config.standing_penalty (id,name,label,block_list,staff_alert) VALUES (28,'STAFF_R','Alerting block on Renew','RENEW', TRUE); INSERT INTO config.standing_penalty (id,name,label) VALUES (29,'INVALID_PATRON_ADDRESS','Patron has an invalid address'); INSERT INTO config.standing_penalty (id,name,label) VALUES (30,'PATRON_IN_COLLECTIONS','Patron has been referred to a collections agency'); diff --git a/Open-ILS/src/sql/Pg/upgrade/0667.schema.alerting-penalties.sql b/Open-ILS/src/sql/Pg/upgrade/0667.schema.alerting-penalties.sql new file mode 100644 index 0000000000..7a96137651 --- /dev/null +++ b/Open-ILS/src/sql/Pg/upgrade/0667.schema.alerting-penalties.sql @@ -0,0 +1,12 @@ +BEGIN; + +SELECT evergreen.upgrade_deps_block_check('0667', :eg_version); + +ALTER TABLE config.standing_penalty ADD staff_alert BOOL NOT NULL DEFAULT FALSE; + +-- 20 is ALERT_NOTE +-- for backwards compat, set all blocking penalties to alerts +UPDATE config.standing_penalty SET staff_alert = TRUE + WHERE id = 20 OR block_list IS NOT NULL; + +COMMIT; diff --git a/Open-ILS/xul/staff_client/server/patron/display.js b/Open-ILS/xul/staff_client/server/patron/display.js index 1eec41fb5f..2e17b8bb1b 100644 --- a/Open-ILS/xul/staff_client/server/patron/display.js +++ b/Open-ILS/xul/staff_client/server/patron/display.js @@ -963,7 +963,7 @@ patron.display.prototype = { if (!penalties) { penalties = []; } var dl_flag_opened = false; for (var i = 0; i < penalties.length; i++) { - if (penalties[i].standing_penalty().block_list() || penalties[i].standing_penalty().id() == 20 /* ALERT_NOTE */) { + if (get_bool(penalties[i].standing_penalty().staff_alert())) { if (!dl_flag_opened) { msg += '
'; dl_flag_opened = true; -- 2.11.0