[OPEN-ILS-DEV] Re: Schema typo patch

Dan Scott denials at gmail.com
Mon May 21 10:26:31 EDT 2007


On 20/05/07, Dan Scott <denials at gmail.com> wrote:
> While waiting for some bib records to load (yay -- another past
> another milestone), I was browsing through the schemas for Evergreen
> and noticed some typos. I have to submit this patch once, and if it's
> not applied I understand given the potential pain for schema migration
> at PINES, but there's something in my English major /
> newspaper-editing / tech writer past that needs to get this out. And
> it would be nice for the rest of us to start with a schema that
> doesn't suffer from minor typos...
>
> Testing consisted of applying the patch to CVS HEAD, loading the
> Gutenberg records, and browsing through the records in the staff
> client. Given that this touches "recuring_fines" and "persistant",
> this level of testing wouldn't flush anything out. However, the patch
> was created by running "find /ILS -exec grep -Hi recuring {} \;" for
> the affected words through the source tree, so I'm sure that any
> in-tree code relying on the old spellings has been cleaned up.
>
> The DCO is probably overkill for a typo patch, but whatever :)
>
> Developer's Certificate of Origin 1.1 By making a contribution to this
> project, I certify that:
>
> (a) The contribution was created in whole or in part by me and I have
> the right to submit it under the open source license indicated in the
> file; or
>
> (b) The contribution is based upon previous work that, to the best of
> my knowledge, is covered under an appropriate open source license and
> I have the right under that license to submit that work with
> modifications, whether created in whole or in part by me, under the
> same open source license (unless I am permitted to submit under a
> different license), as indicated in the file; or
>
> (c) The contribution was provided directly to me by some other person
> who certified (a), (b) or (c) and I have not modified it; and
>
> (d) In the case of each of (a), (b), or (c), I understand and agree
> that this project and the contribution are public and that a record of
> the contribution (including all personal information I submit with it,
> including my sign-off) is maintained indefinitely and may be
> redistributed consistent with this project or the open source license
> indicated in the file.
>
> --
> Dan Scott
> Laurentian University
>
>

Update: now includes a schema migration script, which is probably a
more interesting development than mere typo corrections. And the patch
was created using context diff (-c), per the development instructions.

Known issues:
 * the migration script is probably erroneously labelled
schema_migration_10_to_12.sql (as I haven't tracked any of the other
changes from 1.0.x to 1.2.x)
 * I haven't created a Makefile target for the migration script
(openils_db_upgrade or the like) as depending on one's configuration
it may be necessary to run the migration script through EXECUTE SCRIPT
to replicate the action on all nodes

Further justification for typo fixes - especially with "tansparency"
or "tranparency" vs. "transparency", and to a lesser extent for
recuring / recurance, I _know_ that I would end up tripping over that
some time in the future as I struggle to figure out why my perfectly
sensible SQL was erroring out. Plus it gives a little more polish to
the code :)

Developer's Certificate of Origin 1.1 By making a contribution to this
project, I certify that:

(a) The contribution was created in whole or in part by me and I have
the right to submit it under the open source license indicated in the
file; or

(b) The contribution is based upon previous work that, to the best of
my knowledge, is covered under an appropriate open source license and
I have the right under that license to submit that work with
modifications, whether created in whole or in part by me, under the
same open source license (unless I am permitted to submit under a
different license), as indicated in the file; or

(c) The contribution was provided directly to me by some other person
who certified (a), (b) or (c) and I have not modified it; and

(d) In the case of each of (a), (b), or (c), I understand and agree
that this project and the contribution are public and that a record of
the contribution (including all personal information I submit with it,
including my sign-off) is maintained indefinitely and may be
redistributed consistent with this project or the open source license
indicated in the file.

-- 
Dan Scott
Laurentian University
-------------- next part --------------
? Open-ILS/src/sql/Pg/schema_migration_10_to_12.sql
Index: Evergreen/src/extras/import/legacy_circ.sql
===================================================================
RCS file: /cvs/ILS/Evergreen/src/extras/import/legacy_circ.sql,v
retrieving revision 1.3
diff -c -r1.3 legacy_circ.sql
*** Evergreen/src/extras/import/legacy_circ.sql	25 Aug 2006 05:17:01 -0000	1.3
--- Evergreen/src/extras/import/legacy_circ.sql	21 May 2007 14:17:08 -0000
***************
*** 17,24 ****
  ECGRL	100.00  
  \.
  
! CREATE TABLE legacy_type_circ_map (item_type text, recuring_fine numeric(6,2), renewals int);
! COPY legacy_type_circ_map (item_type, recuring_fine, renewals) FROM STDIN;
  ART	0.10	0
  ATLAS	0.50	2
  AUDIOBOOK	0.50	2
--- 17,24 ----
  ECGRL	100.00  
  \.
  
! CREATE TABLE legacy_type_circ_map (item_type text, recurring_fine numeric(6,2), renewals int);
! COPY legacy_type_circ_map (item_type, recurring_fine, renewals) FROM STDIN;
  ART	0.10	0
  ATLAS	0.50	2
  AUDIOBOOK	0.50	2
***************
*** 87,97 ****
  		due_date,
  		stop_fines_time,
  		duration,
! 		recuring_fine,
  		max_fine,
  		desk_renewal,
  		duration_rule,
! 		recuring_fine_rule,
  		max_fine_rule,
  		stop_fines
  	)
--- 87,97 ----
  		due_date,
  		stop_fines_time,
  		duration,
! 		recurring_fine,
  		max_fine,
  		desk_renewal,
  		duration_rule,
! 		recurring_fine_rule,
  		max_fine_rule,
  		stop_fines
  	)
***************
*** 107,117 ****
  		((CASE WHEN lc.due_date = 'NEVER' THEN (now() + '20 years')::DATE ELSE lc.due_date::DATE END
  			-
  		  CASE WHEN lc.renewal_date = 'NEVER' THEN lc.charge_date::DATE ELSE lc.renewal_date::DATE END)||' days')::interval AS duration,
! 		tm.recuring_fine AS recuring_fine,
  		COALESCE( mf.max_fine, 5.00 ) AS max_fine,
  		CASE WHEN lc.renewal_date = 'NEVER' THEN FALSE ELSE TRUE END AS desk_renewal,
  		'IMPORT'::TEXT AS duration_rule,
! 		'IMPORT'::TEXT AS recuring_fine_rule,
  		'IMPORT'::TEXT AS max_fine_rule,
  		CASE WHEN lc.claim_return_date = '0' THEN NULL ELSE 'CLAIMSRETURNED' END AS stop_fines
  	  FROM	legacy_charge lc
--- 107,117 ----
  		((CASE WHEN lc.due_date = 'NEVER' THEN (now() + '20 years')::DATE ELSE lc.due_date::DATE END
  			-
  		  CASE WHEN lc.renewal_date = 'NEVER' THEN lc.charge_date::DATE ELSE lc.renewal_date::DATE END)||' days')::interval AS duration,
! 		tm.recurring_fine AS recurring_fine,
  		COALESCE( mf.max_fine, 5.00 ) AS max_fine,
  		CASE WHEN lc.renewal_date = 'NEVER' THEN FALSE ELSE TRUE END AS desk_renewal,
  		'IMPORT'::TEXT AS duration_rule,
! 		'IMPORT'::TEXT AS recurring_fine_rule,
  		'IMPORT'::TEXT AS max_fine_rule,
  		CASE WHEN lc.claim_return_date = '0' THEN NULL ELSE 'CLAIMSRETURNED' END AS stop_fines
  	  FROM	legacy_charge lc
