From: miker Date: Thu, 21 Jan 2010 16:46:59 +0000 (+0000) Subject: backporting 15353 and 15354 from Dan Wells for vandelay fixing goodness X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=1f85d6caf05eab649365254bdf98b6756e0a266d;p=working%2FEvergreen.git backporting 15353 and 15354 from Dan Wells for vandelay fixing goodness git-svn-id: svn://svn.open-ils.org/ILS/branches/rel_1_6@15355 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- diff --git a/Open-ILS/examples/fm_IDL.xml b/Open-ILS/examples/fm_IDL.xml index 0a96b069a6..e394e21c79 100644 --- a/Open-ILS/examples/fm_IDL.xml +++ b/Open-ILS/examples/fm_IDL.xml @@ -133,7 +133,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA - + @@ -227,9 +227,11 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + + diff --git a/Open-ILS/src/perlmods/OpenILS/Application/Vandelay.pm b/Open-ILS/src/perlmods/OpenILS/Application/Vandelay.pm index 8c0f974f7c..644bf11c7d 100644 --- a/Open-ILS/src/perlmods/OpenILS/Application/Vandelay.pm +++ b/Open-ILS/src/perlmods/OpenILS/Application/Vandelay.pm @@ -36,6 +36,7 @@ sub create_bib_queue { my $name = shift; my $owner = shift; my $type = shift; + my $import_def = shift; my $e = new_editor(authtoken => $auth, xact => 1); @@ -51,6 +52,7 @@ sub create_bib_queue { $queue->name( $name ); $queue->owner( $owner ); $queue->queue_type( $type ) if ($type); + $queue->item_attr_def( $import_def ) if ($import_def); my $new_q = $e->create_vandelay_bib_queue( $queue ); return $e->die_event unless ($new_q); @@ -62,7 +64,7 @@ __PACKAGE__->register_method( api_name => "open-ils.vandelay.bib_queue.create", method => "create_bib_queue", api_level => 1, - argc => 3, + argc => 4, ); diff --git a/Open-ILS/src/sql/Pg/002.schema.config.sql b/Open-ILS/src/sql/Pg/002.schema.config.sql index 1033b6b404..3df652ccae 100644 --- a/Open-ILS/src/sql/Pg/002.schema.config.sql +++ b/Open-ILS/src/sql/Pg/002.schema.config.sql @@ -51,7 +51,7 @@ CREATE TABLE config.upgrade_log ( install_date TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW() ); -INSERT INTO config.upgrade_log (version) VALUES ('0130'); -- senator +INSERT INTO config.upgrade_log (version) VALUES ('0139'); -- Dan Wells via miker CREATE TABLE config.bib_source ( id SERIAL PRIMARY KEY, diff --git a/Open-ILS/src/sql/Pg/012.schema.vandelay.sql b/Open-ILS/src/sql/Pg/012.schema.vandelay.sql index 47f5545422..e1083fc972 100644 --- a/Open-ILS/src/sql/Pg/012.schema.vandelay.sql +++ b/Open-ILS/src/sql/Pg/012.schema.vandelay.sql @@ -432,61 +432,58 @@ $$ LANGUAGE PLPGSQL; CREATE OR REPLACE FUNCTION vandelay.ingest_bib_items ( ) RETURNS TRIGGER AS $func$ DECLARE - queue_rec RECORD; - item_rule RECORD; + attr_def BIGINT; item_data vandelay.import_item%ROWTYPE; BEGIN - SELECT * INTO queue_rec FROM vandelay.bib_queue WHERE id = NEW.queue; - - FOR item_rule IN SELECT r.* FROM actor.org_unit_ancestors( queue_rec.owner ) o JOIN vandelay.import_item_attr_definition r ON ( r.owner = o.id ) LOOP - FOR item_data IN SELECT * FROM vandelay.ingest_items( NEW.id::BIGINT, item_rule.id::BIGINT ) LOOP - INSERT INTO vandelay.import_item ( - record, - definition, - owning_lib, - circ_lib, - call_number, - copy_number, - status, - location, - circulate, - deposit, - deposit_amount, - ref, - holdable, - price, - barcode, - circ_modifier, - circ_as_type, - alert_message, - pub_note, - priv_note, - opac_visible - ) VALUES ( - NEW.id, - item_data.definition, - item_data.owning_lib, - item_data.circ_lib, - item_data.call_number, - item_data.copy_number, - item_data.status, - item_data.location, - item_data.circulate, - item_data.deposit, - item_data.deposit_amount, - item_data.ref, - item_data.holdable, - item_data.price, - item_data.barcode, - item_data.circ_modifier, - item_data.circ_as_type, - item_data.alert_message, - item_data.pub_note, - item_data.priv_note, - item_data.opac_visible - ); - END LOOP; + SELECT item_attr_def INTO attr_def FROM vandelay.bib_queue WHERE id = NEW.queue; + + FOR item_data IN SELECT * FROM vandelay.ingest_items( NEW.id::BIGINT, attr_def ) LOOP + INSERT INTO vandelay.import_item ( + record, + definition, + owning_lib, + circ_lib, + call_number, + copy_number, + status, + location, + circulate, + deposit, + deposit_amount, + ref, + holdable, + price, + barcode, + circ_modifier, + circ_as_type, + alert_message, + pub_note, + priv_note, + opac_visible + ) VALUES ( + NEW.id, + item_data.definition, + item_data.owning_lib, + item_data.circ_lib, + item_data.call_number, + item_data.copy_number, + item_data.status, + item_data.location, + item_data.circulate, + item_data.deposit, + item_data.deposit_amount, + item_data.ref, + item_data.holdable, + item_data.price, + item_data.barcode, + item_data.circ_modifier, + item_data.circ_as_type, + item_data.alert_message, + item_data.pub_note, + item_data.priv_note, + item_data.opac_visible + ); END LOOP; RETURN NULL; diff --git a/Open-ILS/src/sql/Pg/upgrade/0139.schema.vandelay-item-import-fix.sql b/Open-ILS/src/sql/Pg/upgrade/0139.schema.vandelay-item-import-fix.sql new file mode 100644 index 0000000000..15cae107b6 --- /dev/null +++ b/Open-ILS/src/sql/Pg/upgrade/0139.schema.vandelay-item-import-fix.sql @@ -0,0 +1,66 @@ + +BEGIN; + +INSERT INTO config.upgrade_log (version) VALUES ('0139'); -- Dan Wells via miker + +CREATE OR REPLACE FUNCTION vandelay.ingest_bib_items ( ) RETURNS TRIGGER AS $func$ +DECLARE + attr_def BIGINT; + item_data vandelay.import_item%ROWTYPE; +BEGIN + + SELECT item_attr_def INTO attr_def FROM vandelay.bib_queue WHERE id = NEW.queue; + + FOR item_data IN SELECT * FROM vandelay.ingest_items( NEW.id::BIGINT, attr_def ) LOOP + INSERT INTO vandelay.import_item ( + record, + definition, + owning_lib, + circ_lib, + call_number, + copy_number, + status, + location, + circulate, + deposit, + deposit_amount, + ref, + holdable, + price, + barcode, + circ_modifier, + circ_as_type, + alert_message, + pub_note, + priv_note, + opac_visible + ) VALUES ( + NEW.id, + item_data.definition, + item_data.owning_lib, + item_data.circ_lib, + item_data.call_number, + item_data.copy_number, + item_data.status, + item_data.location, + item_data.circulate, + item_data.deposit, + item_data.deposit_amount, + item_data.ref, + item_data.holdable, + item_data.price, + item_data.barcode, + item_data.circ_modifier, + item_data.circ_as_type, + item_data.alert_message, + item_data.pub_note, + item_data.priv_note, + item_data.opac_visible + ); + END LOOP; + + RETURN NULL; +END; +$func$ LANGUAGE PLPGSQL; + +COMMIT; diff --git a/Open-ILS/web/js/ui/default/vandelay/vandelay.js b/Open-ILS/web/js/ui/default/vandelay/vandelay.js index 262b4fca3e..cb0b2ff02d 100644 --- a/Open-ILS/web/js/ui/default/vandelay/vandelay.js +++ b/Open-ILS/web/js/ui/default/vandelay/vandelay.js @@ -287,13 +287,13 @@ function uploadMARC(onload){ /** * Creates a new vandelay queue */ -function createQueue(queueName, type, onload) { +function createQueue(queueName, type, onload, importDefId) { var name = (type=='bib') ? 'bib' : 'authority'; var method = 'open-ils.vandelay.'+ name +'_queue.create' fieldmapper.standardRequest( ['open-ils.vandelay', method], { async: true, - params: [authtoken, queueName, null, name], + params: [authtoken, queueName, null, name, importDefId], oncomplete : function(r) { var queue = r.recv().content(); if(e = openils.Event.parse(queue)) @@ -899,7 +899,7 @@ function batchUpload() { currentQueueId = vlUploadQueueSelector.getValue(); uploadMARC(handleUploadMARC); } else { - createQueue(queueName, currentType, handleCreateQueue); + createQueue(queueName, currentType, handleCreateQueue, vlUploadQueueHoldingsImportProfile.attr('value')); } }