[open-ils-commits] [GIT] Evergreen ILS branch rel_2_0 updated. 27b7e2688d8020467666af0475570dc1e34795b4

Evergreen Git git at git.evergreen-ils.org
Wed Jun 1 17:56:44 EDT 2011


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_0 has been updated
       via  27b7e2688d8020467666af0475570dc1e34795b4 (commit)
      from  5555f0b95b00bfab70003e625e0c42b609548707 (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 27b7e2688d8020467666af0475570dc1e34795b4
Author: Dan Wells <dbw2 at calvin.edu>
Date:   Wed Jun 1 14:33:59 2011 -0400

    Serial holdings display consistency fix
    
    When holdings are sourced from both MFHD and the DB, display may be
    inconsistent due to a hard-coded ', ' in Serial.pm.  This patch works around
    the problem by storing generated_coverage as a JSON array instead of a string,
    leaving display formatting to the OPAC.
    
    Signed-off-by: Dan Wells <dbw2 at calvin.edu>
    Signed-off-by: Dan Scott <dan at coffeecode.net>

diff --git a/Open-ILS/src/perlmods/OpenILS/Application/Search/Serial.pm b/Open-ILS/src/perlmods/OpenILS/Application/Search/Serial.pm
index 06d2f63..15fb40e 100644
--- a/Open-ILS/src/perlmods/OpenILS/Application/Search/Serial.pm
+++ b/Open-ILS/src/perlmods/OpenILS/Application/Search/Serial.pm
@@ -15,8 +15,6 @@ use OpenSRF::Utils::Logger qw/:logger/;
 
 use Data::Dumper;
 
-use OpenSRF::Utils::JSON;
-
 use Time::HiRes qw(time);
 use OpenSRF::EX qw(:try);
 use Digest::MD5 qw(md5_hex);
@@ -27,8 +25,7 @@ use XML::LibXSLT;
 use OpenILS::Const qw/:const/;
 
 use OpenILS::Application::AppUtils;
-my $apputils = "OpenILS::Application::AppUtils";
-my $U = $apputils;
+my $U = "OpenILS::Application::AppUtils";
 
 my $pfx = "open-ils.search_";
 
@@ -144,7 +141,7 @@ sub bib_to_svr {
         }
         if (ref $_->basic_summary) { #TODO: 'show-generated' boolean on summaries
             if ($_->basic_summary->generated_coverage) {
-                push(@{$svr->basic_holdings}, $_->basic_summary->generated_coverage);
+                push(@{$svr->basic_holdings}, OpenSRF::Utils::JSON->JSON2perl($_->basic_summary->generated_coverage));
             }
             if ($_->basic_summary->textual_holdings) {
                 push(@{$svr->basic_holdings_add}, $_->basic_summary->textual_holdings);
@@ -152,7 +149,7 @@ sub bib_to_svr {
         }
         if (ref $_->supplement_summary) {
             if ($_->supplement_summary->generated_coverage) {
-                push(@{$svr->supplement_holdings}, $_->supplement_summary->generated_coverage);
+                push(@{$svr->supplement_holdings}, OpenSRF::Utils::JSON->JSON2perl($_->supplement_summary->generated_coverage));
             }
             if ($_->supplement_summary->textual_holdings) {
                 push(@{$svr->supplement_holdings_add}, $_->supplement_summary->textual_holdings);
@@ -160,7 +157,7 @@ sub bib_to_svr {
         }
         if (ref $_->index_summary) {
             if ($_->index_summary->generated_coverage) {
-                push(@{$svr->index_holdings}, $_->index_summary->generated_coverage);
+                push(@{$svr->index_holdings}, OpenSRF::Utils::JSON->JSON2perl($_->index_summary->generated_coverage));
             }
             if ($_->index_summary->textual_holdings) {
                 push(@{$svr->index_holdings_add}, $_->index_summary->textual_holdings);
diff --git a/Open-ILS/src/perlmods/OpenILS/Application/Serial.pm b/Open-ILS/src/perlmods/OpenILS/Application/Serial.pm
index 961acf3..cd417b1 100644
--- a/Open-ILS/src/perlmods/OpenILS/Application/Serial.pm
+++ b/Open-ILS/src/perlmods/OpenILS/Application/Serial.pm
@@ -1385,7 +1385,7 @@ sub _prepare_summaries {
         $cu_method = "create";
     }
 
-    $summary->generated_coverage(join(", ", @$formatted_parts));
+    $summary->generated_coverage(OpenSRF::Utils::JSON->perl2JSON($formatted_parts));
     my $method = "${cu_method}_serial_${type}_summary";
     return $e->die_event unless $e->$method($summary);
 }
diff --git a/Open-ILS/src/sql/Pg/002.schema.config.sql b/Open-ILS/src/sql/Pg/002.schema.config.sql
index a3e0738..e9c602a 100644
--- a/Open-ILS/src/sql/Pg/002.schema.config.sql
+++ b/Open-ILS/src/sql/Pg/002.schema.config.sql
@@ -57,7 +57,7 @@ CREATE TABLE config.upgrade_log (
     install_date    TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW()
 );
 
-INSERT INTO config.upgrade_log (version) VALUES ('0541'); -- dbwells
+INSERT INTO config.upgrade_log (version) VALUES ('0543'); -- dbwells
 
 CREATE TABLE config.bib_source (
 	id		SERIAL	PRIMARY KEY,
diff --git a/Open-ILS/src/sql/Pg/upgrade/0543.data.reformat_generated_coverage.sql b/Open-ILS/src/sql/Pg/upgrade/0543.data.reformat_generated_coverage.sql
new file mode 100644
index 0000000..d3efa84
--- /dev/null
+++ b/Open-ILS/src/sql/Pg/upgrade/0543.data.reformat_generated_coverage.sql
@@ -0,0 +1,18 @@
+BEGIN;
+
+-- Reformat generated_coverage to be JSON arrays rather than simple comma-
+-- separated lists.
+
+-- This upgrade script is technically imperfect, but should do the right thing
+-- in 99.9% of cases, and any mistakes will be self-healing as more serials
+-- activity happens
+
+INSERT INTO config.upgrade_log (version) VALUES ('0543'); -- dbwells
+
+UPDATE serial.basic_summary SET generated_coverage = '["' || regexp_replace(regexp_replace(generated_coverage, '"', E'\\"', 'g'), ', ', '","', 'g') || '"]' WHERE generated_coverage <> '';
+
+UPDATE serial.supplement_summary SET generated_coverage = '["' || regexp_replace(regexp_replace(generated_coverage, '"', E'\\"', 'g'), ', ', '","', 'g') || '"]' WHERE generated_coverage <> '';
+
+UPDATE serial.index_summary SET generated_coverage = '["' || regexp_replace(regexp_replace(generated_coverage, '"', E'\\"', 'g'), ', ', '","', 'g') || '"]' WHERE generated_coverage <> '';
+
+COMMIT;

-----------------------------------------------------------------------

Summary of changes:
 .../perlmods/OpenILS/Application/Search/Serial.pm  |   11 ++++-------
 .../src/perlmods/OpenILS/Application/Serial.pm     |    2 +-
 Open-ILS/src/sql/Pg/002.schema.config.sql          |    2 +-
 .../0543.data.reformat_generated_coverage.sql      |   18 ++++++++++++++++++
 4 files changed, 24 insertions(+), 9 deletions(-)
 create mode 100644 Open-ILS/src/sql/Pg/upgrade/0543.data.reformat_generated_coverage.sql


hooks/post-receive
-- 
Evergreen ILS


More information about the open-ils-commits mailing list