Index: Evergreen/src/extras/import/sparkle.replicate.slonik
===================================================================
RCS file: /cvs/ILS/Evergreen/src/extras/import/sparkle.replicate.slonik,v
retrieving revision 1.1
diff -c -r1.1 sparkle.replicate.slonik
*** Evergreen/src/extras/import/sparkle.replicate.slonik	3 Sep 2006 07:35:03 -0000	1.1
--- Evergreen/src/extras/import/sparkle.replicate.slonik	21 May 2007 14:17:08 -0000
***************
*** 52,58 ****
  	set add table (set id=1, origin=1, id=7, fully qualified name = 'config.identification_type', comment = '');
  	set add table (set id=1, origin=1, id=8, fully qualified name = 'config.rule_circ_duration', comment = '');
  	set add table (set id=1, origin=1, id=9, fully qualified name = 'config.rule_max_fine', comment = '');
! 	set add table (set id=1, origin=1, id=10, fully qualified name = 'config.rule_recuring_fine', comment = '');
  	set add table (set id=1, origin=1, id=11, fully qualified name = 'config.rule_age_hold_protect', comment = '');
  	set add table (set id=1, origin=1, id=12, fully qualified name = 'config.copy_status', comment = '');
  	set add table (set id=1, origin=1, id=13, fully qualified name = 'config.net_access_level', comment = '');
--- 52,58 ----
  	set add table (set id=1, origin=1, id=7, fully qualified name = 'config.identification_type', comment = '');
  	set add table (set id=1, origin=1, id=8, fully qualified name = 'config.rule_circ_duration', comment = '');
  	set add table (set id=1, origin=1, id=9, fully qualified name = 'config.rule_max_fine', comment = '');
! 	set add table (set id=1, origin=1, id=10, fully qualified name = 'config.rule_recurring_fine', comment = '');
  	set add table (set id=1, origin=1, id=11, fully qualified name = 'config.rule_age_hold_protect', comment = '');
  	set add table (set id=1, origin=1, id=12, fully qualified name = 'config.copy_status', comment = '');
  	set add table (set id=1, origin=1, id=13, fully qualified name = 'config.net_access_level', comment = '');
Index: Open-ILS/admin/ils_admin/setup/ils_data/models.py
===================================================================
RCS file: /cvs/ILS/Open-ILS/admin/ils_admin/setup/ils_data/models.py,v
retrieving revision 1.3
diff -c -r1.3 models.py
*** Open-ILS/admin/ils_admin/setup/ils_data/models.py	11 Apr 2007 18:23:51 -0000	1.3
--- Open-ILS/admin/ils_admin/setup/ils_data/models.py	21 May 2007 14:17:29 -0000
***************
*** 233,239 ****
          search_fields = ['name']
          list_display = ('name','high', 'normal', 'low')
      class Meta:
!         db_table = 'rule_recuring_fine'
          ordering = ['name']
          verbose_name = 'Circ Recurring Fine Rule'
      def __str__(self):
--- 233,239 ----
          search_fields = ['name']
          list_display = ('name','high', 'normal', 'low')
      class Meta:
!         db_table = 'rule_recurring_fine'
          ordering = ['name']
          verbose_name = 'Circ Recurring Fine Rule'
      def __str__(self):
Index: Open-ILS/examples/fm_IDL.xml
===================================================================
RCS file: /cvs/ILS/Open-ILS/examples/fm_IDL.xml,v
retrieving revision 1.91
diff -c -r1.91 fm_IDL.xml
*** Open-ILS/examples/fm_IDL.xml	12 May 2007 05:44:01 -0000	1.91
--- Open-ILS/examples/fm_IDL.xml	21 May 2007 14:17:32 -0000
***************
*** 253,259 ****
  			<field reporter:label="Destination" name="dest" oils_obj:array_position="4" oils_persist:virtual="false" />
  			<field reporter:label="Receive Date/Time" name="dest_recv_time" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="timestamp"/>
  			<field reporter:label="Transit ID" name="id" oils_obj:array_position="6" oils_persist:virtual="false" />
! 			<field reporter:label="Is Persistent? (unused)" name="persistant_transfer" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="bool"/>
  			<field reporter:label="Previous Hop (unused)" name="prev_hop" oils_obj:array_position="8" oils_persist:virtual="false" />
  			<field reporter:label="Source" name="source" oils_obj:array_position="9" oils_persist:virtual="false" />
  			<field reporter:label="Send Date/Time" name="source_send_time" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="timestamp"/>
--- 253,259 ----
  			<field reporter:label="Destination" name="dest" oils_obj:array_position="4" oils_persist:virtual="false" />
  			<field reporter:label="Receive Date/Time" name="dest_recv_time" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="timestamp"/>
  			<field reporter:label="Transit ID" name="id" oils_obj:array_position="6" oils_persist:virtual="false" />
! 			<field reporter:label="Is Persistent? (unused)" name="persistent_transfer" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="bool"/>
  			<field reporter:label="Previous Hop (unused)" name="prev_hop" oils_obj:array_position="8" oils_persist:virtual="false" />
  			<field reporter:label="Source" name="source" oils_obj:array_position="9" oils_persist:virtual="false" />
  			<field reporter:label="Send Date/Time" name="source_send_time" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="timestamp"/>
***************
*** 991,998 ****
  			<field reporter:label="Max Fine Rule" name="max_fine_rule" oils_obj:array_position="15" oils_persist:virtual="false" />
  			<field reporter:label="OPAC Renewal" name="opac_renewal" oils_obj:array_position="16" oils_persist:virtual="false" reporter:datatype="bool"/>
  			<field reporter:label="Phone Renewal" name="phone_renewal" oils_obj:array_position="17" oils_persist:virtual="false" reporter:datatype="bool"/>
! 			<field reporter:label="Recurring Fine Amount" name="recuring_fine" oils_obj:array_position="18" oils_persist:virtual="false" reporter:datatype="money" />
! 			<field reporter:label="Recurring Fine Rule" name="recuring_fine_rule" oils_obj:array_position="19" oils_persist:virtual="false" />
  			<field reporter:label="Remaining Renewals" name="renewal_remaining" oils_obj:array_position="20" oils_persist:virtual="false" reporter:datatype="int" />
  			<field reporter:label="Fine Stop Reason" name="stop_fines" oils_obj:array_position="21" oils_persist:virtual="false" />
  			<field reporter:label="Fine Stop Date/Time" name="stop_fines_time" oils_obj:array_position="22" oils_persist:virtual="false" reporter:datatype="timestamp"/>
--- 991,998 ----
  			<field reporter:label="Max Fine Rule" name="max_fine_rule" oils_obj:array_position="15" oils_persist:virtual="false" />
  			<field reporter:label="OPAC Renewal" name="opac_renewal" oils_obj:array_position="16" oils_persist:virtual="false" reporter:datatype="bool"/>
  			<field reporter:label="Phone Renewal" name="phone_renewal" oils_obj:array_position="17" oils_persist:virtual="false" reporter:datatype="bool"/>
! 			<field reporter:label="Recurring Fine Amount" name="recurring_fine" oils_obj:array_position="18" oils_persist:virtual="false" reporter:datatype="money" />
! 			<field reporter:label="Recurring Fine Rule" name="recurring_fine_rule" oils_obj:array_position="19" oils_persist:virtual="false" />
  			<field reporter:label="Remaining Renewals" name="renewal_remaining" oils_obj:array_position="20" oils_persist:virtual="false" reporter:datatype="int" />
  			<field reporter:label="Fine Stop Reason" name="stop_fines" oils_obj:array_position="21" oils_persist:virtual="false" />
  			<field reporter:label="Fine Stop Date/Time" name="stop_fines_time" oils_obj:array_position="22" oils_persist:virtual="false" reporter:datatype="timestamp"/>
***************
*** 1019,1025 ****
  			<link field="billings" reltype="has_many" key="xact" map="" class="mb"/>
  			<link field="duration_rule" reltype="has_a" key="name" map="" class="crcd"/>
  			<link field="max_fine_rule" reltype="has_a" key="name" map="" class="crmf"/>
! 			<link field="recuring_fine_rule" reltype="has_a" key="name" map="" class="crrf"/>
  			<link field="circ_type" reltype="might_have" key="id" map="" class="rcirct"/>
  			<link field="billing_total" reltype="might_have" key="xact" map="" class="rxbt"/>
  			<link field="payment_total" reltype="might_have" key="xact" map="" class="rxpt"/>
