X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=lib%2FMaypole%2FModel%2FCDBI%2FBase.pm;h=6ecc213ac15419d09ba16f028b2a12c69812561d;hb=fe502daa5fcf39d01c38823dbf169199d1a50e99;hp=a7e7d97cf61044861ded5e22724c50d8d1ab3744;hpb=dcc33148f1b562834e16f658e34270f3f581833c;p=maypole.git diff --git a/lib/Maypole/Model/CDBI/Base.pm b/lib/Maypole/Model/CDBI/Base.pm index a7e7d97..6ecc213 100644 --- a/lib/Maypole/Model/CDBI/Base.pm +++ b/lib/Maypole/Model/CDBI/Base.pm @@ -125,7 +125,7 @@ sub _do_update_or_create { # update or create if ($obj) { # We have something to edit - eval { $obj->update_from_cgi( $r => { + eval { $obj->update_from_cgi( $h => { required => $required_cols, ignore => $ignored_cols, }); @@ -134,7 +134,7 @@ sub _do_update_or_create { $fatal = $@; } else { eval { - $obj = $self->create_from_cgi( $r => { + $obj = $self->create_from_cgi( $h => { required => $required_cols, ignore => $ignored_cols, } ); @@ -145,6 +145,19 @@ sub _do_update_or_create { return $obj, $fatal, $creating; } +=head2 view + +This command shows the object using the view factory template. + +=cut + +sub view : Exported { + my ($self, $r) = @_; + $r->build_form_elements(0); + return; +} + + =head2 delete Deprecated method that calls do_delete or a given classes delete method, please @@ -166,11 +179,12 @@ sub delete : Exported { if ($1 ne "Maypole::Model::Base" && $2 ne "delete") { $self->SUPER::delete(@_); } else { - warn "Maypole::Model::CDBI delete method is deprecated\n"; + warn "Maypole::Model::CDBI::Base delete method is deprecated\n"; $self->do_delete(@_); } } + sub do_delete { my ( $self, $r ) = @_; # FIXME: handle fatal error with exception @@ -217,6 +231,9 @@ sub do_search : Exported { if ( !%values ) { return $self->list($r) } my $order = $self->order($r); $self = $self->do_pager($r); + + # FIXME: use pager info to get slice of iterator instead of all the objects as array + $r->objects( [ $self->search_where( @@ -307,6 +324,21 @@ sub related_class { } } +=head2 search_columns + + $class->search_columns; + +Returns a list of columns suitable for searching - used in factory templates, over-ridden in +classes. Provides same list as display_columns unless over-ridden. + +=cut + +sub search_columns { + my $class = shift; + return $class->display_columns; +} + + =head2 related_meta $class->related_meta($col); @@ -727,7 +759,7 @@ sub get_classmetadata { =head1 SEE ALSO -L, L. +L, L. =head1 AUTHOR