checking for definedness on required fields
edenc [Wed, 30 Jan 2008 16:20:23 +0000 (16:20 +0000)]
lib/Reaction/InterfaceModel/Reflector/DBIC.pm
lib/Reaction/UI/ViewPort/Field.pm
lib/Reaction/UI/ViewPort/Field/RelatedObject.pm

index befc66a..232a145 100644 (file)
@@ -756,7 +756,6 @@ class DBIC, which {
     my $attributes  = $self->parse_reflect_rules($attr_rules, $attr_haystack);
 
     #create the class
-    warn $class;
     my $meta = eval { Class::MOP::load_class($class) } ?
       $class->meta : $base->meta->create($class, superclasses => [$base]);
     my $make_immutable = $meta->is_immutable || $self->make_classes_immutable;
index b88c98b..c71ef88 100644 (file)
@@ -36,9 +36,14 @@ class Field is 'Reaction::UI::ViewPort', which {
         || ($self->attribute->is_lazy
             && !$self->attribute->is_lazy_fail)
       ) {
-      $self->value($self->model->$reader);
+      my $value = $self->model->$reader;
+      if ( $self->attribute->is_required ) {
+        $self->value($value) if defined $value;
+      }
+      else {
+        $self->value($value);
+      }
     }
-
   };
 
 };
index 23d715d..fe6dbf6 100644 (file)
@@ -12,7 +12,7 @@ class RelatedObject is 'Reaction::UI::ViewPort::Field', which {
   implements _build_value_string => as {
     my $self = shift;
     my $meth = $self->value_map_method;
-    my $value = $self->value;
+    my $value = $self->has_value ? $self->value : $self->_empty_value;
     return blessed($value) ? $value->$meth : $value;
   };