X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=lib%2FMaypole%2FModel%2FCDBI%2FBase.pm;h=d933c5bb1006b4d25f5fe8ab24fb2a799c8d9dc2;hb=e767951f92d57740dc76425868cce32f6bcf1296;hp=118062f3df2539a9adc04552f34147014bbc0f49;hpb=4f4bbd04570ff3c5f59f99c5cbf868d9b1a3da49;p=maypole.git diff --git a/lib/Maypole/Model/CDBI/Base.pm b/lib/Maypole/Model/CDBI/Base.pm index 118062f..d933c5b 100644 --- a/lib/Maypole/Model/CDBI/Base.pm +++ b/lib/Maypole/Model/CDBI/Base.pm @@ -1,6 +1,5 @@ package Maypole::Model::CDBI::Base; use strict; -use Class::C3; =head1 NAME @@ -125,7 +124,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 +133,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, } ); @@ -231,6 +230,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( @@ -321,6 +323,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); @@ -741,7 +758,7 @@ sub get_classmetadata { =head1 SEE ALSO -L, L. +L, L. =head1 AUTHOR