--- 1019,1025 ----
  			<link field="billings" reltype="has_many" key="xact" map="" class="mb"/>
  			<link field="duration_rule" reltype="has_a" key="name" map="" class="crcd"/>
  			<link field="max_fine_rule" reltype="has_a" key="name" map="" class="crmf"/>
! 			<link field="recurring_fine_rule" reltype="has_a" key="name" map="" class="crrf"/>
  			<link field="circ_type" reltype="might_have" key="id" map="" class="rcirct"/>
  			<link field="billing_total" reltype="might_have" key="xact" map="" class="rxbt"/>
  			<link field="payment_total" reltype="might_have" key="xact" map="" class="rxpt"/>
***************
*** 1637,1644 ****
  			<field name="max_fine_rule" oils_obj:array_position="15" oils_persist:virtual="false" />
  			<field name="opac_renewal" oils_obj:array_position="16" oils_persist:virtual="false" reporter:datatype="bool"/>
  			<field name="phone_renewal" oils_obj:array_position="17" oils_persist:virtual="false" reporter:datatype="bool"/>
! 			<field name="recuring_fine" oils_obj:array_position="18" oils_persist:virtual="false" reporter:datatype="money" />
! 			<field name="recuring_fine_rule" oils_obj:array_position="19" oils_persist:virtual="false" />
  			<field name="renewal_remaining" oils_obj:array_position="20" oils_persist:virtual="false" reporter:datatype="int" />
  			<field name="stop_fines" oils_obj:array_position="21" oils_persist:virtual="false" />
  			<field name="stop_fines_time" oils_obj:array_position="22" oils_persist:virtual="false" reporter:datatype="timestamp"/>
--- 1637,1644 ----
  			<field name="max_fine_rule" oils_obj:array_position="15" oils_persist:virtual="false" />
  			<field name="opac_renewal" oils_obj:array_position="16" oils_persist:virtual="false" reporter:datatype="bool"/>
  			<field name="phone_renewal" oils_obj:array_position="17" oils_persist:virtual="false" reporter:datatype="bool"/>
! 			<field name="recurring_fine" oils_obj:array_position="18" oils_persist:virtual="false" reporter:datatype="money" />
! 			<field name="recurring_fine_rule" oils_obj:array_position="19" oils_persist:virtual="false" />
  			<field name="renewal_remaining" oils_obj:array_position="20" oils_persist:virtual="false" reporter:datatype="int" />
  			<field name="stop_fines" oils_obj:array_position="21" oils_persist:virtual="false" />
  			<field name="stop_fines_time" oils_obj:array_position="22" oils_persist:virtual="false" reporter:datatype="timestamp"/>
***************
*** 1652,1658 ****
  			<link field="circulation" reltype="might_have" key="id" map="" class="circ"/>
  			<link field="duration_rule" reltype="has_a" key="name" map="" class="crcd"/>
  			<link field="max_fine_rule" reltype="has_a" key="name" map="" class="crmf"/>
! 			<link field="recuring_fine_rule" reltype="has_a" key="name" map="" class="crrf"/>
  		</links>
  	</class>
  	<class id="msfe" controller="open-ils.cstore" oils_obj:fieldmapper="metabib::subject_field_entry" oils_persist:tablename="metabib.subject_field_entry">
--- 1652,1658 ----
  			<link field="circulation" reltype="might_have" key="id" map="" class="circ"/>
  			<link field="duration_rule" reltype="has_a" key="name" map="" class="crcd"/>
  			<link field="max_fine_rule" reltype="has_a" key="name" map="" class="crmf"/>
! 			<link field="recurring_fine_rule" reltype="has_a" key="name" map="" class="crrf"/>
  		</links>
  	</class>
  	<class id="msfe" controller="open-ils.cstore" oils_obj:fieldmapper="metabib::subject_field_entry" oils_persist:tablename="metabib.subject_field_entry">
***************
*** 1670,1677 ****
  			<link field="field" reltype="has_a" key="id" map="" class="cmf"/>
  		</links>
  	</class>
! 	<class id="crrf" controller="open-ils.cstore" oils_obj:fieldmapper="config::rules::recuring_fine" oils_persist:tablename="config.rule_recuring_fine">
! 		<fields oils_persist:primary="id" oils_persist:sequence="config.rule_recuring_fine_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" />
--- 1670,1677 ----
  			<link field="field" reltype="has_a" key="id" map="" class="cmf"/>
  		</links>
  	</class>
! 	<class id="crrf" controller="open-ils.cstore" oils_obj:fieldmapper="config::rules::recurring_fine" oils_persist:tablename="config.rule_recurring_fine">
! 		<fields oils_persist:primary="id" oils_persist:sequence="config.rule_recurring_fine_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" />
***************
*** 1680,1686 ****
  			<field name="low" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="money" />
  			<field name="name" oils_obj:array_position="6" oils_persist:virtual="false" />
  			<field name="normal" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="money" />
! 			<field name="recurance_interval" oils_obj:array_position="8" oils_persist:virtual="false" />
  		</fields>
  		<links/>
  	</class>
--- 1680,1686 ----
  			<field name="low" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="money" />
  			<field name="name" oils_obj:array_position="6" oils_persist:virtual="false" />
  			<field name="normal" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="money" />
! 			<field name="recurrence_interval" oils_obj:array_position="8" oils_persist:virtual="false" />
  		</fields>
  		<links/>
  	</class>
***************
*** 2105,2111 ****
  			<field reporter:label="Receive Date/Time" name="dest_recv_time" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="timestamp"/>
  			<field reporter:label="Hold requiring Transit" name="hold" oils_obj:array_position="6" oils_persist:virtual="false" />
  			<field reporter:label="Transit ID" name="id" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="id" />
! 			<field reporter:label="Is Persistent?" name="persistant_transfer" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="bool"/>
  			<field reporter:label="Previous Stop" name="prev_hop" oils_obj:array_position="9" oils_persist:virtual="false" />
  			<field reporter:label="Sending Library" name="source" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="org_unit"/>
  			<field reporter:label="Send Date/Time" name="source_send_time" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="timestamp"/>
--- 2105,2111 ----
  			<field reporter:label="Receive Date/Time" name="dest_recv_time" oils_obj:array_position="5" oils_persist:virtual="false" reporter:datatype="timestamp"/>
  			<field reporter:label="Hold requiring Transit" name="hold" oils_obj:array_position="6" oils_persist:virtual="false" />
  			<field reporter:label="Transit ID" name="id" oils_obj:array_position="7" oils_persist:virtual="false" reporter:datatype="id" />
! 			<field reporter:label="Is Persistent?" name="persistent_transfer" oils_obj:array_position="8" oils_persist:virtual="false" reporter:datatype="bool"/>
  			<field reporter:label="Previous Stop" name="prev_hop" oils_obj:array_position="9" oils_persist:virtual="false" />
  			<field reporter:label="Sending Library" name="source" oils_obj:array_position="10" oils_persist:virtual="false" reporter:datatype="org_unit"/>
  			<field reporter:label="Send Date/Time" name="source_send_time" oils_obj:array_position="11" oils_persist:virtual="false" reporter:datatype="timestamp"/>
***************
*** 2256,2262 ****
  			<field name="data" oils_obj:array_position="7" oils_persist:virtual="false" />
  			<field name="folder" oils_obj:array_position="8" oils_persist:virtual="false" />
  			<field name="recur" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="bool"/>
! 			<field name="recurance" oils_obj:array_position="10" oils_persist:virtual="false" />
  			<field name="name" oils_obj:array_position="11" oils_persist:virtual="false" />
  			<field name="description" oils_obj:array_position="12" oils_persist:virtual="false" />
  			<field name="runs" oils_obj:array_position="13" oils_persist:virtual="true" />
