fix EMSSubmissionForm and all its tests

This commit is contained in:
Doug Bell 2011-05-04 15:33:04 -05:00
parent 0c23ba8cd7
commit b0da37ec15
8 changed files with 81 additions and 64 deletions

View file

@ -238,17 +238,16 @@ sub www_editSubmissionForm {
$newform->addField( "hidden",name => 'assetId', value => $assetId );
my @fieldNames = qw/title description startDate duration seatsAvailable location/;
my $fields;
my @defs = reverse @{ WebGUI::Asset::EMSSubmission->definition($session) };
for my $def (@defs) {
foreach my $fieldName (@fieldNames) {
my $properties = $def->{properties};
if ( defined $properties->{$fieldName} ) {
$fields->{$fieldName} = { %{ $properties->{$fieldName} } }; # a simple first level copy
# field definitions don't contain their own name, we will need it later on
$fields->{$fieldName}{fieldId} = $fieldName;
}
}
my $class = 'WebGUI::Asset::EMSSubmission';
foreach my $fieldName (@fieldNames) {
my $attr = $class->meta->find_attribute_by_name( $fieldName );
$fields->{$fieldName} = {
fieldId => $fieldName,
name => $fieldName,
fieldType => $attr->fieldType,
noFormPost => $attr->noFormPost,
%{ $class->getFormProperties( $session, $fieldName ) },
};
}
for my $metaField ( @{ $parent->getEventMetaFields } ) {
push @fieldNames, $metaField->{fieldId};
@ -258,21 +257,23 @@ sub www_editSubmissionForm {
$fields->{ $metaField->{fieldId} }{hoverHelp} = $metaField->{helpText};
}
$newform->addField( "hidden", name => 'fieldNames', value => join( ' ', @fieldNames ) );
@defs = reverse @{ WebGUI::Asset::EMSSubmissionForm->definition($session) };
for my $def (@defs) {
my $properties = $def->{properties};
for my $fieldName (
qw/title menuTitle url description canSubmitGroupId daysBeforeCleanup
deleteCreatedItems submissionDeadline pastDeadlineMessage/
)
{
if ( defined $properties->{$fieldName} ) {
my %fieldParams = %{ $properties->{$fieldName} };
$fieldParams{name} = $fieldName;
$fieldParams{value} = $params->{$fieldName} || $self ? $self->get($fieldName) : undef;
$newform->addField( "dynamicField", %fieldParams);
}
}
$class = 'WebGUI::Asset::EMSSubmissionForm';
for my $fieldName (
qw/title menuTitle url description canSubmitGroupId daysBeforeCleanup
deleteCreatedItems submissionDeadline pastDeadlineMessage/
)
{
my $attr = $class->meta->find_attribute_by_name( $fieldName );
next unless $attr;
my %fieldParams = (
fieldId => $fieldName,
name => $fieldName,
fieldType => $attr->fieldType,
noFormPost => $attr->noFormPost,
%{ $class->getFormProperties( $session, $fieldName ) },
value => $params->{$fieldName} || $self ? $self->get($fieldName) : undef,
);
$newform->addField( $attr->fieldType, %fieldParams);
}
my $formDescription = $params->{formDescription} || $self ? $self->getFormDescription : {};