[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