[open-ils-commits] r9612 - in branches/acq-experiment: . Open-ILS/examples Open-ILS/src/perlmods/OpenILS/Application Open-ILS/src/perlmods/OpenILS/WWW Open-ILS/src/sql/Pg

svn at svn.open-ils.org svn at svn.open-ils.org
Wed May 14 22:32:17 EDT 2008


Author: erickson
Date: 2008-05-14 22:32:16 -0400 (Wed, 14 May 2008)
New Revision: 9612

Added:
   branches/acq-experiment/Open-ILS/src/perlmods/OpenILS/WWW/Vandelay.pm
Modified:
   branches/acq-experiment/
   branches/acq-experiment/Open-ILS/examples/fm_IDL.xml
   branches/acq-experiment/Open-ILS/src/perlmods/OpenILS/Application/Vandelay.pm
   branches/acq-experiment/Open-ILS/src/sql/Pg/012.schema.vandelay.sql
   branches/acq-experiment/Open-ILS/src/sql/Pg/100.circ_matrix.sql
Log:
Merged revisions 9593-9595,9599-9601,9606 via svnmerge from 
svn://svn.open-ils.org/ILS/trunk

........
  r9593 | miker | 2008-05-13 17:38:53 -0400 (Tue, 13 May 2008) | 1 line
  
  mod_perl stub for uploading vandelay files
........
  r9594 | miker | 2008-05-13 17:42:43 -0400 (Tue, 13 May 2008) | 1 line
  
  permacrud, field_safe and sequence updates
........
  r9595 | miker | 2008-05-13 22:37:52 -0400 (Tue, 13 May 2008) | 1 line
  
  spool processing
........
  r9599 | miker | 2008-05-14 12:23:42 -0400 (Wed, 14 May 2008) | 1 line
  
  use a RECORD for LOOP for postgres 8.1 compat
........
  r9600 | miker | 2008-05-14 12:57:04 -0400 (Wed, 14 May 2008) | 1 line
  
  moving purpose to record instead of queue
........
  r9601 | miker | 2008-05-14 12:58:12 -0400 (Wed, 14 May 2008) | 1 line
  
  moving purpose to record instead of queue
........
  r9606 | miker | 2008-05-14 16:31:48 -0400 (Wed, 14 May 2008) | 1 line
  
  moving purpose to record instead of queue
........



Property changes on: branches/acq-experiment
___________________________________________________________________
Name: svnmerge-integrated
   - /trunk:1-9588
   + /trunk:1-9611

Modified: branches/acq-experiment/Open-ILS/examples/fm_IDL.xml
===================================================================
--- branches/acq-experiment/Open-ILS/examples/fm_IDL.xml	2008-05-15 02:29:04 UTC (rev 9611)
+++ branches/acq-experiment/Open-ILS/examples/fm_IDL.xml	2008-05-15 02:32:16 UTC (rev 9612)
@@ -137,7 +137,7 @@
 
 	<!-- Actually in the DB -->
 	<class id="vbq" controller="open-ils.cstore" oils_obj:fieldmapper="vandelay::bib_queue" oils_persist:tablename="vandelay.bib_queue" reporter:label="Import/Overlay Bib Queue">
-		<fields oils_persist:primary="code" oils_persist:sequence="">
+		<fields oils_persist:primary="id" oils_persist:sequence="vandelay.queue_id_seq">
 			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
 			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
 			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
@@ -146,7 +146,6 @@
 			<field reporter:label="Name" name="name" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true"/>
 			<field reporter:label="Complete" name="complete" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="bool"/>
 			<field reporter:label="Type" name="queue_type" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="Purpose" name="queue_purpose" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="text"/>
 		</fields>
 		<links>
 			<link field="owner" reltype="has_a" key="id" map="" class="aou"/>
@@ -162,7 +161,7 @@
 	</class>
 
 	<class id="vqbr" controller="open-ils.cstore" oils_obj:fieldmapper="vandelay::queued_bib_record" oils_persist:tablename="vandelay.queued_bib_record" reporter:label="Queued Bib Record">
-		<fields oils_persist:primary="code" oils_persist:sequence="">
+		<fields oils_persist:primary="id" oils_persist:sequence="vandelay.queued_record_id_seq">
 			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
 			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
 			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
@@ -173,6 +172,7 @@
 			<field reporter:label="Queue" name="queue" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="link"/>
 			<field reporter:label="Bib Source" name="bib_source" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="link"/>
 			<field reporter:label="Final Target Record" name="imported_as" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="link"/>
