From: Rogan Hamby Date: Mon, 29 Jun 2020 15:25:10 +0000 (-0400) Subject: in progress branch to support deleting prefixes and suffixes X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=refs%2Fheads%2Fuser%2Frogan%2Flp1713120_delete_acn_presufs;p=working%2FEvergreen.git in progress branch to support deleting prefixes and suffixes --- diff --git a/Open-ILS/examples/fm_IDL.xml b/Open-ILS/examples/fm_IDL.xml index 560d372eab..2122f64cc9 100644 --- a/Open-ILS/examples/fm_IDL.xml +++ b/Open-ILS/examples/fm_IDL.xml @@ -3064,6 +3064,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + @@ -3083,6 +3084,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + diff --git a/Open-ILS/src/extras/ils_events.xml b/Open-ILS/src/extras/ils_events.xml index cc0d3f846b..2fdf502f44 100644 --- a/Open-ILS/src/extras/ils_events.xml +++ b/Open-ILS/src/extras/ils_events.xml @@ -704,9 +704,15 @@ The requested permission_grp_penalty_threshold was not found - - The selected bib record has an open lineitem order referencing it. - + + The selected bib record has an open lineitem order referencing it. + + + One or more call number prefixes selected for deletion are still in use by non-deleted call numbers. + + + One or more call number suffixes selected for deletion are still in use by non-deleted call numers. + The non-cataloged type object already exists diff --git a/Open-ILS/src/sql/Pg/040.schema.asset.sql b/Open-ILS/src/sql/Pg/040.schema.asset.sql index 198632a617..5ef9bb6b6c 100644 --- a/Open-ILS/src/sql/Pg/040.schema.asset.sql +++ b/Open-ILS/src/sql/Pg/040.schema.asset.sql @@ -438,9 +438,11 @@ CREATE TABLE asset.call_number_prefix ( id SERIAL PRIMARY KEY, owning_lib INT NOT NULL REFERENCES actor.org_unit (id), label TEXT NOT NULL, -- i18n - label_sortkey TEXT + label_sortkey TEXT, + deleted BOOLEAN DEFAULT FALSE ); CREATE TRIGGER prefix_normalize_tgr BEFORE INSERT OR UPDATE ON asset.call_number_prefix FOR EACH ROW EXECUTE PROCEDURE asset.normalize_affix_sortkey(); +CREATE RULE protect_acn_prefix_delete AS ON DELETE TO asset.call_number_prefix DO INSTEAD UPDATE asset.call_number_prefix SET deleted = TRUE WHERE OLD.id = asset.call_number_prefix.id; CREATE UNIQUE INDEX asset_call_number_prefix_once_per_lib ON asset.call_number_prefix (label, owning_lib); CREATE INDEX asset_call_number_prefix_sortkey_idx ON asset.call_number_prefix (label_sortkey); @@ -448,9 +450,11 @@ CREATE TABLE asset.call_number_suffix ( id SERIAL PRIMARY KEY, owning_lib INT NOT NULL REFERENCES actor.org_unit (id), label TEXT NOT NULL, -- i18n - label_sortkey TEXT + label_sortkey TEXT, + deleted BOOLEAN DEFAULT FALSE ); CREATE TRIGGER suffix_normalize_tgr BEFORE INSERT OR UPDATE ON asset.call_number_suffix FOR EACH ROW EXECUTE PROCEDURE asset.normalize_affix_sortkey(); +CREATE RULE protect_acn_suffix_delete AS ON DELETE TO asset.call_number_suffix DO INSTEAD UPDATE asset.call_number_suffix SET deleted = TRUE WHERE OLD.id = asset.call_number_suffix.id; CREATE UNIQUE INDEX asset_call_number_suffix_once_per_lib ON asset.call_number_suffix (label, owning_lib); CREATE INDEX asset_call_number_suffix_sortkey_idx ON asset.call_number_suffix (label_sortkey); diff --git a/Open-ILS/src/sql/Pg/upgrade/xxxx.schema.add_deleted_to_acn_prefix_suffix.sql b/Open-ILS/src/sql/Pg/upgrade/xxxx.schema.add_deleted_to_acn_prefix_suffix.sql new file mode 100644 index 0000000000..3edeedcf43 --- /dev/null +++ b/Open-ILS/src/sql/Pg/upgrade/xxxx.schema.add_deleted_to_acn_prefix_suffix.sql @@ -0,0 +1,11 @@ +BEGIN; + +SELECT evergreen.upgrade_deps_block_check('xxxx', :eg_version); + +ALTER TABLE asset.call_number_suffix ADD COLUMN deleted BOOLEAN DEFAULT FALSE; +ALTER TABLE asset.call_number_prefix ADD COLUMN deleted BOOLEAN DEFAULT FALSE; + +CREATE RULE protect_acn_suffix_delete AS ON DELETE TO asset.call_number_suffix DO INSTEAD UPDATE asset.call_number_suffix SET deleted = TRUE WHERE OLD.id = asset.call_number_suffix.id; +CREATE RULE protect_acn_prefix_delete AS ON DELETE TO asset.call_number_prefix DO INSTEAD UPDATE asset.call_number_prefix SET deleted = TRUE WHERE OLD.id = asset.call_number_prefix.id; + +COMMIT; diff --git a/Open-ILS/src/templates/conify/global/config/acn_prefix.tt2 b/Open-ILS/src/templates/conify/global/config/acn_prefix.tt2 index 2e51fbea78..621f8d787a 100644 --- a/Open-ILS/src/templates/conify/global/config/acn_prefix.tt2 +++ b/Open-ILS/src/templates/conify/global/config/acn_prefix.tt2 @@ -19,7 +19,7 @@