From: Lebbeous Fogle-Weekley Date: Tue, 6 Mar 2012 17:42:05 +0000 (-0500) Subject: upgrade script finished with all ou settings and flags and whatnot X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=be68b9294f12dc3d2b86fe7ee623d08248e3ac5b;p=evergreen%2Fequinox.git upgrade script finished with all ou settings and flags and whatnot Signed-off-by: Lebbeous Fogle-Weekley --- diff --git a/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.serial-holding-groups.sql b/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.serial-holding-groups.sql index 76d6ea61fc..5aaf1fe06e 100644 --- a/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.serial-holding-groups.sql +++ b/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.serial-holding-groups.sql @@ -2,6 +2,20 @@ BEGIN; SELECT evergreen.upgrade_deps_block_check('XXXX', :eg_version); +INSERT INTO config.internal_flag (name, value, enabled) VALUES ( + 'serial.rematerialize_on_same_holding_code', NULL, FALSE +); + +INSERT INTO config.org_unit_setting_type ( + name, label, grp, description, datatype +) VALUES ( + 'serial.default_display_grouping', + 'Default display grouping for serials distributions presented in the OPAC.', + 'serial', + 'Default display grouping for serials distributions presented in the OPAC. This can be "enum" or "chron".', + 'string' +); + ALTER TABLE serial.distribution ADD COLUMN display_grouping TEXT NOT NULL DEFAULT 'chron' CHECK (display_grouping IN ('enum', 'chron')); @@ -70,12 +84,19 @@ use strict; use MARC::Field; use JSON::XS; -# Do nothing if holding_code has not changed. -# XXX may need to add a global flag that acts like 'ingest.reingest.force_on_same_marc' +# Do nothing if holding_code has not changed... + if ($_TD->{new}{holding_code} eq $_TD->{old}{holding_code}) { - return; + # ... unless the following internal flag is set. + + my $flag_rv = spi_exec_query(q{ + SELECT * FROM config.internal_flag + WHERE name = 'serial.rematerialize_on_same_holding_code' AND enabled + }, 1); + return unless $flag_rv->{processed}; } + my $holding_code = (new JSON::XS)->decode($_TD->{new}{holding_code}); my $field = new MARC::Field('999', @$holding_code); # tag doesnt matter @@ -113,13 +134,22 @@ $func$ LANGUAGE 'plperlu'; CREATE INDEX assist_holdings_display ON serial.materialized_holding_code (issuance, subfield); --- XXX add more indices to assist with other joins new to Serial.pm - CREATE TRIGGER materialize_holding_code AFTER INSERT OR UPDATE ON serial.issuance FOR EACH ROW EXECUTE PROCEDURE serial.materialize_holding_code() ; --- XXX need to materialize_holding_code() for all existing rows in serial.issuance --- at time of upgrde script execution as well. +-- starting here, we materialize all existing holding codes. + +UPDATE config.internal_flag + SET enabled = TRUE + WHERE name = 'serial.rematerialize_on_same_holding_code'; + +UPDATE serial.issuance SET holding_code = holding_code; + +UPDATE config.internal_flag + SET enabled = FALSE + WHERE name = 'serial.rematerialize_on_same_holding_code'; + +-- finish holding code materialization process COMMIT; diff --git a/Open-ILS/src/templates/serial/subscription.tt2 b/Open-ILS/src/templates/serial/subscription.tt2 index 8cb93b5db9..eb432530be 100644 --- a/Open-ILS/src/templates/serial/subscription.tt2 +++ b/Open-ILS/src/templates/serial/subscription.tt2 @@ -88,6 +88,17 @@ } }); + var settings = fieldmapper.aou.fetchOrgSettingBatch( + openils.User.user.ws_ou(), + ["serial.default_display_grouping"] + ); + var default_display_grouping = "chron"; + + if (settings && settings["serial.default_display_grouping"]) { + default_display_grouping = + settings["serial.default_display_grouping"].value; + } + dist_grid.overrideEditWidgets.display_grouping = new dijit.form.FilteringSelect({ "store": _display_grouping_store, @@ -95,7 +106,7 @@ "name": "display_grouping" }); dist_grid.overrideEditWidgets.display_grouping.shove = { - "create": "chron" /* XXX get default from OU setting?*/ + "create": default_display_grouping }; }