From: miker Date: Fri, 6 Feb 2009 15:05:41 +0000 (+0000) Subject: teaching everyone how to note the pkey delete restriction policy for specific classes X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=35e0f8021f352c8bd10f600c803440d29b4ac8a1;p=evergreen%2Ftadl.git teaching everyone how to note the pkey delete restriction policy for specific classes git-svn-id: svn://svn.open-ils.org/ILS/trunk@12091 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- diff --git a/Open-ILS/examples/fm_IDL.xml b/Open-ILS/examples/fm_IDL.xml index 5edc7a37a2..94ce1ec4e6 100644 --- a/Open-ILS/examples/fm_IDL.xml +++ b/Open-ILS/examples/fm_IDL.xml @@ -1964,7 +1964,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA - + @@ -1984,7 +1984,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA - + @@ -3641,7 +3641,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA - + @@ -3776,7 +3776,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA - + diff --git a/Open-ILS/src/c-apps/dump_idl.c b/Open-ILS/src/c-apps/dump_idl.c index 3c8c36017e..efeee4503c 100644 --- a/Open-ILS/src/c-apps/dump_idl.c +++ b/Open-ILS/src/c-apps/dump_idl.c @@ -141,6 +141,8 @@ static void dump_class( osrfHash* class_hash, const char* class_name ) printf( "%s%s: %s\n", indent, attr_name, (char*) class_attr ); else if( !strcmp( attr_name, "tablename" ) ) printf( "%s%s: %s\n", indent, attr_name, (char*) class_attr ); + else if( !strcmp( attr_name, "restrict_primary" ) ) + printf( "%s%s: %s\n", indent, attr_name, (char*) class_attr ); else if( !strcmp( attr_name, "virtual" ) ) printf( "%s%s: %s\n", indent, attr_name, (char*) class_attr ); else if( !strcmp( attr_name, "controller" ) ) diff --git a/Open-ILS/src/c-apps/oils_idl-core.c b/Open-ILS/src/c-apps/oils_idl-core.c index f1b8b42ad3..6d511e5bab 100644 --- a/Open-ILS/src/c-apps/oils_idl-core.c +++ b/Open-ILS/src/c-apps/oils_idl-core.c @@ -66,6 +66,15 @@ osrfHash* oilsIDLInit( const char* idl_filename ) { ); } + if ((prop_str = (char*)xmlGetNsProp(kid, BAD_CAST "restrict_primary", BAD_CAST PERSIST_NS))) { + osrfLogDebug(OSRF_LOG_MARK, "Delete restriction policy set at '%s' for pkey of class %s", prop_str, current_class_name ); + osrfHashSet( + class_def_hash, + strdup( prop_str ), + "restrict_primary" + ); + } + if ((prop_str = (char*)xmlGetNsProp(kid, BAD_CAST "virtual", BAD_CAST PERSIST_NS))) { osrfHashSet( class_def_hash, diff --git a/Open-ILS/src/perlmods/OpenILS/Utils/Fieldmapper.pm b/Open-ILS/src/perlmods/OpenILS/Utils/Fieldmapper.pm index 3a6c58a526..c744ca4be5 100644 --- a/Open-ILS/src/perlmods/OpenILS/Utils/Fieldmapper.pm +++ b/Open-ILS/src/perlmods/OpenILS/Utils/Fieldmapper.pm @@ -59,6 +59,7 @@ sub import { $$fieldmap{$n}{hint} = $c; $$fieldmap{$n}{virtual} = ($idl->{$c}{'oils_persist:virtual'} && $idl->{$c}{'oils_persist:virtual'} eq 'true') ? 1 : 0; $$fieldmap{$n}{table} = $idl->{$c}{'oils_persist:tablename'}; + $$fieldmap{$n}{restrict_primary} = $idl->{$c}{'oils_persist:restrict_primary'}; $$fieldmap{$n}{sequence} = $idl->{$c}{fields}{'oils_persist:sequence'}; $$fieldmap{$n}{identity} = $idl->{$c}{fields}{'oils_persist:primary'}; @@ -176,6 +177,11 @@ sub Identity { return $$fieldmap{$self->class_name}{identity}; } +sub RestrictPrimary { + my $self = shift; + return $$fieldmap{$self->class_name}{restrict_primary}; +} + sub Sequence { my $self = shift; return $$fieldmap{$self->class_name}{sequence}; diff --git a/Open-ILS/web/js/dojo/fieldmapper/IDL.js b/Open-ILS/web/js/dojo/fieldmapper/IDL.js index 95aed1fbf7..3a0a3f4fd9 100644 --- a/Open-ILS/web/js/dojo/fieldmapper/IDL.js +++ b/Open-ILS/web/js/dojo/fieldmapper/IDL.js @@ -48,6 +48,7 @@ if(!dojo._hasResource["fieldmapper.IDL"]) { //table : node.getAttributeNS(this.NS_PERSIST, 'tablename'), //core : node.getAttributeNS(this.NS_REPORTS, 'core'), label : node.getAttributeNS(this.NS_REPORTS, 'label'), + restrict_primary : node.getAttributeNS(this.NS_PERSIST, 'restrict_primary'), virtual : (node.getAttributeNS(this.NS_PERSIST, 'virtual') == 'true'), pkey : fields.getAttributeNS(this.NS_PERSIST, 'primary') };