From 21816e12d1f45b94d918a39eb8285db04ee81860 Mon Sep 17 00:00:00 2001 From: miker Date: Sun, 1 Mar 2009 20:10:55 +0000 Subject: [PATCH] adding controller intellegence to Fieldmapper.pm and Event.pm 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 | 6 +++++- Open-ILS/src/perlmods/OpenILS/Utils/Fieldmapper.pm | 6 ++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/Open-ILS/src/perlmods/OpenILS/Application/Trigger/Event.pm b/Open-ILS/src/perlmods/OpenILS/Application/Trigger/Event.pm index e237a3b345..d3dc043a9b 100644 --- a/Open-ILS/src/perlmods/OpenILS/Application/Trigger/Event.pm +++ b/Open-ILS/src/perlmods/OpenILS/Application/Trigger/Event.pm @@ -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) { diff --git a/Open-ILS/src/perlmods/OpenILS/Utils/Fieldmapper.pm b/Open-ILS/src/perlmods/OpenILS/Utils/Fieldmapper.pm index c744ca4be5..5ce878d2dd 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}{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; -- 2.11.0