+			<field reporter:label="Purpose" name="purpose" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="text"/>
 		</fields>
 		<links>
 			<link field="queue" reltype="has_a" key="id" map="" class="vbq"/>
@@ -190,7 +190,7 @@
 	</class>
 
 	<class id="vqbrad" controller="open-ils.cstore" oils_obj:fieldmapper="vandelay::bib_attr_definition" oils_persist:tablename="vandelay.bib_attr_definition" reporter:label="Queued Bib Record Attribute Definition">
-		<fields oils_persist:primary="code" oils_persist:sequence="">
+		<fields oils_persist:primary="id" oils_persist:sequence="vandelay.bib_attr_definition_id_seq">
 			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
 			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
 			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
@@ -213,7 +213,7 @@
 	</class>
 
 	<class id="vqbra" controller="open-ils.cstore" oils_obj:fieldmapper="vandelay::queued_bib_record_attr" oils_persist:tablename="vandelay.queued_bib_record_attr" reporter:label="Queued Bib Record Attribute">
-		<fields oils_persist:primary="code" oils_persist:sequence="">
+		<fields oils_persist:primary="id" oils_persist:sequence="vandelay.queued_bib_record_attr_id_seq">
 			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
 			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
 			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
@@ -237,7 +237,7 @@
 	</class>
 
 	<class id="vbm" controller="open-ils.cstore" oils_obj:fieldmapper="vandelay::bib_match" oils_persist:tablename="vandelay.bib_match" reporter:label="Queued Bib Record Match">
-		<fields oils_persist:primary="code" oils_persist:sequence="">
+		<fields oils_persist:primary="id" oils_persist:sequence="vandelay.bib_match_id_seq">
 			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
 			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
 			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
@@ -263,7 +263,7 @@
 	</class>
 
 	<class id="vaq" controller="open-ils.cstore" oils_obj:fieldmapper="vandelay::authority_queue" oils_persist:tablename="vandelay.authority_queue" reporter:label="Import/Overlay Authority Queue">
-		<fields oils_persist:primary="code" oils_persist:sequence="">
+		<fields oils_persist:primary="id" oils_persist:sequence="vandelay.queue_id_seq">
 			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
 			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
 			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
@@ -288,7 +288,7 @@
 	</class>
 
 	<class id="vqar" controller="open-ils.cstore" oils_obj:fieldmapper="vandelay::queued_authority_record" oils_persist:tablename="vandelay.queued_authority_record" reporter:label="Queued Authority Record">
-		<fields oils_persist:primary="code" oils_persist:sequence="">
+		<fields oils_persist:primary="id" oils_persist:sequence="vandelay.queued_record_id_seq">
 			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
 			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
 			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
@@ -298,6 +298,7 @@
 			<field reporter:label="MARC" name="marc" oils_obj:array_position="6" oils_persist:virtual="false" reporter:datatype="text"/>
 			<field reporter:label="Queue" name="queue" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="link"/>
 			<field reporter:label="Final Target Record" name="imported_as" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="link"/>
+			<field reporter:label="Purpose" name="purpose" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="text"/>
 		</fields>
 		<links>
 			<link field="queue" reltype="has_a" key="id" map="" class="vaq"/>
@@ -314,7 +315,7 @@
 	</class>
 
 	<class id="vqarad" controller="open-ils.cstore" oils_obj:fieldmapper="vandelay::authority_attr_definition" oils_persist:tablename="vandelay.authority_attr_definition" reporter:label="Queued Authority Record Attribute Definition">
-		<fields oils_persist:primary="code" oils_persist:sequence="">
+		<fields oils_persist:primary="id" oils_persist:sequence="vandelay.authority_attr_definition_id_seq">
 			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
 			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
 			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
@@ -337,7 +338,7 @@
 	</class>
 
 	<class id="vqara" controller="open-ils.cstore" oils_obj:fieldmapper="vandelay::queued_authority_record_attr" oils_persist:tablename="vandelay.queued_authority_record_attr" reporter:label="Queued Authority Record Attribute">
-		<fields oils_persist:primary="code" oils_persist:sequence="">
+		<fields oils_persist:primary="id" oils_persist:sequence="vandelay.queued_authority_record_attr_id_seq">
 			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
 			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
 			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
@@ -361,7 +362,7 @@
 	</class>
 
 	<class id="vam" controller="open-ils.cstore" oils_obj:fieldmapper="vandelay::authority_match" oils_persist:tablename="vandelay.authority_match" reporter:label="Queued Authority Record Match">