--- 2256,2262 ----
  			<field name="data" oils_obj:array_position="7" oils_persist:virtual="false" />
  			<field name="folder" oils_obj:array_position="8" oils_persist:virtual="false" />
  			<field name="recur" oils_obj:array_position="9" oils_persist:virtual="false" reporter:datatype="bool"/>
! 			<field name="recurrence" oils_obj:array_position="10" oils_persist:virtual="false" />
  			<field name="name" oils_obj:array_position="11" oils_persist:virtual="false" />
  			<field name="description" oils_obj:array_position="12" oils_persist:virtual="false" />
  			<field name="runs" oils_obj:array_position="13" oils_persist:virtual="true" />
Index: Open-ILS/src/cgi-bin/circ-rules.cgi
===================================================================
RCS file: /cvs/ILS/Open-ILS/src/cgi-bin/circ-rules.cgi,v
retrieving revision 1.11
diff -c -r1.11 circ-rules.cgi
*** Open-ILS/src/cgi-bin/circ-rules.cgi	12 Sep 2005 22:21:02 -0000	1.11
--- Open-ILS/src/cgi-bin/circ-rules.cgi	21 May 2007 14:17:36 -0000
***************
*** 78,87 ****
  	high			=> "High",
  	normal			=> "Normal",
  	low			=> "Low",
! 	recurance_interval	=> "Interval",
  );
  
! my @fine_display_order = ( qw/name recurance_interval normal high low/ );
  
  my %age_cols = (
  	name	=> "Name",
--- 78,87 ----
  	high			=> "High",
  	normal			=> "Normal",
  	low			=> "Low",
! 	recurrence_interval	=> "Interval",
  );
  
! my @fine_display_order = ( qw/name recurrence_interval normal high low/ );
  
  my %age_cols = (
  	name	=> "Name",
***************
*** 116,128 ****
  				{ map { ($_ => $cgi->param($_)) } keys %dur_cols }
  			);
  		}
! 	} elsif ($form eq 'recuring_fine') {
  		if ($action eq 'Remove Selected') {
  			for my $id ( ($cgi->param('remove_me')) ) {
! 				config::rules::recuring_fine->retrieve($id)->delete;
  			}
  		} elsif ( $action eq 'Add New' ) {
! 			config::rules::recuring_fine->create(
  				{ map { ($_ => $cgi->param($_)) } keys %fine_cols }
  			);
  		}
--- 116,128 ----
  				{ map { ($_ => $cgi->param($_)) } keys %dur_cols }
  			);
  		}
