]> git.decadent.org.uk Git - maypole.git/blobdiff - lib/Maypole/Model/CDBI.pm
small updates to docs, etc
[maypole.git] / lib / Maypole / Model / CDBI.pm
index 933fc55bade156175d88dd798d829f3a9e62fc2e..bd9646f5ee99105dd5eb5c12aa7274baf4d34c61 100644 (file)
@@ -80,8 +80,8 @@ sub do_edit : Exported {
     return;
   }
 
-  my $required_cols = $config->{$table}->{required_cols} || [];
-  my $ignored_cols = $r->{config}{ $r->{table} }{ignore_cols} || [];
+  my $required_cols = $config->{$table}{required_cols} || [];
+  my $ignored_cols  = $config->{$table}{ignore_cols} || [];
 
   ($obj, my $fatal, my $creating) = $self->_do_update_or_create($r, $obj, $required_cols, $ignored_cols);
 
@@ -135,16 +135,16 @@ sub _do_update_or_create {
   # update or create
   if ($obj) {
     # We have something to edit
-    eval { $obj->update_from_cgi( $h => {
+    eval { $obj->update_from_cgi( $r => {
                                         required => $required_cols,
                                         ignore => $ignored_cols,
-                                       } );
+                                       }); 
           $obj->update(); # pos fix for bug 17132 'autoupdate required by do_edit'
         };
     $fatal = $@;
   } else {
        eval {
-       $obj = $self->create_from_cgi( $h => {
+       $obj = $self->create_from_cgi( $r => {
                                            required => $required_cols,
                                            ignore => $ignored_cols,
                                           } );
@@ -152,11 +152,43 @@ sub _do_update_or_create {
        $fatal = $@;
        $creating++;
   }
-
   return $obj, $fatal, $creating;
 }
 
 
+# split out from do_edit to be reported by Mp::P::Trace
+#sub _do_update_or_create {
+#  my ($self, $r, $obj, $required_cols, $ignored_cols) = @_;
+#
+#  my $fatal;
+#  my $creating = 0;
+#
+#  my $h = $self->Untainter->new( %{$r->params} );
+#
+#  # update or create
+#  if ($obj) {
+#    # We have something to edit
+#    eval { $obj->update_from_cgi( $h => {
+#                                       required => $required_cols,
+#                                       ignore => $ignored_cols,
+#                                      } );
+#         $obj->update(); # pos fix for bug 17132 'autoupdate required by do_edit'
+#       };
+#    $fatal = $@;
+#  } else {
+#      eval {
+#              $obj = $self->create_from_cgi( $h => {
+#                                          required => $required_cols,
+#                                          ignore => $ignored_cols,
+#                                         } );
+#      };
+#      $fatal = $@;
+#      $creating++;
+#  }
+#
+#  return $obj, $fatal, $creating;
+#}
+
 =head2 delete
 
 Deprecated method that calls do_delete or a given classes delete method, please
@@ -207,10 +239,13 @@ the, now deprecated, search method previously provided.
 sub search : Exported {
   my $self = shift;
   my ($sub) = (caller(1))[3];
-  $sub =~ /^(.+)::([^:]+)$/;
   # So subclasses can still send search down ...
-  return ($1 ne "Maypole::Model::Base" && $2 ne "search") ?
-    $self->SUPER::search(@_) : $self->do_search(@_);
+  if ($sub =~ /^(.+)::([^:]+)$/) {
+    return ($1 ne "Maypole::Model::Base" && $2 ne "search") ?
+      $self->SUPER::search(@_) : $self->do_search(@_);
+  } else {
+    $self->SUPER::search(@_);
+  }
 }
 
 sub do_search : Exported {
@@ -320,8 +355,7 @@ sub related_class {
 
   $class->related_meta($col);
 
-Given a column  associated with a relationship it will return the relatation
-ship type and the meta info for the relationship on the column.
+Returns the hash ref of relationship meta info for a given column.
 
 =cut
 
@@ -331,7 +365,7 @@ sub related_meta {
     my $class_meta = $self->meta_info;
     if (my ($rel_type) = grep { defined $class_meta->{$_}->{$accssr} }
         keys %$class_meta)
-    { return  $rel_type, $class_meta->{$rel_type}->{$accssr} };
+    { return  $class_meta->{$rel_type}->{$accssr} };
 }
 
 
@@ -654,23 +688,16 @@ sub column_default {
        my $info = $class->_column_info->{$col} || 
                           eval { $class->_isa_class($col)->_column_info($col) } ||
                           return '';
-
+       
     my $def = $info->{COLUMN_DEF};
-    $def = '' unless defined $def;
-
-    # exclude defaults we don't want to display-- may need some additions here
-    if ( $class->column_type($col)  =~ /^BOOL/i ) {
-            $def = $def ? 1 : 0; # allow 0 or 1 for bool cols
-    }
-    else {
-        $def = $def =~ /(^0000-00-00.*$|^0[0]*$|^0\.00$|CURRENT_TIMESTAMP|NULL)/i ? '' : $def ;
-    }
-    return $def;
+    $def = '' unless defined $def; # is this good?
+       return $def;
 }
 
 
 
+
+
 =head2 get_classmetadata
 
 Gets class meta data *excluding cgi input* for the passed in class or the