From 0aa868b813f2c8d812d944538b8e96b4660abd3f Mon Sep 17 00:00:00 2001 From: daviddelikat Date: Sat, 24 Oct 2009 09:05:26 -0500 Subject: [PATCH] working on submission queue --- lib/WebGUI/Asset/EMSSubmission.pm | 8 +-- lib/WebGUI/Asset/EMSSubmissionForm.pm | 24 +-------- .../Asset/Wobject/EventManagementSystem.pm | 50 +++++++------------ .../English/Asset_EventManagementSystem.pm | 6 +++ 4 files changed, 30 insertions(+), 58 deletions(-) diff --git a/lib/WebGUI/Asset/EMSSubmission.pm b/lib/WebGUI/Asset/EMSSubmission.pm index df117efb8..b7fdc6ddd 100644 --- a/lib/WebGUI/Asset/EMSSubmission.pm +++ b/lib/WebGUI/Asset/EMSSubmission.pm @@ -329,7 +329,7 @@ sub www_editSubmission { $session->errorHandler->error(__PACKAGE__ . " - failed to instanciate asset with assetId $assetId"); } } - my $url = ( $self | $parent )->getUrl('func=editSubmissionSave'); + my $url = ( $self || $parent )->getUrl('func=editSubmissionSave'); my $newform = WebGUI::HTMLForm->new($session,action => $url); my $formDescription = $parent->getFormDescription; my @defs = reverse @{__PACKAGE__->definition($session)}; @@ -344,7 +344,7 @@ sub www_editSubmission { } } # add the meta field - for my $metaField ( @{$parent->getEventMetaFields} ) { + for my $metaField ( @{$parent->getParent->getEventMetaFields} ) { if( defined $formDescription->{$metaField->{fieldId}} ) { $fields->{$metaField->{fieldId}} = { %$metaField }; # a simple first level copy # meta fields call it data type, we copy it to simplify later on @@ -353,12 +353,12 @@ sub www_editSubmission { } # for each field - for my $field ( keys %$fields ) { + for my $field ( values %$fields ) { if( $formDescription->{$field->{fieldId}} ) { $newform->dynamicField(%$field); } else { # TODO see that the data gets formatted - $newform->readonly( + $newform->readOnly( label => $field->{label}, value => $field->{value}, fieldId => $field->{fieldId}, diff --git a/lib/WebGUI/Asset/EMSSubmissionForm.pm b/lib/WebGUI/Asset/EMSSubmissionForm.pm index b58e99aad..e99dcabc8 100644 --- a/lib/WebGUI/Asset/EMSSubmissionForm.pm +++ b/lib/WebGUI/Asset/EMSSubmissionForm.pm @@ -247,7 +247,7 @@ sub www_editSubmissionForm { return qq{
  • $n
  • } } ; my $listOfLinks = join '', ( map { $makeAnchorList->( - $parent->getUrl('func=editSubmissionForm;assetId=' . $_->getId ), + $_->getUrl('func=editSubmissionForm' ), $_->get('title'), WebGUI::HTML::filter($_->get('description'),'all') ) @@ -257,7 +257,7 @@ sub www_editSubmissionForm { } } elsif( $assetId ne 'new' ) { $self &&= WebGUI::Asset->newByDynamicClass($session,$assetId); - if (!defined $self) { + if (!defined($self)) { $session->errorHandler->error(__PACKAGE__ . " - failed to instanciate asset with assetId $assetId"); } } @@ -554,26 +554,6 @@ dav::dump 'processForm::params:', $params; return $params; } -=head TODO work on this code -# this is a bunch of code that will likely be useful for this function... -{ - for my $fieldName ( qw/title menuTitle url description canSubmitGroupId daysBeforeCleanup - deleteCreatedItems submissionDeadline pastDeadlineMessage/ ) { - if( defined $properties->{$fieldName} ) { - my %param = %{$properties->{$fieldName}}; - $param{value} = $form->get($fieldName) || $self ? $self->get($fieldName) : $param{defaultValue} || ''; - $param{name} = $fieldName; -dav::dump 'editSubmissionForm::properties for ', $fieldName, \%param ; - $maintab->dynamicField(%param); - } - } - } -dav::dump 'editSubmissionForm::dump before generate:',$fields; -} -=cut - -} - #------------------------------------------------------------------- =head2 update ( ) diff --git a/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm b/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm index cea56a7d8..09122390f 100644 --- a/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm +++ b/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm @@ -595,7 +595,7 @@ 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'), + addSubmissionUrl => $self->getUrl('func=addSubmission'), viewSubmissionsUrl => $self->getUrl('func=viewSubmissions'), viewSubmissionQueueUrl => $self->getUrl('func=viewSubmissionQueue'), addSubmissionFormUrl => $self->getUrl('func=addSubmissionForm'), @@ -644,40 +644,41 @@ display a form or links to forms to create a new submission sub www_addSubmission { my $self = shift; my $params = shift || {}; - my $assetId = $params->{assetId} || $self->session->form->get('assetId'); - my $parent = $self->getParent; + my $formId = $params->{formId} || $self->session->form->get('formId'); my $session = $self->session; my $i18n = WebGUI::International->new($session,'Asset_EventManagementSystem'); - my $asset; + my $form; - if( ! defined $assetId ) { - my $res = $parent->getLineage(['children'],{ returnObjects => 1, + if( ! defined $formId ) { + my $res = $self->getLineage(['children'],{ returnObjects => 1, includeOnlyClasses => ['WebGUI::Asset::EMSSubmissionForm'], } ); my @new = map { $_->canSubmit ? $_ : () } ( @$res); - if( scalar(@new) == 1 ) { - $asset = $new[0]; - $assetId = $asset->getId; + if( scalar(@new) == 0 ) { + return $self->www_view; + } elsif( scalar(@new) == 1 ) { + $form = $new[0]; + $formId = $form->getId; } else { my $makeAnchorList =sub{ my $u=shift; my $n=shift; my $d=shift; return qq{
  • $n
  • } } ; my $listOfLinks = join '', ( map { $makeAnchorList->( - $self->getUrl('func=addSubmission;assetId=' . $_->getId ), + $self->getUrl('func=addSubmission;formId=' . $_->getId ), $_->get('title'), WebGUI::HTML::filter($_->get('description'),'all') ) } ( @new ) ); - return $parent->processStyle( '

    ' . $i18n->get('select form to submit') . + return $self->processStyle( '

    ' . $i18n->get('select form to submit') . '

    ' ); } } else { - $asset = WebGUI::Asset->newByDynamicClass($session,$assetId); + $form = WebGUI::Asset->newByDynamicClass($session,$formId); } - if (!defined $asset) { - $session->errorHandler->error(__PACKAGE__ . " - failed to instanciate asset with assetId $assetId"); + if (!defined $form) { + $session->errorHandler->error(__PACKAGE__ . " - failed to instanciate asset with assetId $formId"); } - return $asset->www_addSubmission; + return $form->www_addSubmission; } #------------------------------------------------------------------- @@ -2187,22 +2188,6 @@ sub www_moveEventMetaFieldUp { return $self->www_manageEventMetaFields; } -#--------------------------------------------- -=head2 www_newSubmission - -if only one form is available to this user: -call the viewSubmission with class and assetID = 'new' -else create a list of link that will distinguish the form the userdesires to use. -the links should refer to this function and include a formId parameter - -=cut - -sub www_newSubmission { - -# call viewSubmission or create a list of links - -} - #------------------------------------------------------------------- =head2 www_printBadge ( ) @@ -2358,10 +2343,11 @@ sub www_viewSubmissionQueue { $self->processTemplate({ backUrl => $self->getUrl, canEdit => $self->canEdit, + canSubmit => $self->canSubmit, hasSubmissionForms => $self->hasSubmissionForms, getSubmissionQueueDateUrl => $self->getUrl('func=getSubmissionQueueData'), addSumissionFormUrl => $self->getUrl('func=addSubmissionForm'), - editSubmissionFormUrl => self->getUrl('func=editSubmissionForm'), + editSubmissionFormUrl => $self->getUrl('func=editSubmissionForm'), addSumissionUrl => $self->getUrl('func=addSubmission'), },$self->get('eventSubmissionQueueTemplateId'))); } diff --git a/lib/WebGUI/i18n/English/Asset_EventManagementSystem.pm b/lib/WebGUI/i18n/English/Asset_EventManagementSystem.pm index 07f83ac04..d9b160a06 100644 --- a/lib/WebGUI/i18n/English/Asset_EventManagementSystem.pm +++ b/lib/WebGUI/i18n/English/Asset_EventManagementSystem.pm @@ -1878,6 +1878,12 @@ normal templates.|, context => q|help text for the columns per page field|, }, + 'edit submission form' => { + message => q|Edit Submission Form|, + lastUpdated => 1147050475, + context => q|Label for the link to edit a submission form.|, + }, + 'new submission form' => { message => q|New Submission Form|, lastUpdated => 1147050475,