! 	} elsif ($form eq 'recurring_fine') {
  		if ($action eq 'Remove Selected') {
  			for my $id ( ($cgi->param('remove_me')) ) {
! 				config::rules::recurring_fine->retrieve($id)->delete;
  			}
  		} elsif ( $action eq 'Add New' ) {
! 			config::rules::recurring_fine->create(
  				{ map { ($_ => $cgi->param($_)) } keys %fine_cols }
  			);
  		}
***************
*** 192,202 ****
  
  {
  	#-----------------------------------------------------------------------
! 	# Recuring Fine form
  	#-----------------------------------------------------------------------
  	print	"<form method='POST'>".
! 		"<input type='hidden' name='rules_form' value='recuring_fine'>".
! 		"<h2>Recuring Fine Levels</h2>".
  		"<table class='table_class'><tr class='header_class'>\n";
  	
  	for my $col ( @fine_display_order ) {
--- 192,202 ----
  
  {
  	#-----------------------------------------------------------------------
! 	# Recurring Fine form
  	#-----------------------------------------------------------------------
  	print	"<form method='POST'>".
! 		"<input type='hidden' name='rules_form' value='recurring_fine'>".
! 		"<h2>Recurring Fine Levels</h2>".
  		"<table class='table_class'><tr class='header_class'>\n";
  	
  	for my $col ( @fine_display_order ) {
***************
*** 205,211 ****
  	
  	print "<td/>\n";
  	
! 	for my $row ( config::rules::recuring_fine->retrieve_all ) {
  		print "</tr><tr class='row_class'>\n";
  		for my $col ( @fine_display_order ) {
  			print td($row->$col);
--- 205,211 ----
  	
  	print "<td/>\n";
  	
! 	for my $row ( config::rules::recurring_fine->retrieve_all ) {
  		print "</tr><tr class='row_class'>\n";
  		for my $col ( @fine_display_order ) {
  			print td($row->$col);
Index: Open-ILS/src/extras/ils_events.xml
===================================================================
RCS file: /cvs/ILS/Open-ILS/src/extras/ils_events.xml,v
retrieving revision 1.83
diff -c -r1.83 ils_events.xml
*** Open-ILS/src/extras/ils_events.xml	9 Apr 2007 19:40:26 -0000	1.83
--- Open-ILS/src/extras/ils_events.xml	21 May 2007 14:17:38 -0000
***************
*** 452,459 ****
  	<event code='1608' textcode='METABIB_SUBJECT_FIELD_ENTRY_NOT_FOUND'>
  		<desc xml:lang='en-US'>The requested metabib_subject_field_entry was not found</desc>
  	</event>
! 	<event code='1609' textcode='CONFIG_RULES_RECURING_FINE_NOT_FOUND'>
! 		<desc xml:lang='en-US'>The requested config_rules_recuring_fine was not found</desc>
  	</event>
  	<event code='1610' textcode='MONEY_CHECK_PAYMENT_NOT_FOUND'>
  		<desc xml:lang='en-US'>The requested money_check_payment was not found</desc>
--- 452,459 ----
  	<event code='1608' textcode='METABIB_SUBJECT_FIELD_ENTRY_NOT_FOUND'>
  		<desc xml:lang='en-US'>The requested metabib_subject_field_entry was not found</desc>
  	</event>
! 	<event code='1609' textcode='CONFIG_RULES_RECURRING_FINE_NOT_FOUND'>
! 		<desc xml:lang='en-US'>The requested config_rules_recurring_fine was not found</desc>
  	</event>
  	<event code='1610' textcode='MONEY_CHECK_PAYMENT_NOT_FOUND'>
  		<desc xml:lang='en-US'>The requested money_check_payment was not found</desc>
Index: Open-ILS/src/perlmods/OpenILS/Application/AppUtils.pm
===================================================================
RCS file: /cvs/ILS/Open-ILS/src/perlmods/OpenILS/Application/AppUtils.pm,v
retrieving revision 1.95
diff -c -r1.95 AppUtils.pm
*** Open-ILS/src/perlmods/OpenILS/Application/AppUtils.pm	16 Apr 2007 13:19:16 -0000	1.95
--- Open-ILS/src/perlmods/OpenILS/Application/AppUtils.pm	21 May 2007 14:17:45 -0000
***************
*** 806,814 ****
  	my( $obj, $evt );
  	$obj = $self->simplereq(
  		'open-ils.cstore', 
! 		'open-ils.cstore.direct.config.rules.recuring_fine.search.atomic', { name => $name } );
  	$obj = $obj->[0];
! 	$evt = OpenILS::Event->new('CONFIG_RULES_RECURING_FINE_NOT_FOUND') unless $obj;
  	return ($obj, $evt);
  }
  
--- 806,814 ----
  	my( $obj, $evt );
  	$obj = $self->simplereq(
  		'open-ils.cstore', 
! 		'open-ils.cstore.direct.config.rules.recurring_fine.search.atomic', { name => $name } );
  	$obj = $obj->[0];
! 	$evt = OpenILS::Event->new('CONFIG_RULES_RECURRING_FINE_NOT_FOUND') unless $obj;
  	return ($obj, $evt);
  }
  
Index: Open-ILS/src/perlmods/OpenILS/Application/Circ/Circulate.pm
===================================================================
RCS file: /cvs/ILS/Open-ILS/src/perlmods/OpenILS/Application/Circ/Circulate.pm,v
retrieving revision 1.141
diff -c -r1.141 Circulate.pm
*** Open-ILS/src/perlmods/OpenILS/Application/Circ/Circulate.pm	22 Feb 2007 21:47:51 -0000	1.141
--- Open-ILS/src/perlmods/OpenILS/Application/Circ/Circulate.pm	21 May 2007 14:17:50 -0000
***************
*** 1066,1091 ****
          $circ->duration( $duration->extended ) 
              if $copy->loan_duration == OILS_CIRC_DURATION_EXTENDED;
      
!         $circ->recuring_fine( $recurring->low ) 
              if $copy->fine_level == OILS_REC_FINE_LEVEL_LOW;
!         $circ->recuring_fine( $recurring->normal ) 
              if $copy->fine_level == OILS_REC_FINE_LEVEL_NORMAL;
!         $circ->recuring_fine( $recurring->high ) 
              if $copy->fine_level == OILS_REC_FINE_LEVEL_HIGH;
  
          $circ->duration_rule( $duration->name );
!         $circ->recuring_fine_rule( $recurring->name );
          $circ->max_fine_rule( $max->name );
          $circ->max_fine( $max->amount );
  
!         $circ->fine_interval($recurring->recurance_interval);
          $circ->renewal_remaining( $duration->max_renewals );
  
      } else {
  
          $logger->info("circulator: copy found with an unlimited circ duration");
          $circ->duration_rule(OILS_UNLIMITED_CIRC_DURATION);
!         $circ->recuring_fine_rule(OILS_UNLIMITED_CIRC_DURATION);
          $circ->max_fine_rule(OILS_UNLIMITED_CIRC_DURATION);
          $circ->renewal_remaining(0);
      }
--- 1066,1091 ----
          $circ->duration( $duration->extended ) 
              if $copy->loan_duration == OILS_CIRC_DURATION_EXTENDED;
      
!         $circ->recurring_fine( $recurring->low ) 
              if $copy->fine_level == OILS_REC_FINE_LEVEL_LOW;
!         $circ->recurring_fine( $recurring->normal ) 
              if $copy->fine_level == OILS_REC_FINE_LEVEL_NORMAL;
!         $circ->recurring_fine( $recurring->high ) 
              if $copy->fine_level == OILS_REC_FINE_LEVEL_HIGH;
  
          $circ->duration_rule( $duration->name );
!         $circ->recurring_fine_rule( $recurring->name );
          $circ->max_fine_rule( $max->name );
          $circ->max_fine( $max->amount );
  
!         $circ->fine_interval($recurring->recurrence_interval);
          $circ->renewal_remaining( $duration->max_renewals );
  
      } else {
  
          $logger->info("circulator: copy found with an unlimited circ duration");
          $circ->duration_rule(OILS_UNLIMITED_CIRC_DURATION);
!         $circ->recurring_fine_rule(OILS_UNLIMITED_CIRC_DURATION);
          $circ->max_fine_rule(OILS_UNLIMITED_CIRC_DURATION);
          $circ->renewal_remaining(0);
      }
Index: Open-ILS/src/perlmods/OpenILS/Application/Storage/CDBI/action.pm
===================================================================
RCS file: /cvs/ILS/Open-ILS/src/perlmods/OpenILS/Application/Storage/CDBI/action.pm,v
retrieving revision 1.23
diff -c -r1.23 action.pm
*** Open-ILS/src/perlmods/OpenILS/Application/Storage/CDBI/action.pm	25 Aug 2006 14:50:00 -0000	1.23
--- Open-ILS/src/perlmods/OpenILS/Application/Storage/CDBI/action.pm	21 May 2007 14:17:54 -0000
***************
*** 64,70 ****
  __PACKAGE__->columns(Primary => 'id');
  __PACKAGE__->columns(Essential => qw/xact_start usr target_copy circ_lib
  				     duration duration_rule renewal_remaining
! 				     recuring_fine_rule recuring_fine stop_fines
  				     max_fine max_fine_rule fine_interval
  				     stop_fines xact_finish due_date opac_renewal
  				     checkin_staff circ_staff circ_lib checkin_lib
--- 64,70 ----
  __PACKAGE__->columns(Primary => 'id');
  __PACKAGE__->columns(Essential => qw/xact_start usr target_copy circ_lib
  				     duration duration_rule renewal_remaining
! 				     recurring_fine_rule recurring_fine stop_fines
  				     max_fine max_fine_rule fine_interval
  				     stop_fines xact_finish due_date opac_renewal
  				     checkin_staff circ_staff circ_lib checkin_lib
***************
*** 79,85 ****
  __PACKAGE__->columns(Primary => 'id');
  __PACKAGE__->columns(Essential => qw/xact_start usr target_copy circ_lib
  				     duration duration_rule renewal_remaining
! 				     recuring_fine_rule recuring_fine stop_fines
  				     max_fine max_fine_rule fine_interval
  				     stop_fines xact_finish due_date opac_renewal
  				     checkin_staff circ_staff circ_lib checkin_lib
--- 79,85 ----
  __PACKAGE__->columns(Primary => 'id');
  __PACKAGE__->columns(Essential => qw/xact_start usr target_copy circ_lib
  				     duration duration_rule renewal_remaining
! 				     recurring_fine_rule recurring_fine stop_fines
  				     max_fine max_fine_rule fine_interval
  				     stop_fines xact_finish due_date opac_renewal
  				     checkin_staff circ_staff circ_lib checkin_lib
***************
*** 121,127 ****
  use base qw/action/;
  __PACKAGE__->table('action_hold_transit_copy');
  __PACKAGE__->columns(Primary => 'id');
! __PACKAGE__->columns(Essential => qw/source dest persistant_transfer target_copy
  				     source_send_time dest_recv_time prev_hop
  				     copy_status hold/);
  
--- 121,127 ----
  use base qw/action/;
  __PACKAGE__->table('action_hold_transit_copy');
  __PACKAGE__->columns(Primary => 'id');
! __PACKAGE__->columns(Essential => qw/source dest persistent_transfer target_copy
  				     source_send_time dest_recv_time prev_hop
  				     copy_status hold/);
  
***************
*** 131,137 ****
  use base qw/action/;
  __PACKAGE__->table('action_transit_copy');
  __PACKAGE__->columns(Primary => 'id');
! __PACKAGE__->columns(Essential => qw/source dest persistant_transfer target_copy
  				     source_send_time dest_recv_time prev_hop
  				     copy_status/);
  
--- 131,137 ----
  use base qw/action/;
  __PACKAGE__->table('action_transit_copy');
  __PACKAGE__->columns(Primary => 'id');
! __PACKAGE__->columns(Essential => qw/source dest persistent_transfer target_copy
  				     source_send_time dest_recv_time prev_hop
  				     copy_status/);
  
Index: Open-ILS/src/perlmods/OpenILS/Application/Storage/CDBI/config.pm
===================================================================
RCS file: /cvs/ILS/Open-ILS/src/perlmods/OpenILS/Application/Storage/CDBI/config.pm,v
retrieving revision 1.21
diff -c -r1.21 config.pm
*** Open-ILS/src/perlmods/OpenILS/Application/Storage/CDBI/config.pm	7 Mar 2007 18:56:52 -0000	1.21
--- Open-ILS/src/perlmods/OpenILS/Application/Storage/CDBI/config.pm	21 May 2007 14:17:54 -0000
***************
*** 55,65 ****
  __PACKAGE__->columns(Essential => qw/name amount/);
  #-------------------------------------------------------------------------------
  
! package config::rules::recuring_fine;
  use base qw/config/;
! __PACKAGE__->table('config_rule_recuring_fine');
  __PACKAGE__->columns(Primary => 'id');
! __PACKAGE__->columns(Essential => qw/name high normal low recurance_interval/);
  #-------------------------------------------------------------------------------
  
  package config::rules::age_hold_protect;
--- 55,65 ----
  __PACKAGE__->columns(Essential => qw/name amount/);
  #-------------------------------------------------------------------------------
  
! package config::rules::recurring_fine;
  use base qw/config/;
! __PACKAGE__->table('config_rule_recurring_fine');
  __PACKAGE__->columns(Primary => 'id');
! __PACKAGE__->columns(Essential => qw/name high normal low recurrence_interval/);
  #-------------------------------------------------------------------------------
  
  package config::rules::age_hold_protect;
Index: Open-ILS/src/perlmods/OpenILS/Application/Storage/Driver/Pg/dbi.pm
===================================================================
RCS file: /cvs/ILS/Open-ILS/src/perlmods/OpenILS/Application/Storage/Driver/Pg/dbi.pm,v
retrieving revision 1.47
diff -c -r1.47 dbi.pm
*** Open-ILS/src/perlmods/OpenILS/Application/Storage/Driver/Pg/dbi.pm	5 Sep 2006 10:16:44 -0000	1.47
--- Open-ILS/src/perlmods/OpenILS/Application/Storage/Driver/Pg/dbi.pm	21 May 2007 14:17:55 -0000
***************
*** 232,241 ****
  	config::rules::max_fine->sequence( 'config.rule_max_fine_id_seq' );
  	
  	#---------------------------------------------------------------------
! 	package config::rules::recuring_fine;
  	
! 	config::rules::recuring_fine->table( 'config.rule_recuring_fine' );
! 	config::rules::recuring_fine->sequence( 'config.rule_recuring_fine_id_seq' );
  	
  	#---------------------------------------------------------------------
  	package config::net_access_level;
--- 232,241 ----
  	config::rules::max_fine->sequence( 'config.rule_max_fine_id_seq' );
  	
  	#---------------------------------------------------------------------
! 	package config::rules::recurring_fine;
  	
! 	config::rules::recurring_fine->table( 'config.rule_recurring_fine' );
! 	config::rules::recurring_fine->sequence( 'config.rule_recurring_fine_id_seq' );
  	
  	#---------------------------------------------------------------------
  	package config::net_access_level;
Index: Open-ILS/src/perlmods/OpenILS/Application/Storage/Publisher/action.pm
===================================================================
RCS file: /cvs/ILS/Open-ILS/src/perlmods/OpenILS/Application/Storage/Publisher/action.pm,v
retrieving revision 1.87
diff -c -r1.87 action.pm
*** Open-ILS/src/perlmods/OpenILS/Application/Storage/Publisher/action.pm	30 Apr 2007 20:20:40 -0000	1.87
--- Open-ILS/src/perlmods/OpenILS/Application/Storage/Publisher/action.pm	21 May 2007 14:17:58 -0000
***************
*** 598,604 ****
  	
  			$client->respond( "\t$pending_fine_count pending fine(s)\n" );
  
! 			my $recuring_fine = int($c->recuring_fine * 100);
  			my $max_fine = int($c->max_fine * 100);
  
  			my ($latest_billing_ts, $latest_amount) = ('',0);
--- 598,604 ----
  	
  			$client->respond( "\t$pending_fine_count pending fine(s)\n" );
  
! 			my $recurring_fine = int($c->recurring_fine * 100);
  			my $max_fine = int($c->max_fine * 100);
  
  			my ($latest_billing_ts, $latest_amount) = ('',0);
***************
*** 631,645 ****
  				);
  				next if (@cl);
  	
! 				$current_fine_total += $recuring_fine;
! 				$latest_amount += $recuring_fine;
  				$latest_billing_ts = $timestamptz;
  
  				money::billing->create(
  					{ xact		=> ''.$c->id,
  					  note		=> "System Generated Overdue Fine",
  					  billing_type	=> "Overdue materials",
! 					  amount	=> sprintf('%0.2f', $recuring_fine/100),
  					  billing_ts	=> $timestamptz,
  					}
  				);
--- 631,645 ----
  				);
  				next if (@cl);
  	
! 				$current_fine_total += $recurring_fine;
! 				$latest_amount += $recurring_fine;
  				$latest_billing_ts = $timestamptz;
  
  				money::billing->create(
  					{ xact		=> ''.$c->id,
  					  note		=> "System Generated Overdue Fine",
  					  billing_type	=> "Overdue materials",
! 					  amount	=> sprintf('%0.2f', $recurring_fine/100),
  					  billing_ts	=> $timestamptz,
  					}
  				);
Index: Open-ILS/src/reporter/clark-kent.pl
===================================================================
RCS file: /cvs/ILS/Open-ILS/src/reporter/clark-kent.pl,v
retrieving revision 1.25
diff -c -r1.25 clark-kent.pl
*** Open-ILS/src/reporter/clark-kent.pl	23 Feb 2007 01:06:18 -0000	1.25
--- Open-ILS/src/reporter/clark-kent.pl	21 May 2007 14:18:02 -0000
***************
*** 227,233 ****
  				$r->{folder},
  				$r->{runner},
  				$r->{run_time},
! 				$r->{report}->{recurance},
  				$r->{email},
  				$r->{csv_format},
  				$r->{excel_format},
--- 227,233 ----
  				$r->{folder},
  				$r->{runner},
  				$r->{run_time},
! 				$r->{report}->{recurrence},
  				$r->{email},
  				$r->{csv_format},
  				$r->{excel_format},
Index: Open-ILS/src/sql/Pg/002.schema.config.sql
===================================================================
RCS file: /cvs/ILS/Open-ILS/src/sql/Pg/002.schema.config.sql,v
retrieving revision 1.23
diff -c -r1.23 002.schema.config.sql
*** Open-ILS/src/sql/Pg/002.schema.config.sql	25 Apr 2007 14:07:09 -0000	1.23
--- Open-ILS/src/sql/Pg/002.schema.config.sql	21 May 2007 14:18:05 -0000
***************
*** 77,83 ****
   *
   * This table contains the values that can be applied to a patron
   * by a staff member.  These values should not be changed, other
!  * that for translation, as the ID column is currently a "magic
   * number" in the source. :(
   *
   * ****
--- 77,83 ----
   *
   * This table contains the values that can be applied to a patron
   * by a staff member.  These values should not be changed, other
!  * than for translation, as the ID column is currently a "magic
   * number" in the source. :(
   *
   * ****
***************
*** 315,337 ****
  INSERT INTO config.rule_max_fine VALUES (DEFAULT, 'overdue_equip_max', 100.00);
  
  
! CREATE TABLE config.rule_recuring_fine (
  	id			SERIAL		PRIMARY KEY,
  	name			TEXT		NOT NULL UNIQUE CHECK ( name ~ '^\\w+$' ),
  	high			NUMERIC(6,2)	NOT NULL,
  	normal			NUMERIC(6,2)	NOT NULL,
  	low			NUMERIC(6,2)	NOT NULL,
! 	recurance_interval	INTERVAL	NOT NULL DEFAULT '1 day'::INTERVAL
  );
! COMMENT ON TABLE config.rule_recuring_fine IS $$
  /*
   * Copyright (C) 2005  Georgia Public Library Service 
   * Mike Rylander <mrylander at gmail.com>
   *
!  * Circulation Recuring Fine rules
   *
!  * Each circulation is given a recuring fine amount based on one of
!  * these rules.  The recurance_interval should not be any shorter
   * than the interval between runs of the fine_processor.pl script
   * (which is run from CRON), or you could miss fines.
   * 
--- 315,337 ----
  INSERT INTO config.rule_max_fine VALUES (DEFAULT, 'overdue_equip_max', 100.00);
  
  
! CREATE TABLE config.rule_recurring_fine (
  	id			SERIAL		PRIMARY KEY,
  	name			TEXT		NOT NULL UNIQUE CHECK ( name ~ '^\\w+$' ),
  	high			NUMERIC(6,2)	NOT NULL,
  	normal			NUMERIC(6,2)	NOT NULL,
  	low			NUMERIC(6,2)	NOT NULL,
! 	recurrence_interval	INTERVAL	NOT NULL DEFAULT '1 day'::INTERVAL
  );
! COMMENT ON TABLE config.rule_recurring_fine IS $$
  /*
   * Copyright (C) 2005  Georgia Public Library Service 
   * Mike Rylander <mrylander at gmail.com>
   *
!  * Circulation Recurring Fine rules
   *
!  * Each circulation is given a recurring fine amount based on one of
!  * these rules.  The recurrence_interval should not be any shorter
   * than the interval between runs of the fine_processor.pl script
   * (which is run from CRON), or you could miss fines.
   * 
***************
*** 350,358 ****
   */
  $$;
  
! INSERT INTO config.rule_recuring_fine VALUES (DEFAULT, 'default', 0.50, 0.10, 0.05, '1 day');
! INSERT INTO config.rule_recuring_fine VALUES (DEFAULT, '10_cent_per_day', 0.50, 0.10, 0.10, '1 day');
! INSERT INTO config.rule_recuring_fine VALUES (DEFAULT, '50_cent_per_day', 0.50, 0.50, 0.50, '1 day');
  
  
  CREATE TABLE config.rule_age_hold_protect (
--- 350,358 ----
   */
  $$;
  
! INSERT INTO config.rule_recurring_fine VALUES (DEFAULT, 'default', 0.50, 0.10, 0.05, '1 day');
! INSERT INTO config.rule_recurring_fine VALUES (DEFAULT, '10_cent_per_day', 0.50, 0.10, 0.10, '1 day');
! INSERT INTO config.rule_recurring_fine VALUES (DEFAULT, '50_cent_per_day', 0.50, 0.50, 0.50, '1 day');
  
  
  CREATE TABLE config.rule_age_hold_protect (
***************
*** 408,414 ****
   * The available copy statuses, and whether a copy in that
   * status is available for hold request capture.  0 (zero) is
   * the only special number in this set, meaning that the item
!  * is available for imediate checkout, and is counted as available
   * in the OPAC.
   *
   * Statuses with an ID below 100 are not removable, and have special
--- 408,414 ----
   * The available copy statuses, and whether a copy in that
   * status is available for hold request capture.  0 (zero) is
   * the only special number in this set, meaning that the item
!  * is available for immediate checkout, and is counted as available
   * in the OPAC.
   *
   * Statuses with an ID below 100 are not removable, and have special
***************
*** 417,423 ****
   *
   * You may add and remove statuses above 100, and these can be used
   * to remove items from normal circulation without affecting the rest
!  * of the copy's values or it's location.
   *
   * ****
   *
--- 417,423 ----
   *
   * You may add and remove statuses above 100, and these can be used
   * to remove items from normal circulation without affecting the rest
!  * of the copy's values or its location.
   *
   * ****
   *
***************
*** 491,497 ****
  );
  
  COPY config.audience_map FROM STDIN;
!  	Unknown or unspecified	The target audience for the item not known or not specified.
  a	Preschool	The item is intended for children, approximate ages 0-5 years.
  b	Primary	The item is intended for children, approximate ages 6-8 years.
  c	Pre-adolescent	The item is intended for young people, approximate ages 9-13 years.
--- 491,497 ----
  );
  
  COPY config.audience_map FROM STDIN;
!  	Unknown or unspecified	The target audience for the item is not known or not specified.
  a	Preschool	The item is intended for children, approximate ages 0-5 years.
  b	Primary	The item is intended for children, approximate ages 6-8 years.
  c	Pre-adolescent	The item is intended for young people, approximate ages 9-13 years.
Index: Open-ILS/src/sql/Pg/005.schema.actors.sql
===================================================================
RCS file: /cvs/ILS/Open-ILS/src/sql/Pg/005.schema.actors.sql,v
retrieving revision 1.21
diff -c -r1.21 005.schema.actors.sql
*** Open-ILS/src/sql/Pg/005.schema.actors.sql	21 Feb 2007 20:10:11 -0000	1.21
--- Open-ILS/src/sql/Pg/005.schema.actors.sql	21 May 2007 14:18:05 -0000
***************
*** 221,230 ****
   * Copyright (C) 2005  Georgia Public Library Service 
   * Mike Rylander <mrylander at gmail.com>
   *
!  * User Statistical Catagories
   *
   * Local data collected about Users is placed into a Statistical
!  * Catagory.  Here's where those catagories are defined.
   *
   * ****
   *
--- 221,230 ----
   * Copyright (C) 2005  Georgia Public Library Service 
   * Mike Rylander <mrylander at gmail.com>
   *
!  * User Statistical Categories
   *
   * Local data collected about Users is placed into a Statistical
!  * Category.  Here's where those categories are defined.
   *
   * ****
   *
***************
*** 253,263 ****
   * Copyright (C) 2005  Georgia Public Library Service 
   * Mike Rylander <mrylander at gmail.com>
   *
!  * User Statistical Catagory Entries
   *
   * Local data collected about Users is placed into a Statistical
!  * Catagory.  Each library can create entries into any of it's own
!  * stat_cats, it's anscestors stat_cats, or it's descendants' stat_cats.
   *
   *
   * ****
--- 253,263 ----
   * Copyright (C) 2005  Georgia Public Library Service 
   * Mike Rylander <mrylander at gmail.com>
   *
!  * User Statistical Category Entries
   *
   * Local data collected about Users is placed into a Statistical
!  * Category.  Each library can create entries into any of its own
!  * stat_cats, its ancestors' stat_cats, or its descendants' stat_cats.
   *
   *
   * ****
***************
*** 287,293 ****
   * Copyright (C) 2005  Georgia Public Library Service 
   * Mike Rylander <mrylander at gmail.com>
   *
!  * Statistical Catagory Entry to User map
   *
   * Records the stat_cat entries for each user.
   *
--- 287,293 ----
   * Copyright (C) 2005  Georgia Public Library Service 
   * Mike Rylander <mrylander at gmail.com>
   *
!  * Statistical Category Entry to User map
   *
   * Records the stat_cat entries for each user.
   *
Index: Open-ILS/src/sql/Pg/040.schema.asset.sql
===================================================================
RCS file: /cvs/ILS/Open-ILS/src/sql/Pg/040.schema.asset.sql,v
retrieving revision 1.18
diff -c -r1.18 040.schema.asset.sql
*** Open-ILS/src/sql/Pg/040.schema.asset.sql	28 Aug 2006 23:25:29 -0000	1.18
--- Open-ILS/src/sql/Pg/040.schema.asset.sql	21 May 2007 14:18:06 -0000
***************
*** 66,77 ****
  	CONSTRAINT scte_name_once_per_lib UNIQUE (owner,name)
  );
  
! CREATE TABLE asset.copy_tranparency_map (
  	id		BIGSERIAL	PRIMARY KEY,
! 	tansparency	INT	NOT NULL REFERENCES asset.copy_transparency (id),
  	target_copy	INT	NOT NULL UNIQUE REFERENCES asset.copy (id)
  );
! CREATE INDEX cp_tr_cp_idx ON asset.copy_tranparency_map (tansparency);
  
  CREATE TABLE asset.stat_cat_entry_transparency_map (
  	id			BIGSERIAL	PRIMARY KEY,
--- 66,77 ----
  	CONSTRAINT scte_name_once_per_lib UNIQUE (owner,name)
  );
  
! CREATE TABLE asset.copy_transparency_map (
  	id		BIGSERIAL	PRIMARY KEY,
! 	transparency	INT	NOT NULL REFERENCES asset.copy_transparency (id),
  	target_copy	INT	NOT NULL UNIQUE REFERENCES asset.copy (id)
  );
! CREATE INDEX cp_tr_cp_idx ON asset.copy_transparency_map (transparency);
  
  CREATE TABLE asset.stat_cat_entry_transparency_map (
  	id			BIGSERIAL	PRIMARY KEY,
Index: Open-ILS/src/sql/Pg/090.schema.action.sql
===================================================================
RCS file: /cvs/ILS/Open-ILS/src/sql/Pg/090.schema.action.sql,v
retrieving revision 1.24
diff -c -r1.24 090.schema.action.sql
*** Open-ILS/src/sql/Pg/090.schema.action.sql	12 Jan 2007 05:58:16 -0000	1.24
--- Open-ILS/src/sql/Pg/090.schema.action.sql	21 May 2007 14:18:06 -0000
***************
*** 91,103 ****
  	checkin_time		TIMESTAMP WITH TIME ZONE,
  	duration		INTERVAL,				  -- derived from "circ duration" rule
  	fine_interval		INTERVAL			NOT NULL DEFAULT '1 day'::INTERVAL, -- derived from "circ fine" rule
! 	recuring_fine		NUMERIC(6,2),				  -- derived from "circ fine" rule
  	max_fine		NUMERIC(6,2),				  -- derived from "max fine" rule
  	phone_renewal		BOOL				NOT NULL DEFAULT FALSE,
  	desk_renewal		BOOL				NOT NULL DEFAULT FALSE,
  	opac_renewal		BOOL				NOT NULL DEFAULT FALSE,
  	duration_rule		TEXT				NOT NULL, -- name of "circ duration" rule
! 	recuring_fine_rule	TEXT				NOT NULL, -- name of "circ fine" rule
  	max_fine_rule		TEXT				NOT NULL, -- name of "max fine" rule
  	stop_fines		TEXT				CHECK (stop_fines IN ('CHECKIN','CLAIMSRETURNED','LOST','MAXFINES','RENEW','LONGOVERDUE'))
  ) INHERITS (money.billable_xact);
--- 91,103 ----
  	checkin_time		TIMESTAMP WITH TIME ZONE,
  	duration		INTERVAL,				  -- derived from "circ duration" rule
  	fine_interval		INTERVAL			NOT NULL DEFAULT '1 day'::INTERVAL, -- derived from "circ fine" rule
! 	recurring_fine		NUMERIC(6,2),				  -- derived from "circ fine" rule
  	max_fine		NUMERIC(6,2),				  -- derived from "max fine" rule
  	phone_renewal		BOOL				NOT NULL DEFAULT FALSE,
  	desk_renewal		BOOL				NOT NULL DEFAULT FALSE,
  	opac_renewal		BOOL				NOT NULL DEFAULT FALSE,
  	duration_rule		TEXT				NOT NULL, -- name of "circ duration" rule
! 	recurring_fine_rule	TEXT				NOT NULL, -- name of "circ fine" rule
  	max_fine_rule		TEXT				NOT NULL, -- name of "max fine" rule
  	stop_fines		TEXT				CHECK (stop_fines IN ('CHECKIN','CLAIMSRETURNED','LOST','MAXFINES','RENEW','LONGOVERDUE'))
  ) INHERITS (money.billable_xact);
***************
*** 216,222 ****
  	dest			INT				NOT NULL REFERENCES actor.org_unit (id),
  	prev_hop		INT				REFERENCES action.transit_copy (id),
  	copy_status		INT				NOT NULL REFERENCES config.copy_status (id),
! 	persistant_transfer	BOOL				NOT NULL DEFAULT FALSE
  );
  CREATE INDEX active_transit_dest_idx ON "action".transit_copy (dest); 
  CREATE INDEX active_transit_source_idx ON "action".transit_copy (source);
--- 216,222 ----
  	dest			INT				NOT NULL REFERENCES actor.org_unit (id),
  	prev_hop		INT				REFERENCES action.transit_copy (id),
  	copy_status		INT				NOT NULL REFERENCES config.copy_status (id),
! 	persistent_transfer	BOOL				NOT NULL DEFAULT FALSE
  );
  CREATE INDEX active_transit_dest_idx ON "action".transit_copy (dest); 
  CREATE INDEX active_transit_source_idx ON "action".transit_copy (source);
Index: Open-ILS/src/sql/Pg/reporter-schema.sql
===================================================================
RCS file: /cvs/ILS/Open-ILS/src/sql/Pg/reporter-schema.sql,v
retrieving revision 1.13
diff -c -r1.13 reporter-schema.sql
*** Open-ILS/src/sql/Pg/reporter-schema.sql	12 Jan 2007 17:56:59 -0000	1.13
--- Open-ILS/src/sql/Pg/reporter-schema.sql	21 May 2007 14:18:07 -0000
***************
*** 67,73 ****
  	data		TEXT				NOT NULL,
  	folder		INT				NOT NULL REFERENCES reporter.report_folder (id),
  	recur		BOOL				NOT NULL DEFAULT FALSE,
! 	recurance	INTERVAL
  );
  CREATE INDEX rpt_rpt_owner_idx ON reporter.report (owner);
  CREATE INDEX rpt_rpt_fldr_idx ON reporter.report (folder);
--- 67,73 ----
  	data		TEXT				NOT NULL,
  	folder		INT				NOT NULL REFERENCES reporter.report_folder (id),
  	recur		BOOL				NOT NULL DEFAULT FALSE,
! 	recurrence	INTERVAL
  );
  CREATE INDEX rpt_rpt_owner_idx ON reporter.report (owner);
  CREATE INDEX rpt_rpt_fldr_idx ON reporter.report (folder);
Index: Open-ILS/web/opac/common/js/fm_table_conf.js
===================================================================
RCS file: /cvs/ILS/Open-ILS/web/opac/common/js/fm_table_conf.js,v
retrieving revision 1.8
diff -c -r1.8 fm_table_conf.js
*** Open-ILS/web/opac/common/js/fm_table_conf.js	2 Oct 2006 14:14:07 -0000	1.8
--- Open-ILS/web/opac/common/js/fm_table_conf.js	21 May 2007 14:18:09 -0000
***************
*** 84,90 ****
  			'template',
  			'create_time',
  			'recur',
! 			'recurance',
  			'owner',
  		]
  	},
