From d2ef1684cc4b71bc7714edb7a5dfdac19739fabc Mon Sep 17 00:00:00 2001 From: Ben Shum Date: Mon, 22 Jul 2013 15:10:37 -0400 Subject: [PATCH] LP1204273 - Repair org unit settings for making state not required As noted by tsbere in IRC, the org unit settings were using "au" instead of "aua" which led to issues applying the settings and making the addresses require the state field. Also, change the constraint for field_name on actor.org_unit_setting_type_log to be "DEFERRABLE INITIALLY DEFERRED" to be more flexible and consistent with other parts of the database relating to org unit setting names. And, the table auditor.actor_usr_address_history needs to be updated so that state can be NULL there as well. Signed-off-by: Ben Shum Signed-off-by: Jason Stephenson --- Open-ILS/src/sql/Pg/002.schema.config.sql | 2 +- Open-ILS/src/sql/Pg/950.data.seed-values.sql | 18 ++++++------ .../XXXX.data.state-field-settings-fix.sql | 29 +++++++++++++++++++ .../web/js/ui/default/actor/user/register.js | 6 ++-- 4 files changed, 42 insertions(+), 13 deletions(-) create mode 100644 Open-ILS/src/sql/Pg/upgrade/XXXX.data.state-field-settings-fix.sql diff --git a/Open-ILS/src/sql/Pg/002.schema.config.sql b/Open-ILS/src/sql/Pg/002.schema.config.sql index 5d938ab57e..8e8968ff71 100644 --- a/Open-ILS/src/sql/Pg/002.schema.config.sql +++ b/Open-ILS/src/sql/Pg/002.schema.config.sql @@ -939,7 +939,7 @@ CREATE TABLE config.org_unit_setting_type_log ( org INT, --REFERENCES actor.org_unit (id), original_value TEXT, new_value TEXT, - field_name TEXT REFERENCES config.org_unit_setting_type (name) + field_name TEXT REFERENCES config.org_unit_setting_type (name) DEFERRABLE INITIALLY DEFERRED ); COMMENT ON TABLE config.org_unit_setting_type_log IS $$ diff --git a/Open-ILS/src/sql/Pg/950.data.seed-values.sql b/Open-ILS/src/sql/Pg/950.data.seed-values.sql index fb3b637c3d..89fb7c3a3a 100644 --- a/Open-ILS/src/sql/Pg/950.data.seed-values.sql +++ b/Open-ILS/src/sql/Pg/950.data.seed-values.sql @@ -4593,29 +4593,29 @@ INSERT into config.org_unit_setting_type 'coust', 'description'), 'bool', null) -,( 'ui.patron.edit.au.state.require', 'gui', - oils_i18n_gettext('ui.patron.edit.au.state.require', +,( 'ui.patron.edit.aua.state.require', 'gui', + oils_i18n_gettext('ui.patron.edit.aua.state.require', 'Require State field on patron registration', 'coust', 'label'), - oils_i18n_gettext('ui.patron.edit.au.state.require', + oils_i18n_gettext('ui.patron.edit.aua.state.require', 'The State field will be required on the patron registration screen.', 'coust', 'description'), 'bool', null) -,( 'ui.patron.edit.au.state.show', 'gui', - oils_i18n_gettext('ui.patron.edit.au.state.show', +,( 'ui.patron.edit.aua.state.show', 'gui', + oils_i18n_gettext('ui.patron.edit.aua.state.show', 'Show State field on patron registration', 'coust', 'label'), - oils_i18n_gettext('ui.patron.edit.au.state.show', + oils_i18n_gettext('ui.patron.edit.aua.state.show', 'The State field will be shown on the patron registration screen. Showing a field makes it appear with required fields even when not required. If the field is required this setting is ignored.', 'coust', 'description'), 'bool', null) -,( 'ui.patron.edit.au.state.suggest', 'gui', - oils_i18n_gettext('ui.patron.edit.au.state.suggest', +,( 'ui.patron.edit.aua.state.suggest', 'gui', + oils_i18n_gettext('ui.patron.edit.aua.state.suggest', 'Suggest State field on patron registration', 'coust', 'label'), - oils_i18n_gettext('ui.patron.edit.au.state.suggest', + oils_i18n_gettext('ui.patron.edit.aua.state.suggest', 'The State field will be suggested on the patron registration screen. Suggesting a field makes it appear when suggested fields are shown. If the field is shown or required this setting is ignored.', 'coust', 'description'), 'bool', null) diff --git a/Open-ILS/src/sql/Pg/upgrade/XXXX.data.state-field-settings-fix.sql b/Open-ILS/src/sql/Pg/upgrade/XXXX.data.state-field-settings-fix.sql new file mode 100644 index 0000000000..f4fd4f6a4f --- /dev/null +++ b/Open-ILS/src/sql/Pg/upgrade/XXXX.data.state-field-settings-fix.sql @@ -0,0 +1,29 @@ +BEGIN; + +-- SELECT evergreen.upgrade_deps_block_check('XXXX', :eg_version); + +-- Don't require state in the auditor tracking for user addresses + +ALTER TABLE auditor.actor_usr_address_history ALTER COLUMN state DROP NOT NULL; + +-- Change constraint on actor.org_unit_setting_log to be deferrable initially + +ALTER TABLE config.org_unit_setting_type_log + DROP CONSTRAINT org_unit_setting_type_log_field_name_fkey, + ADD CONSTRAINT org_unit_setting_type_log_field_name_fkey FOREIGN KEY (field_name) + REFERENCES config.org_unit_setting_type (name) MATCH SIMPLE + ON UPDATE NO ACTION ON DELETE NO ACTION DEFERRABLE INITIALLY DEFERRED; + +-- Fix names in the org unit setting configuration + +UPDATE config.org_unit_setting_type SET name = overlay(name placing 'aua' from 16 for 2) where name like 'ui.patron.edit.au.state.%'; + +-- Fix names if they have already been set in the editor + +UPDATE actor.org_unit_setting SET name = overlay(name placing 'aua' from 16 for 2) where name like 'ui.patron.edit.au.state.%'; + +-- and the logs too + +UPDATE config.org_unit_setting_type_log SET field_name = overlay(field_name placing 'aua' from 16 for 2) where field_name like 'ui.patron.edit.au.state.%'; + +COMMIT; diff --git a/Open-ILS/web/js/ui/default/actor/user/register.js b/Open-ILS/web/js/ui/default/actor/user/register.js index e70d867e9e..32330a39ef 100644 --- a/Open-ILS/web/js/ui/default/actor/user/register.js +++ b/Open-ILS/web/js/ui/default/actor/user/register.js @@ -191,9 +191,9 @@ function load() { 'opac.barcode_regex', 'opac.username_regex', 'sms.enable', - 'ui.patron.edit.au.state.require', - 'ui.patron.edit.au.state.suggest', - 'ui.patron.edit.au.state.show' + 'ui.patron.edit.aua.state.require', + 'ui.patron.edit.aua.state.suggest', + 'ui.patron.edit.aua.state.show' ]); for(k in orgSettings) -- 2.43.2