-		<fields oils_persist:primary="code" oils_persist:sequence="">
+		<fields oils_persist:primary="id" oils_persist:sequence="vandelay.authority_match_id_seq">
 			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
 			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
 			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
@@ -477,7 +478,7 @@
         </permacrud>
 	</class>
 
-	<class id="cvrfm" controller="open-ils.cstore" oils_obj:fieldmapper="config::videorecording_format_map" oils_persist:tablename="config.videorecording_format_map" reporter:label="Videorecording Format">
+	<class id="cvrfm" controller="open-ils.cstore" oils_obj:fieldmapper="config::videorecording_format_map" oils_persist:tablename="config.videorecording_format_map" reporter:label="Videorecording Format" oils_persist:field_safe="true">
 		<fields oils_persist:primary="code">
 			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
 			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
@@ -488,10 +489,10 @@
 		<links/>
         <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
             <actions>
-                <create permission="CREATE_VR_FORMAT" global_required="true"/>
-                <retrieve/>
-                <update permission="UPDATE_VR_FORMAT" global_required="true"/>
-                <delete permission="DELETE_VR_FORMAT" global_required="true"/>
+                <create permission="CREATE_MARC_CODE" global_required="true"/>
+                <retrieve permission="CREATE_MARC_CODE|UPDATE_MARC_CODE|DELETE_MARC_CODE" global_required="true"/>
+                <update permission="UPDATE_MARC_CODE" global_required="true"/>
+                <delete permission="DELETE_MARC_CODE" global_required="true"/>
             </actions>
         </permacrud>
 	</class>
@@ -872,7 +873,7 @@
 			<link field="record" reltype="has_a" key="id" map="" class="are"/>
 		</links>
 	</class>
-	<class id="clm" controller="open-ils.cstore" oils_obj:fieldmapper="config::language_map" oils_persist:tablename="config.language_map" reporter:label="Language Map">
+	<class id="clm" controller="open-ils.cstore" oils_obj:fieldmapper="config::language_map" oils_persist:tablename="config.language_map" reporter:label="Language Map" oils_persist:field_safe="true">
 		<fields oils_persist:primary="code" oils_persist:sequence="">
 			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
 			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
@@ -883,10 +884,10 @@
 		<links/>
         <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
             <actions>
-                <create permission="CREATE_LANGUAGE" global_required="true"/>
-                <retrieve/>
-                <update permission="UPDATE_LANGUAGE" global_required="true"/>
-                <delete permission="DELETE_LANGUAGE" global_required="true"/>
+                <create permission="CREATE_MARC_CODE" global_required="true"/>
+                <retrieve permission="CREATE_MARC_CODE|UPDATE_MARC_CODE|DELETE_MARC_CODE" global_required="true"/>
+                <update permission="UPDATE_MARC_CODE" global_required="true"/>
+                <delete permission="DELETE_MARC_CODE" global_required="true"/>
             </actions>
         </permacrud>
 	</class>
@@ -963,7 +964,7 @@
             </actions>
         </permacrud>
 	</class>
-	<class id="cam" controller="open-ils.cstore" oils_obj:fieldmapper="config::audience_map" oils_persist:tablename="config.audience_map" reporter:label="Audience Map">
+	<class id="cam" controller="open-ils.cstore" oils_obj:fieldmapper="config::audience_map" oils_persist:tablename="config.audience_map" reporter:label="Audience Map" oils_persist:field_safe="true">
 		<fields oils_persist:primary="code" oils_persist:sequence="">
 			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
 			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
@@ -975,14 +976,14 @@
 		<links/>
         <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
             <actions>
-                <create permission="CREATE_AUDIENCE" global_required="true"/>
-                <retrieve/>
-                <update permission="UPDATE_AUDIENCE" global_required="true"/>
-                <delete permission="DELETE_AUDIENCE" global_required="true"/>
+                <create permission="CREATE_MARC_CODE" global_required="true"/>
+                <retrieve permission="CREATE_MARC_CODE|UPDATE_MARC_CODE|DELETE_MARC_CODE" global_required="true"/>
+                <update permission="UPDATE_MARC_CODE" global_required="true"/>
+                <delete permission="DELETE_MARC_CODE" global_required="true"/>
             </actions>
         </permacrud>
 	</class>
-	<class id="cifm" controller="open-ils.cstore" oils_obj:fieldmapper="config::item_form_map" oils_persist:tablename="config.item_form_map" reporter:label="Item Form Map">
+	<class id="cifm" controller="open-ils.cstore" oils_obj:fieldmapper="config::item_form_map" oils_persist:tablename="config.item_form_map" reporter:label="Item Form Map" oils_persist:field_safe="true">
 		<fields oils_persist:primary="code" oils_persist:sequence="">
 			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
 			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
