more tests, started coding for real...

This commit is contained in:
daviddelikat 2009-10-06 09:43:20 -05:00
parent 3ed18c775b
commit ccc9e36e25
4 changed files with 121 additions and 22 deletions

View file

@ -36,6 +36,22 @@ use Tie::IxHash;
use Data::Dumper;
#-------------------------------------------------------------------
=head2 canSubmit
returns true is the current user can submit to any form attached to this EMS
=cut
sub canSubmit {
my $self = shift;
my $user = $self->session->user;
for my $groupId (split ' ', $self->get('eventSubmissionGroups')) {
return 1 if $user->isInGroup($groupId);
}
return 0;
}
#-------------------------------------------------------------------
sub definition {
my $class = shift;
@ -109,27 +125,27 @@ sub definition {
},
eventSubmissionTemplateId => {
fieldType => 'template',
defaultValue => 'yBwydfooiLvhEFawJb0VTQ',
defaultValue => 'eventSubmissionTmplt01',
tab => 'display',
label => $i18n->get('print ticket template'),
hoverHelp => $i18n->get('print ticket template help'),
namespace => 'EMS/PrintTicket',
namespace => 'EMS/SubmissionForm',
},
viewEventSubmissionQueueTemplateId => {
fieldType => 'template',
defaultValue => 'yBwydfooiLvhEFawJb0VTQ',
defaultValue => 'eventQueueTmplate00001',
tab => 'display',
label => $i18n->get('print ticket template'),
hoverHelp => $i18n->get('print ticket template help'),
namespace => 'EMS/PrintTicket',
namespace => 'EMS/SubmissionQueue',
},
editEventSubmissionTemplateId => {
fieldType => 'template',
defaultValue => 'yBwydfooiLvhEFawJb0VTQ',
defaultValue => 'editEventSubmissionT01',
tab => 'display',
label => $i18n->get('print ticket template'),
hoverHelp => $i18n->get('print ticket template help'),
namespace => 'EMS/PrintTicket',
namespace => 'EMS/EditSubmission',
},
badgeInstructions => {
fieldType => 'HTMLArea',
@ -403,6 +419,28 @@ sub getTokens {
return $self->getLineage(['children'],{returnObjects=>1, includeOnlyClasses=>['WebGUI::Asset::Sku::EMSToken']});
}
#-------------------------------------------------------------------
=head2 hasForms
returns true if the EMS has subission forms attached
=cut
sub hasForms {
return 0;
}
#-------------------------------------------------------------------
=head2 hasSubmissions
returns true if the current user has submission forms in this EMS
=cut
sub hasSubmissions {
return 0;
}
#-------------------------------------------------------------------
=head2 isRegistrationStaff ( [ user ] )
@ -498,9 +536,16 @@ sub view {
addBadgeUrl => $self->getUrl('func=add;class=WebGUI::Asset::Sku::EMSBadge'),
buildBadgeUrl => $self->getUrl('func=buildBadge'),
viewScheduleUrl => $self->getUrl('func=viewSchedule'),
newSubmissionUrl => $self->getUrl('func=newSubmission'),
viewSubmissionsUrl => $self->getUrl('func=viewSubmissions'),
viewSubmissionQueueUrl => $self->getUrl('func=viewSubmissionQueue'),
addSubmissionFormUrl => $self->getUrl('func=addSubmissionForm'),
manageBadgeGroupsUrl=> $self->getUrl('func=manageBadgeGroups'),
getBadgesUrl => $self->getUrl('func=getBadgesAsJson'),
canEdit => $self->canEdit,
canSubmit => $self->canSubmit,
hasSubmissions => $self->hasSubmissions,
hasForms => $self->hasForms,
lookupRegistrantUrl => $self->getUrl('func=lookupRegistrant'),
);

View file

@ -69,6 +69,21 @@ our $I18N = { ##hashref of hashes
lastUpdated => 1131394072,
context => q|This is the label used to describe the EMS submission cleanup activity|
},
'past deadline message' => {
message => q|The deadline for this submission is past, no more submissions will be taken at this time.|,
lastUpdated => 1131394072,
context => q|This is the default message for informing the user that the submission deadline is past.|
},
'past deadline label' => {
message => q|Post SUbmission Deadline Text|,
lastUpdated => 1131394072,
context => q|This is the label for the message indicating that the deadline for submissions has past.|
},
'past deadline label help' => {
message => q|Enter a message here to let the user know that submissions are no longer being taken because the deadline has past.|,
lastUpdated => 1131394072,
context => q|This help text should describe how the user tells submitters that the submission deadline has past.|
},
# 'TODO' => {
# message => q|TODO|,

View file

@ -1878,6 +1878,36 @@ normal templates.|,
context => q|help text for the columns per page field|,
},
'new submission form' => {
message => q|New Submission Form|,
lastUpdated => 1147050475,
context => q|Label for the link to create a new submission form.|,
},
'view submission queue' => {
message => q|Submission Queue|,
lastUpdated => 1147050475,
context => q|Label for link to view submission queue.|,
},
'new submission' => {
message => q|New Submission|,
lastUpdated => 1147050475,
context => q|Label for link to create a new submission for an event.|,
},
'view my submissions' => {
message => q|My Submissions|,
lastUpdated => 1147050475,
context => q|Label for link to view submissions owned by current user.|,
},
# 'TODO' => {
# message => q|TODO|,
# lastUpdated => 1147050475,
# context => q|TODO|,
# },
};
1;

