]> git.decadent.org.uk Git - maypole.git/blobdiff - lib/Maypole/Model/CDBI/DFV.pm
updated db_colinfo test, and fixed syntax error in DFV model
[maypole.git] / lib / Maypole / Model / CDBI / DFV.pm
index fcf80fbf96eadd1577c59f1472a07645bf939250..3afb9859a613b74d8d83acc897a2cafb48975b9a 100644 (file)
@@ -191,7 +191,7 @@ sub _do_update {
     $obj->set( %$this_class_params );
     $obj->update;
   }
-  
+
   return ($obj,$errors);
 
 }
@@ -200,9 +200,18 @@ sub _do_create {
   my ($class,$r) = @_;
   my $errors;
   my $this_class_params = { map { $_ => $r->{params}{$_} }  $class->columns  };
-  my $obj = eval { My::DBI->create( $this_class_params ) };
+  my $dfv_results;
+  my $obj;
 
-  my $dfv_results = ($obj) ? undef :  $class->dfv_results->msgs ;
+  if ($class->isa('Class::DBI::DFV')) {
+    $obj = eval { My::DBI->create( $this_class_params ) };
+    $dfv_results = ($obj) ? undef :  $class->dfv_results ;
+  } else {
+    $dfv_results = Data::FormValidator->check($r->{params}, $class->dfv_profile);
+    if ($dfv_results->success) {
+      $obj = $class->create($this_class_params);
+    }
+  }
 
   # handle dfv errors
   if ( $dfv_results->has_missing ) {   # missing fields