@@ -993,10 +994,10 @@
 		<links/>
         <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
             <actions>
-                <create permission="CREATE_ITEM_FORM" global_required="true"/>
-                <retrieve/>
-                <update permission="UPDATE_ITEM_FORM" global_required="true"/>
-                <delete permission="DELETE_ITEM_FORM" global_required="true"/>
+                <create permission="CREATE_MARC_CODE" global_required="true"/>
+                <retrieve permission="CREATE_MARC_CODE|UPDATE_MARC_CODE|DELETE_MARC_CODE" global_required="true"/>
+                <update permission="UPDATE_MARC_CODE" global_required="true"/>
+                <delete permission="DELETE_MARC_CODE" global_required="true"/>
             </actions>
         </permacrud>
 	</class>
@@ -1454,7 +1455,7 @@
             </actions>
         </permacrud>
 	</class>
-	<class id="mmrsm" controller="open-ils.cstore" oils_obj:fieldmapper="metabib::metarecord_source_map" oils_persist:tablename="metabib.metarecord_source_map">
+	<class id="mmrsm" controller="open-ils.cstore" oils_obj:fieldmapper="metabib::metarecord_source_map" oils_persist:tablename="metabib.metarecord_source_map" oils_persist:field_safe="true">
 		<fields oils_persist:primary="id" oils_persist:sequence="metabib.metarecord_source_map_id_seq">
 			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
 			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
@@ -1821,7 +1822,7 @@
 			<link field="stat_cat" reltype="has_a" key="id" map="" class="asc"/>
 		</links>
 	</class>
-	<class id="citm" controller="open-ils.cstore" oils_obj:fieldmapper="config::item_type_map" oils_persist:tablename="config.item_type_map" reporter:label="Item Type Map">
+	<class id="citm" controller="open-ils.cstore" oils_obj:fieldmapper="config::item_type_map" oils_persist:tablename="config.item_type_map" reporter:label="Item Type Map" oils_persist:field_safe="true">
 		<fields oils_persist:primary="code">
 			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
 			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
@@ -1832,14 +1833,14 @@
 		<links/>
         <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
             <actions>
-                <create permission="CREATE_ITEM_TYPE" global_required="true"/>
-                <retrieve/>
-                <update permission="UPDATE_ITEM_TYPE" global_required="true"/>
-                <delete permission="DELETE_ITEM_TYPE" global_required="true"/>
+                <create permission="CREATE_MARC_CODE" global_required="true"/>
+                <retrieve permission="CREATE_MARC_CODE|UPDATE_MARC_CODE|DELETE_MARC_CODE" global_required="true"/>
+                <update permission="UPDATE_MARC_CODE" global_required="true"/>
+                <delete permission="DELETE_MARC_CODE" global_required="true"/>
             </actions>
         </permacrud>
 	</class>
-	<class id="cblvl" controller="open-ils.cstore" oils_obj:fieldmapper="config::bib_level_map" oils_persist:tablename="config.bib_level_map" reporter:label="Bib Level Map">
+	<class id="cblvl" controller="open-ils.cstore" oils_obj:fieldmapper="config::bib_level_map" oils_persist:tablename="config.bib_level_map" reporter:label="Bib Level Map" oils_persist:field_safe="true">
 		<fields oils_persist:primary="code">
 			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
 			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
@@ -1850,10 +1851,10 @@
 		<links/>
         <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
             <actions>
-                <create permission="CREATE_BIB_LEVEL" global_required="true"/>
-                <retrieve/>
-                <update permission="UPDATE_BIB_LEVEL" global_required="true"/>
-                <delete permission="DELETE_BIB_LEVEL" global_required="true"/>
+                <create permission="CREATE_MARC_CODE" global_required="true"/>
+                <retrieve permission="CREATE_MARC_CODE|UPDATE_MARC_CODE|DELETE_MARC_CODE" global_required="true"/>
+                <update permission="UPDATE_MARC_CODE" global_required="true"/>
+                <delete permission="DELETE_MARC_CODE" global_required="true"/>
             </actions>
         </permacrud>
 	</class>
@@ -2439,22 +2440,22 @@
 			<link field="usr" reltype="has_a" key="id" map="" class="au"/>
 		</links>
 	</class>