View file

@ -119,20 +119,23 @@ WebGUI::Test->tagsToRollback($versionTag);
loginRgstr;
is( $ems->hasForms, 0, 'ems currently has no forms' );
my $frmA = $ems->addChild({
className => 'WebGUI::Asset::EMSSubmissionForm',
title => 'test A -- long',
canSubmitGroup => $submitGroupA->getId,
daysBeforeCleanup => 1,
formDescription => q{ {
'title' : { 'type' : 'text' },
'description' : { 'type' : 'textarea' },
'duration' : { 'default' : 2.0 },
'startDate' : { 'type' : 'selectList', 'options' :
'title' : { 'type' : 'text' },
'description' : { 'type' : 'textarea' },
'duration' : { 'default' : 2.0 },
'startDate' : { 'type' : 'selectList', 'options' :
[ '1255150800', '1255237200', '1255323600' ] },
} },
});
isa_ok( $frmA, 'WebGUI::Asset::EMSSubmissionForm' );
is( $ems->hasForms, 1, 'ems now has forms' );
ok( $frmA->validateSubmission({
title => 'titlea',
description => 'the description',
@ -170,13 +173,14 @@ my $frmB = $ems->addChild({
daysBeforeCleanup => 0,
canSubmitGroup => $submitGroupB->getId,
formDescription => q{ {
'title' : { 'type' : 'text' },
'description' : { 'type' : 'textarea' },
'duration' : { 'default' : 0.5 },
'startDate' : { 'default' : '1255150800' },
'metaField1' : { 'type' : 'Url' },
'title' : { 'type' : 'text' },
'description' : { 'type' : 'textarea' },
'duration' : { 'default' : 0.5 },
'startDate' : { 'default' : '1255150800' },
'metaField1' : { 'type' : 'Url' },
} },
});
is( $ems->hasForms, 1, 'ems still has forms' );
ok( $frmA->validateSubmission({
title => 'title',
description => 'description',
@ -188,19 +192,26 @@ ok( !$frmA->validateSubmission({
metaField1 => 'joe@sams.org',
}), 'invalid submission: test invalid metafield value' );
logout;
is( $ems->canSubmit, 0, 'current user cannot submit to this ems' );
loginUserA;
is( $ems->canSubmit, 1, 'current user can submit to this ems' );
is( $ems->hasSubmissions, 0, 'current user has no submissions' );
# this one should work
my $sub1 = $frmA->addSubmission({
title => 'my favorite thing to talk about',
});
isa_ok( $sub1, 'WebGUI::Asset::EMSSubmission', "valid submission succeeded" );
is( $ems->hasSubmissions, 1, 'current user has submissions on this ems' );
#this one should fail
my $sub2 = $frmB->addSubmission({
title => 'why i like to be important',
});
ok( not defined $sub2, "invalid submission failed" );
ok( not defined $sub2, "user cannot submit to this form" );
loginUserB;
@ -242,13 +253,11 @@ ok($sub1->update({
is( $sub1->get('title'),'the new title','successfully changed the title');
ok($sub1->update({
status => 'approved'
}),'set status to approved');
$sub1->update({ status => 'approved' });
is($sub1->get('status'),'approved','set status to approved');
ok($sub2->update({
status => 'denied'
}),'set status to denied');
$sub2->update({ status => 'denied' });
is($sub2->get('status'),'denied','set status to denied');
# create the workflows/activities for processing
my $approveSubmissions = WebGUI::Test::Activity->create( $session,