Fix instanciating an object from the database. Write core Crud properties to the db.

This commit is contained in:
Colin Kuskie 2010-11-04 17:13:54 -07:00
parent 2e79a4b52f
commit 87f49191db
2 changed files with 32 additions and 27 deletions

View file

@ -105,7 +105,7 @@ around BUILDARGS => sub {
WebGUI::Error::ObjectNotFound->throw(error=>'no such '.$tableKey, id=>$identifier);
}
$data->{session} = $session;
return $class->$orig(@_);
return $class->$orig($data);
};
=head1 NAME
@ -466,7 +466,7 @@ sub crud_updateTable {
foreach my $property_name (@property_names) {
my $property = $class->meta->find_attribute_by_name($property_name);
my $form_properties = $property->form;
my $control = WebGUI::Form::DynamicField->new( $session, fieldType => $form_properties->fieldType,);
my $control = WebGUI::Form::DynamicField->new( $session, fieldType => $form_properties->{fieldType},);
my $fieldType = $control->getDatabaseFieldType;
my $isKey = $property->isQueryKey;
my $default = $property->default;
@ -972,6 +972,13 @@ sub write {
}
$data->{$property_name} = $value;
}
my $tableKey = $self->meta->tableKey;
$data->{$tableKey} = $self->$tableKey;
$data->{lastUpdated} = $self->lastUpdated;
$data->{dateCreated} = $self->dateCreated;
if (my $sequenceKey = $self->meta->sequenceKey) {
$data->{$sequenceKey} = $self->$sequenceKey;
}
$session->db->setRow($self->tableName, $self->tableKey, $data);
}