-	<class id="clfm" controller="open-ils.cstore" oils_obj:fieldmapper="config::lit_form_map" oils_persist:tablename="config.lit_form_map" reporter:label="Literary Form">
+	<class id="clfm" controller="open-ils.cstore" oils_obj:fieldmapper="config::lit_form_map" oils_persist:tablename="config.lit_form_map" reporter:label="Literary Form" oils_persist:field_safe="true">
 		<fields oils_persist:primary="code" oils_persist:sequence="">
 			<field name="isnew" oils_obj:array_position="0" oils_persist:virtual="true" />
 			<field name="ischanged" oils_obj:array_position="1" oils_persist:virtual="true" />
 			<field name="isdeleted" oils_obj:array_position="2" oils_persist:virtual="true" />
 			<field reporter:label="LitF Code" name="code" oils_obj:array_position="3" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="LitF Description" name="description" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text"/>
-			<field reporter:label="LitF Name" name="value" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text"/>
+			<field reporter:label="LitF Description" name="description" oils_obj:array_position="4" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true"/>
+			<field reporter:label="LitF Name" name="value" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="text" oils_persist:i18n="true"/>
 		</fields>
 		<links/>
         <permacrud xmlns="http://open-ils.org/spec/opensrf/IDL/permacrud/v1">
             <actions>
-                <create permission="CREATE_LIT_FORM" global_required="true"/>
-                <retrieve/>
-                <update permission="UPDATE_LIT_FORM" global_required="true"/>
-                <delete permission="DELETE_LIT_FORM" global_required="true"/>
+                <create permission="CREATE_MARC_CODE" global_required="true"/>
+                <retrieve permission="CREATE_MARC_CODE|UPDATE_MARC_CODE|DELETE_MARC_CODE" global_required="true"/>
+                <update permission="UPDATE_MARC_CODE" global_required="true"/>
+                <delete permission="DELETE_MARC_CODE" global_required="true"/>
             </actions>
         </permacrud>
 	</class>

Modified: branches/acq-experiment/Open-ILS/src/perlmods/OpenILS/Application/Vandelay.pm
===================================================================
--- branches/acq-experiment/Open-ILS/src/perlmods/OpenILS/Application/Vandelay.pm	2008-05-15 02:29:04 UTC (rev 9611)
+++ branches/acq-experiment/Open-ILS/src/perlmods/OpenILS/Application/Vandelay.pm	2008-05-15 02:32:16 UTC (rev 9612)
@@ -7,10 +7,12 @@
 
 use OpenSRF::AppSession;
 use OpenSRF::Utils::SettingsClient;
+use OpenSRF::Utils::Cache;
 
 use OpenILS::Utils::Fieldmapper;
 use OpenILS::Utils::CStoreEditor qw/:funcs/;
 
+use MARC::Batch;
 use MARC::Record;
 use MARC::File::XML;
 
@@ -49,7 +51,6 @@
 	my $name = shift;
 	my $owner = shift;
 	my $type = shift;
-	my $purpose = shift;
 
 	my $e = new_editor(authtoken => $auth, xact => 1);
 
@@ -64,6 +65,7 @@
 
 	my $new_id = $e->create_vandelay_bib_queue( $queue );
 	$e->die_event unless ($new_id);
+	$e->commit;
 
 	$queue->id($new_id);
 	return $queue;
@@ -83,7 +85,6 @@
 	my $name = shift;
 	my $owner = shift;
 	my $type = shift;
-	my $purpose = shift;
 
 	my $e = new_editor(authtoken => $auth, xact => 1);
 
@@ -98,6 +99,7 @@
 
 	my $new_id = $e->create_vandelay_authority_queue( $queue );
 	$e->die_event unless ($new_id);
+	$e->commit;
 
 	$queue->id($new_id);
 	return $queue;
@@ -115,22 +117,21 @@
 	my $auth = shift;
 	my $queue = shift;
 	my $marc = shift;
+	my $purpose = shift;
 
 	my $e = new_editor(authtoken => $auth, xact => 1);
 
-	$queue = $e->retrieve_vandelay_bib_queue($queue)
+	$queue = $e->retrieve_vandelay_bib_queue($queue);
 
 	return $e->die_event unless $e->checkauth;
 	return $e->die_event unless
 		($e->allowed('CREATE_BIB_IMPORT_QUEUE', undef, $queue) ||
 		 $e->allowed('CREATE_BIB_IMPORT_QUEUE', $queue->owner));
 
-	my $rec = new Fieldmapper::vandelay::queued_bib_record();
-	$rec->marc( $marc );
-	$rec->queue( $queue->id );
+	my $new_id = _add_auth_rec($e, $marc, $queue->id, $purpose);
 
