]> git.decadent.org.uk Git - maypole.git/blobdiff - lib/Maypole/Model/CDBI.pm
Maypole-2.111.tar.gz
[maypole.git] / lib / Maypole / Model / CDBI.pm
index 5433beba42282488de1de6e584f1f9e36366f94c..e15745b08f613eca147ae6aa8c63d4d7f738892d 100644 (file)
@@ -1,6 +1,8 @@
 package Maypole::Model::CDBI;
 use strict;
 
+use Data::Dumper;
+
 =head1 NAME
 
 Maypole::Model::CDBI - Model class based on Class::DBI
@@ -135,7 +137,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,
                                        }); 
@@ -144,7 +146,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,
                                           } );
@@ -503,7 +505,6 @@ sub _isa_class {
 # sub _column_info {
 sub _column_info {
   my $self = shift;
-  warn "__column_info called by ", join (', ', caller), "\n";
   my $dbh = $self->db_Main;
 
   my $meta;                    # The info we are after
@@ -531,8 +532,7 @@ sub _hash_type_meta {
 
     # required / nullable
     $meta->{$colname}{nullable} = $row->{NULLABLE};
-
-    $meta->{$colname}{required} = ($row->{NULLABLE} && $row->{NULLABLE} == 0) ? 1 : 0;
+    $meta->{$colname}{required} = ( $meta->{$colname}{nullable} == 0 ) ? 1 : 0;
 
     # default
     if (defined $row->{COLUMN_DEF}) {
@@ -648,6 +648,7 @@ sub required_columns {
   my ($class, $columns) = @_;
   $class->_column_info() unless ref $class->COLUMN_INFO;
   my $column_info = $class->COLUMN_INFO;
+
   if ($columns) {
     foreach my $colname ( @$columns ) {
       if ($class->_isa_class($colname)) {
@@ -659,12 +660,12 @@ sub required_columns {
        warn "$colname is not a recognised column in this class ", ref $class || $class, "\n";
        next;
       }
-      $column_info->{required} = 1;
+      $column_info->{$colname}{required} = 1;
     }
     $class->COLUMN_INFO($column_info);
   }
 
-  return [ grep ($column_info->{$_}{required}, keys %{$column_info}) ] ;
+  return [ grep ($column_info->{$_}{required}, keys %$column_info) ] ;
 }
 
 =head2 column_required