adding controller intellegence to Fieldmapper.pm and Event.pm
authormiker <miker@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Sun, 1 Mar 2009 20:10:55 +0000 (20:10 +0000)
committermiker <miker@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Sun, 1 Mar 2009 20:10:55 +0000 (20:10 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@12335 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/src/perlmods/OpenILS/Application/Trigger/Event.pm
Open-ILS/src/perlmods/OpenILS/Utils/Fieldmapper.pm

index e237a3b..d3dc043 100644 (file)
@@ -428,7 +428,11 @@ sub _object_by_path {
     $meth =~ s/Fieldmapper:://;
     $meth =~ s/::/_/;
 
-    my $obj = $self->editor->$meth( 
+    my $ed = grep( /open-ils.cstore/, @{$fclass->Controller} ) ?
+            $self->editor :
+            new_rstore_editor();
+
+    my $obj = $ed->$meth( 
         ($multi) ? { $ffield => $context->$lfield() } : $context->$lfield() );
 
     if (@$path) {
index c744ca4..5ce878d 100644 (file)
@@ -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}{controller} = [ split ' ', $idl->{$c}{'controller'} ];
                $$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'};
@@ -192,6 +193,11 @@ sub Table {
        return $$fieldmap{$self->class_name}{table};
 }
 
+sub Controller {
+       my $self = shift;
+       return $$fieldmap{$self->class_name}{controller};
+}
+
 sub class_name {
        my $class_name = shift;
        return ref($class_name) || $class_name;