-	my $new_id = $e->create_vandelay_queued_bib_record( $rec );
 	$e->die_event unless ($new_id);
+	$e->commit;
 
 	$rec->id($new_id);
 	return $rec;
@@ -142,39 +143,143 @@
 	argc		=> 3,
 );                      
 
+sub _add_bib_rec {
+	my $e = shift;
+	my $marc = shift;
+	my $queue = shift;
+	my $purpose = shift;
+
+	my $rec = new Fieldmapper::vandelay::queued_bib_record();
+	$rec->marc( $marc );
+	$rec->queue( $queue );
+	$rec->purpose( $purpose ) if ($purpose);
+
+	return $e->create_vandelay_queued_bib_record( $rec );
+}
+
 sub add_record_to_authority_queue {
 	my $self = shift;
 	my $client = shift;
 	my $auth = shift;
 	my $queue = shift;
 	my $marc = shift;
+	my $purpose = shift;
 
 	my $e = new_editor(authtoken => $auth, xact => 1);
 
-	$queue = $e->retrieve_vandelay_authority_queue($queue)
+	$queue = $e->retrieve_vandelay_authority_queue($queue);
 
 	return $e->die_event unless $e->checkauth;
 	return $e->die_event unless
 		($e->allowed('CREATE_AUTHORITY_IMPORT_QUEUE', undef, $queue) ||
 		 $e->allowed('CREATE_AUTHORITY_IMPORT_QUEUE', $queue->owner));
 
-	my $rec = new Fieldmapper::vandelay::queued_authority_record();
-	$rec->marc( $marc );
-	$rec->queue( $queue->id );
+	my $new_id = _add_auth_rec($e, $marc, $queue->id, $purpose);
 
-	my $new_id = $e->create_vandelay_queued_authority_record( $rec );
 	$e->die_event unless ($new_id);
+	$e->commit;
 
 	$rec->id($new_id);
 	return $rec;
 }