--- 84,90 ----
  			'template',
  			'create_time',
  			'recur',
! 			'recurrence',
  			'owner',
  		]
  	},
Index: Open-ILS/web/reports/oils_rpt_report_editor.js
===================================================================
RCS file: /cvs/ILS/Open-ILS/web/reports/oils_rpt_report_editor.js,v
retrieving revision 1.21
diff -c -r1.21 oils_rpt_report_editor.js
*** Open-ILS/web/reports/oils_rpt_report_editor.js	16 May 2007 18:00:41 -0000	1.21
--- Open-ILS/web/reports/oils_rpt_report_editor.js	21 May 2007 14:18:17 -0000
***************
*** 78,84 ****
  	report.name( DOM.oils_rpt_report_editor_name.value );
  	report.description( DOM.oils_rpt_report_editor_desc.value );
  	report.recur(this.paramEditor.recur());
! 	report.recurance(this.paramEditor.recurInterval());
  
  
  	/* collect the param data */
--- 78,84 ----
  	report.name( DOM.oils_rpt_report_editor_name.value );
  	report.description( DOM.oils_rpt_report_editor_desc.value );
  	report.recur(this.paramEditor.recur());
! 	report.recurrence(this.paramEditor.recurInterval());
  
  
  	/* collect the param data */
Index: Open-ILS/xul/staff_client/chrome/content/OpenILS/data.js
===================================================================
RCS file: /cvs/ILS/Open-ILS/xul/staff_client/chrome/content/OpenILS/data.js,v
retrieving revision 1.48
diff -c -r1.48 data.js
*** Open-ILS/xul/staff_client/chrome/content/OpenILS/data.js	6 May 2007 09:00:06 -0000	1.48
--- Open-ILS/xul/staff_client/chrome/content/OpenILS/data.js	21 May 2007 14:18:27 -0000
***************
*** 46,52 ****
  
  	},
  
! 	// This should be invoked only once per application, in a persistant window
  	'init_observer_functions' : function() {
  		try {
  			var obj = this;				// OpenILS.data
--- 46,52 ----
  
  	},
  
! 	// This should be invoked only once per application, in a persistent window
  	'init_observer_functions' : function() {
  		try {
  			var obj = this;				// OpenILS.data


More information about the Open-ils-dev mailing list