-__PACKAGE__->register_method(  
+__PACKAGE__->register_method(
 	api_name	=> "open-ils.vandelay.queued_authority_record.create",
 	method		=> "add_record_to_authority_queue",
 	api_level	=> 1,
 	argc		=> 3,
+);
+
+sub _add_auth_rec {
+	my $e = shift;
+	my $marc = shift;
+	my $queue = shift;
+
+	my $rec = new Fieldmapper::vandelay::queued_authority_record();
+	$rec->marc( $marc );
+	$rec->queue( $queue );
+	$rec->purpose( $purpose ) if ($purpose);
+
+	return $e->create_vandelay_queued_authority_record( $rec );
+}
+
+sub process_spool {
+	my $self = shift;
+	my $client = shift;
+	my $auth = shift;
+	my $fingerprint = shift;
+	my $queue = shift;
+
+	my $e = new_editor(authtoken => $auth, xact => 1);
+
+	if ($self->{record_type} eq 'bib') {
+		return $e->die_event unless $e->checkauth;
+		return $e->die_event unless
+			($e->allowed('CREATE_BIB_IMPORT_QUEUE', undef, $queue) ||
+			 $e->allowed('CREATE_BIB_IMPORT_QUEUE', $queue->owner));
+	} else {
+		return $e->die_event unless $e->checkauth;
+		return $e->die_event unless
+			($e->allowed('CREATE_AUTHORITY_IMPORT_QUEUE', undef, $queue) ||
+			 $e->allowed('CREATE_AUTHORITY_IMPORT_QUEUE', $queue->owner));
+	}
+
+	my $method = 'open-ils.vandelay.queued_'.$self->{record_type}.'_record.create';
+	$method = $self->method_lookup( $method );
+
+    my $cache = new OpenSRF::Utils::Cache();
+
+    my $data = $cache->get_cache('vandelay_import_spool_' . $fingerprint);
+	my $purpose = $data->{purpose};
+    $data = decode_base64($data->{marc});
+
+	my $fh = new IO::Scalar \$data;
+
+	my $batch = new MARC::Batch ( $type, $fh );
+	$batch->strict_off;
+
+	my $count = 0;
+	while (my $r = $batch->next) {
+		try {
+			(my $xml = $rec->as_xml_record()) =~ s/\n//sog;
+			$xml =~ s/^<\?xml.+\?\s*>//go;
+			$xml =~ s/>\s+</></go;
+			$xml =~ s/\p{Cc}//go;
+			$xml = $self->entityize($xml);
+			$xml =~ s/[\x00-\x1f]//go;
+
+			if ($self->{record_type} eq 'bib') {
+				_add_bib_rec( $e, $xml, $queue, $purpose );
+			} else {
+				_add_auth_rec( $e, $xml, $queue, $purpose );
+			}
+			$count++;
+			
+			$client->respond( $count );
+		} catch Error with {
+			my $error = shift;
+			$log->warn("Encountered a bad record at Vandelay ingest: ".$error);
+		}
+	}
+
+	$e->commit;
+	return undef;
+}
+__PACKAGE__->register_method(  
+	api_name	=> "open-ils.vandelay.bib.process_spool",
+	method		=> "process_spool",
+	api_level	=> 1,
+	argc		=> 3,
+	record_type	=> 'bib'
 );                      
+__PACKAGE__->register_method(  
+	api_name	=> "open-ils.vandelay.auth.process_spool",
+	method		=> "process_spool",
+	api_level	=> 1,
+	argc		=> 3,
+	record_type	=> 'auth'
+);                      
 
 
+
 1;
 

Copied: branches/acq-experiment/Open-ILS/src/perlmods/OpenILS/WWW/Vandelay.pm (from rev 9606, trunk/Open-ILS/src/perlmods/OpenILS/WWW/Vandelay.pm)
===================================================================
--- branches/acq-experiment/Open-ILS/src/perlmods/OpenILS/WWW/Vandelay.pm	                        (rev 0)
+++ branches/acq-experiment/Open-ILS/src/perlmods/OpenILS/WWW/Vandelay.pm	2008-05-15 02:32:16 UTC (rev 9612)
@@ -0,0 +1,97 @@
+package OpenILS::WWW::Vandelay;
+use strict;
+use warnings;
+use bytes;
+
+use Apache2::Log;
+use Apache2::Const -compile => qw(OK REDIRECT DECLINED NOT_FOUND :log);
+use APR::Const    -compile => qw(:error SUCCESS);
+use APR::Table;
+
+use Apache2::RequestRec ();
+use Apache2::RequestIO ();
+use Apache2::RequestUtil;
+use CGI;
+use Data::Dumper;
+use Text::CSV;
+
+use OpenSRF::EX qw(:try);
+use OpenSRF::Utils::Cache;
+use OpenSRF::System;
+use OpenSRF::AppSession;
+use XML::LibXML;
+
+use OpenILS::Utils::Fieldmapper;
+use OpenSRF::Utils::Logger qw/$logger/;
+
+use MARC::Record;
+use MARC::File::XML;
+
+use MIME::Base64;
+use Digest::MD5 qw/md5_hex/;
+
+use UNIVERSAL::require;
+
+our @formats = qw/USMARC UNIMARC XML BRE/;
+
+# set the bootstrap config and template include directory when
+# this module is loaded
+my $bootstrap;
+
+sub import {
+        my $self = shift;
+        $bootstrap = shift;
+}
+
+
+sub child_init {
+        OpenSRF::System->bootstrap_client( config_file => $bootstrap );
+}
+
+sub spool_marc {
+	my $r = shift;
+	my $cgi = new CGI;
+
+	my $auth = $cgi->param('ses') || $cgi->cookie('ses');
+
+	return Apache2::Const::FORBIDDEN unless verify_login($auth);
+
+
+	my $purpose = $cgi->param('purpose');
+	my $file = $cgi->param('marc_upload');
+	my $filename = "$file";
+
+	my $data = join '', (<$file>);
+	$data = encode_base64($data);
+
+	my $data_fingerprint = md5_hex($data);
+
+	OpenSRF::Utils::Cache()->new->put_cache(
+		'vandelay_import_spool_' . $data_fingerprint,
+		{ purpose => $purpose, marc => $data }
+	);
+
+	print "Content-type: text/plain; charset=utf-8\n\n$data_fingerprint";
+
+	return Apache2::Const::OK;
+
+}
+
+sub verify_login {
+        my $auth_token = shift;
+        return undef unless $auth_token;
+
+        my $user = OpenSRF::AppSession
+                ->create("open-ils.auth")
+                ->request( "open-ils.auth.session.retrieve", $auth_token )
+                ->gather(1);
+
+        if (ref($user) eq 'HASH' && $user->{ilsevent} == 1001) {
+                return undef;
+        }
+
+        return $user if ref($user);
+        return undef;
+}
+
+1;

Modified: branches/acq-experiment/Open-ILS/src/sql/Pg/012.schema.vandelay.sql
===================================================================
--- branches/acq-experiment/Open-ILS/src/sql/Pg/012.schema.vandelay.sql	2008-05-15 02:29:04 UTC (rev 9611)
+++ branches/acq-experiment/Open-ILS/src/sql/Pg/012.schema.vandelay.sql	2008-05-15 02:32:16 UTC (rev 9612)
@@ -10,15 +10,15 @@
 	name			TEXT		NOT NULL,
 	complete		BOOL		NOT NULL DEFAULT FALSE,
 	queue_type		TEXT		NOT NULL DEFAULT 'bib' CHECK (queue_type IN ('bib','authority')),
-	queue_purpose	TEXT		NOT NULL DEFAULT 'import' CHECK (queue_purpose IN ('import','overlay')),
 	CONSTRAINT vand_queue_name_once_per_owner_const UNIQUE (owner,name,queue_type)
 );
 
 CREATE TABLE vandelay.queued_record (
-    id                  BIGSERIAL                   PRIMARY KEY,
-    create_time         TIMESTAMP WITH TIME ZONE    NOT NULL DEFAULT NOW(),
-    import_time         TIMESTAMP WITH TIME ZONE,
-    marc                TEXT                        NOT NULL
+    id			BIGSERIAL                   PRIMARY KEY,
+    create_time	TIMESTAMP WITH TIME ZONE    NOT NULL DEFAULT NOW(),
+    import_time	TIMESTAMP WITH TIME ZONE,
+	purpose		TEXT						NOT NULL DEFAULT 'import' CHECK (purpose IN ('import','overlay')),
+    marc		TEXT                        NOT NULL
 );
 
 
@@ -57,9 +57,9 @@
 ALTER TABLE vandelay.bib_queue ADD PRIMARY KEY (id);
 
 CREATE TABLE vandelay.queued_bib_record (
-	queue		INT	NOT NULL REFERENCES vandelay.bib_queue (id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED,
-	bib_source	INT	REFERENCES config.bib_source (id) DEFERRABLE INITIALLY DEFERRED,
-	imported_as	INT	REFERENCES biblio.record_entry (id) DEFERRABLE INITIALLY DEFERRED
+	queue		INT		NOT NULL REFERENCES vandelay.bib_queue (id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED,
+	bib_source	INT		REFERENCES config.bib_source (id) DEFERRABLE INITIALLY DEFERRED,
+	imported_as	INT		REFERENCES biblio.record_entry (id) DEFERRABLE INITIALLY DEFERRED
 ) INHERITS (vandelay.queued_record);
 ALTER TABLE vandelay.queued_bib_record ADD PRIMARY KEY (id);
 

Modified: branches/acq-experiment/Open-ILS/src/sql/Pg/100.circ_matrix.sql
===================================================================
--- branches/acq-experiment/Open-ILS/src/sql/Pg/100.circ_matrix.sql	2008-05-15 02:29:04 UTC (rev 9611)
+++ branches/acq-experiment/Open-ILS/src/sql/Pg/100.circ_matrix.sql	2008-05-15 02:32:16 UTC (rev 9612)
@@ -228,7 +228,7 @@
 	items_overdue		INT;
 	current_fines		NUMERIC(8,2) := 0.0;
 	tmp_fines		NUMERIC(8,2);
-	tmp_xact		BIGINT;
+	tmp_xact		RECORD;
 	done			BOOL := FALSE;
 BEGIN
 	result.success := TRUE;
@@ -352,10 +352,10 @@
 
 	-- Fail if the user has a high fine balance
 	IF circ_test.max_fines IS NOT NULL THEN
-		FOR tmp_xact IN SELECT id FROM money.billable_xact WHERE usr = match_usr AND xact_finish IS NULL LOOP
-			SELECT INTO tmp_fines SUM( amount ) FROM money.billing WHERE xact = tmp_xact AND NOT voided;
+		FOR tmp_xact IN SELECT * FROM money.billable_xact WHERE usr = match_usr AND xact_finish IS NULL LOOP
+			SELECT INTO tmp_fines SUM( amount ) FROM money.billing WHERE xact = tmp_xact.id AND NOT voided;
 			current_fines = current_fines + COALESCE(tmp_fines, 0.0);
-			SELECT INTO tmp_fines SUM( amount ) FROM money.payment WHERE xact = tmp_xact AND NOT voided;
+			SELECT INTO tmp_fines SUM( amount ) FROM money.payment WHERE xact = tmp_xact.id AND NOT voided;
 			current_fines = current_fines - COALESCE(tmp_fines, 0.0);
 		END LOOP;
 



More information about the open-ils-commits mailing list