lots of work...
This commit is contained in:
parent
d0307d99c1
commit
10ddac6c58
11 changed files with 172 additions and 100 deletions
|
|
@ -440,12 +440,15 @@ dav::log 'EMSSubmission::www_editSubmission: asseId ne new';
|
|||
|
||||
sub www_editSubmissionSave {
|
||||
my $self = shift;
|
||||
return $self->session->privilege->insufficient() unless $self->canEdit;
|
||||
my $session = $self->session;
|
||||
return $session->privilege->insufficient() unless $self->canEdit;
|
||||
my $formParams = WebGUI::Asset::EMSSubmission->processForm($self);
|
||||
if( $formParams->{_isValid} ) {
|
||||
delete $formParams->{_isValid};
|
||||
$self->update($formParams);
|
||||
return $self->getParent->getParent->www_viewSubmissionQueue;
|
||||
$self->addRevision($formParams);
|
||||
WebGUI::VersionTag->autoCommitWorkingIfEnabled($session, { override => 1, allowComments => 0 });
|
||||
$self = $self->cloneFromDb;
|
||||
return $self->www_view;
|
||||
} else {
|
||||
return $self->www_editSubmission($formParams);
|
||||
}
|
||||
|
|
@ -489,7 +492,7 @@ sub getEditForm {
|
|||
|
||||
=head2 getEditTabs ( )
|
||||
|
||||
Not to be modified, just defines 2 new tabs.
|
||||
defines 2 new tabs.
|
||||
the shop tab is created here to mimic the function of the sku-created
|
||||
shop tab. this class holds data like Sku assets so that they can be assigned
|
||||
in the future when the sku asset is created from this data.
|
||||
|
|
|
|||
|
|
@ -41,12 +41,6 @@ and then become EMSTicket's.
|
|||
|
||||
use WebGUI::Asset::EMSSubmissionForm;
|
||||
|
||||
=head1 TODO
|
||||
|
||||
add a lastSubmissionDate -- after that the submission form will be closed
|
||||
the link will still exist but the form will just say '<title> submissions closed as of <date>'
|
||||
|
||||
|
||||
=head1 METHODS
|
||||
|
||||
These methods are available from this class:
|
||||
|
|
@ -75,7 +69,10 @@ sub addSubmission {
|
|||
$newParams->{className} = 'WebGUI::Asset::EMSSubmission';
|
||||
$newParams->{submissionStatus} = 'pending';
|
||||
$newParams->{submissionId} = $self->ems->getNextSubmissionId;
|
||||
$self->addChild($newParams);
|
||||
my $newAsset = $self->addChild($newParams);
|
||||
WebGUI::VersionTag->autoCommitWorkingIfEnabled($self->session, { override => 1, allowComments => 0 });
|
||||
$self = $self->cloneFromDb;
|
||||
return $newAsset;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
|
@ -254,7 +251,7 @@ sub www_editSubmissionForm {
|
|||
return qq{<li><a href='$u' title='$d'>$n</a></li>} } ;
|
||||
my $listOfLinks = join '', ( map {
|
||||
$makeAnchorList->(
|
||||
$_->getUrl('func=editSubmissionForm' ),
|
||||
$_->getQueueUrl,
|
||||
$_->get('title'),
|
||||
WebGUI::HTML::filter($_->get('description'),'all')
|
||||
)
|
||||
|
|
@ -361,7 +358,9 @@ sub www_editSubmissionFormSave {
|
|||
my $formParams = $self->processForm();
|
||||
if( $formParams->{_isValid} ) {
|
||||
delete $formParams->{_isValid};
|
||||
$self->update($formParams);
|
||||
$self->addRevision($formParams);
|
||||
WebGUI::VersionTag->autoCommitWorkingIfEnabled($self->session);
|
||||
$self = $self->cloneFromDb;
|
||||
return $self->getParent->www_viewSubmissionQueue;
|
||||
} else {
|
||||
return $self->www_editSubmissionForm($formParams);
|
||||
|
|
@ -392,6 +391,19 @@ sub getFormDescription {
|
|||
return JSON->new->decode($self->get('formDescription'));
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
=head2 getQueueUrl
|
||||
|
||||
returns the URL for the submission queue page with the submisison id in the hash part
|
||||
|
||||
=cut
|
||||
|
||||
sub getQueueUrl {
|
||||
my $self = shift;
|
||||
return $self->ems->getUrl('func=viewSubmissionQueue#' . $self->getId );
|
||||
}
|
||||
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 indexContent ( )
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@ sub addGroupToSubmitList {
|
|||
my @ids = split(' ', $self->get('eventSubmissionGroups'));
|
||||
my %h;
|
||||
@ids = map { $h{$_}++ == 0 ? $_ : () } ( $groupId, @ids );
|
||||
$self->addRevision({eventSubmissionGroups => join( ' ', @ids ) });
|
||||
$self->update({eventSubmissionGroups => join( ' ', @ids ) });
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
|
@ -94,7 +94,10 @@ sub addSubmissionForm {
|
|||
$params->{className} = 'WebGUI::Asset::EMSSubmissionForm';
|
||||
$params->{canSubmitGroupId} ||= 2;
|
||||
$self->addGroupToSubmitList($params->{canSubmitGroupId});
|
||||
return $self->addChild($params);
|
||||
my $newAsset = $self->addChild($params);
|
||||
WebGUI::VersionTag->autoCommitWorkingIfEnabled($self->session);
|
||||
$self = $self->cloneFromDb;
|
||||
return $newAsset;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
|
@ -434,7 +437,7 @@ sub getNextSubmissionId {
|
|||
my $self = shift;
|
||||
#my $submissionId = $self->get('nextSubmissionId');
|
||||
my ($submissionId) = $self->session->db->read('select nextSubmissionId from EventManagementSystem where assetId = ?', [ $self->getId ] )->array;
|
||||
$self->addRevision( { nextSubmissionId => ($submissionId + 1) } );
|
||||
$self->update( { nextSubmissionId => ($submissionId + 1) } );
|
||||
return $submissionId;
|
||||
}
|
||||
|
||||
|
|
@ -963,6 +966,27 @@ sub www_editBadgeGroupSave {
|
|||
return $self->www_manageBadgeGroups;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 www_editSubmission
|
||||
|
||||
use getLineage to find the item to edit based on submissionId
|
||||
then call www_editSubmission on it
|
||||
|
||||
=cut
|
||||
|
||||
sub www_editSubmission {
|
||||
my $self = shift;
|
||||
my $submissionId = $self->session->form->get('submissionId');
|
||||
my $asset = $self->getLineage(['descendants'], { returnObjects => 1,
|
||||
joinClass => "WebGUI::Asset::EMSSubmission",
|
||||
whereClause => 'submissionId = ' . int($submissionId),
|
||||
includeOnlyClasses => ['WebGUI::Asset::EMSSubmission'],
|
||||
} );
|
||||
return $asset->[0]->www_editSubmission;
|
||||
}
|
||||
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 www_editSubmissionForm
|
||||
|
|
@ -2545,6 +2569,15 @@ sub www_viewSubmissionQueue {
|
|||
my $i18n = $self->i18n;
|
||||
return $self->session->privilege->insufficient() unless $canSubmit || $isRegistrationStaff;
|
||||
|
||||
# this map returns an array of hash refs with an id,url pair to describe the submissionForm assets
|
||||
my @submissionFormUrls = map { {
|
||||
id => $_->getId,
|
||||
url => $_->getUrl('func=editSubmissionForm')
|
||||
} } (
|
||||
@{$self->getLineage( ['children'],{ returnObjects => 1,
|
||||
includeOnlyClasses => ['WebGUI::Asset::EMSSubmissionForm'],
|
||||
} ) }
|
||||
);
|
||||
my $QueueTabData =
|
||||
$self->processTemplate({
|
||||
backUrl => $self->getUrl,
|
||||
|
|
@ -2555,8 +2588,10 @@ sub www_viewSubmissionQueue {
|
|||
hasSubmissionForms => $self->hasSubmissionForms,
|
||||
getSubmissionQueueDataUrl => $self->getUrl('func=getAllSubmissions'),
|
||||
addSubmissionFormUrl => $self->getUrl('func=addSubmissionForm'),
|
||||
editSubmissionUrl => $self->getUrl('func=editSubmission'),
|
||||
editSubmissionFormUrl => $self->getUrl('func=editSubmissionForm'),
|
||||
addSubmissionUrl => $self->getUrl('func=addSubmission'),
|
||||
submissionFormUrls => \@submissionFormUrls,
|
||||
},$self->get('eventSubmissionQueueTemplateId'));
|
||||
|
||||
return $self->processStyle(
|
||||
|
|
@ -2571,6 +2606,7 @@ sub www_viewSubmissionQueue {
|
|||
getSubmissionQueueDataUrl => $self->getUrl('func=getAllSubmissions'),
|
||||
addSubmissionFormUrl => $self->getUrl('func=addSubmissionForm'),
|
||||
editSubmissionFormUrl => $self->getUrl('func=editSubmissionForm'),
|
||||
editSubmissionUrl => $self->getUrl('func=editSubmission'),
|
||||
addSubmissionUrl => $self->getUrl('func=addSubmission'),
|
||||
},$self->get('eventSubmissionMainTemplateId')));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -337,7 +337,7 @@ A WebGUI::Session object
|
|||
|
||||
sub www_autoAddToGroup {
|
||||
my $session = shift;
|
||||
return $self->session->privilege->noAccess() if ($session->user->isVisitor);
|
||||
return $session->privilege->noAccess() if ($session->user->isVisitor);
|
||||
my $group = WebGUI::Group->new($session,$session->form->process("groupId"));
|
||||
if ($group && $group->autoAdd) {
|
||||
$group->addUsers([$session->user->userId],[$session->form->process("groupId")]);
|
||||
|
|
@ -361,7 +361,7 @@ A WebGUI::Session object
|
|||
|
||||
sub www_autoDeleteFromGroup {
|
||||
my $session = shift;
|
||||
return $self->session->privilege->noAccess() if ($session->user->isVisitor);
|
||||
return $session->privilege->noAccess() if ($session->user->isVisitor);
|
||||
my $group = WebGUI::Group->new($session,$session->form->process("groupId"));
|
||||
if ($group && $group->autoDelete) {
|
||||
$group->deleteUsers([$session->user->userId],[$session->form->process("groupId")]);
|
||||
|
|
|
|||
|
|
@ -68,10 +68,13 @@ See WebGUI::Workflow::Activity::execute() for details.
|
|||
|
||||
=cut
|
||||
|
||||
use lib '/root/pb/lib'; use dav;
|
||||
|
||||
sub execute {
|
||||
my $self = shift;
|
||||
my $session = $self->session;
|
||||
my $root = WebGUI::Asset->getRoot($session);
|
||||
dav::log __PACKAGE__ . " executing\n";
|
||||
|
||||
# keep track of how much time it's taking
|
||||
my $start = time;
|
||||
|
|
@ -83,12 +86,14 @@ sub execute {
|
|||
} );
|
||||
|
||||
for my $emsf ( @$list ) {
|
||||
my whereClause = q{ ( submissionStatus='denied' }
|
||||
my $daysBeforeCleanup = $emsf->get('daysBeforeCleanup') ;
|
||||
next if ! $daysBeforeCleanup;
|
||||
my $whereClause = q{ submissionStatus='denied' };
|
||||
if( $emsf->get('deleteCreatedItems') ) {
|
||||
$whereClause .= q{ or submissionStatus='created'};
|
||||
$whereClause = ' ( ' . $whereClause . q{ or submissionStatus='created' } . ' ) ';
|
||||
}
|
||||
my $checkDate = time - ( 60*60*24* $emsf->get('daysBeforeCleanup') );
|
||||
$whereClause .= q{ ) and lastModifiedDate < } . $checkDate;
|
||||
my $checkDate = time - ( 60*60*24* $daysBeforeCleanup );
|
||||
$whereClause .= q{ and lastModifiedDate < } . $checkDate;
|
||||
my $res = $emsf->getLineage(['children'],{
|
||||
includeOnlyClasses => ['WebGUI::Asset::EMSSubmission'],
|
||||
whereClause => $whereClause,
|
||||
|
|
|
|||
|
|
@ -68,11 +68,13 @@ See WebGUI::Workflow::Activity::execute() for details.
|
|||
|
||||
=cut
|
||||
|
||||
use lib '/root/pb/lib'; use dav;
|
||||
|
||||
sub execute {
|
||||
my $self = shift;
|
||||
my $session = $self->session;
|
||||
my $root = WebGUI::Asset->getRoot($session);
|
||||
|
||||
dav::log __PACKAGE__ . " executing\n";
|
||||
# keep track of how much time it's taking
|
||||
my $start = time;
|
||||
my $limit = 2_500;
|
||||
|
|
@ -83,7 +85,7 @@ sub execute {
|
|||
} );
|
||||
|
||||
for my $emsf ( @$list ) {
|
||||
my whereClause = q{ ( submissionStatus='approved' }
|
||||
my $whereClause = q{ submissionStatus='approved' };
|
||||
my $res = $emsf->getLineage(['children'],{
|
||||
includeOnlyClasses => ['WebGUI::Asset::EMSSubmission'],
|
||||
whereClause => $whereClause,
|
||||
|
|
@ -94,11 +96,15 @@ sub execute {
|
|||
delete $properties{submissionStatus};
|
||||
delete $properties{sendEmailOnChange};
|
||||
delete $properties{ticketId};
|
||||
my $ticketId = $emsf->ems->addChild(
|
||||
my $newAsset = $emsf->ems->addChild(
|
||||
className => 'WebGUI::Asset::Sku::EMSTicket',
|
||||
%properties;
|
||||
%properties,
|
||||
);
|
||||
$submission->update({ ticketId => $ticketId });
|
||||
if( defined $newAsset ) {
|
||||
$submission->update({ ticketId => $newAsset->getId, submissionStatus => 'created' });
|
||||
} else {
|
||||
$submission->update({ submissionStatus => 'failed' });
|
||||
}
|
||||
$limit--;
|
||||
return $self->WAITING(1) if ! $limit or time > $start + $timeLimit;
|
||||
}
|
||||
|
|
@ -106,33 +112,6 @@ sub execute {
|
|||
return $self->COMPLETE;
|
||||
}
|
||||
|
||||
sub execute {
|
||||
my $self = shift;
|
||||
my $session = $self->session;
|
||||
my $root = WebGUI::Asset->getRoot($session);
|
||||
return $self->ERROR;
|
||||
|
||||
my $sth = $session->db->read("select assetId from asset where className='WebGUI::Asset::Wobject::HelpDesk'");
|
||||
while (my ($assetId) = $sth->array) {
|
||||
my $hd = WebGUI::Asset->new($session,$assetId,"WebGUI::Asset::Wobject::HelpDesk");
|
||||
next unless defined $hd;
|
||||
|
||||
my $closeAfter = $hd->get("closeTicketsAfter");
|
||||
|
||||
my $rules = {};
|
||||
$rules->{'joinClass' } = "WebGUI::Asset::Ticket";
|
||||
$rules->{'whereClause' } = qq{Ticket.ticketStatus = 'resolved' and (Ticket.resolvedDate + $closeAfter <= UNIX_TIMESTAMP(NOW()))};
|
||||
$rules->{'includeOnlyClasses'} = ['WebGUI::Asset::Ticket'];
|
||||
$rules->{'returnObjects' } = 1;
|
||||
|
||||
my $tickets = $hd->getLineage(['children'], $rules);
|
||||
foreach my $ticket (@{$tickets}) {
|
||||
$ticket->setStatus("closed");
|
||||
}
|
||||
}
|
||||
return $self->COMPLETE;
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -9,16 +9,6 @@ our $I18N = { ##hashref of hashes
|
|||
lastUpdated => 1131394072,
|
||||
context => q|Then name of the Asset ( Event Management System - Event Submission Form ).|
|
||||
},
|
||||
'next submission id label' => {
|
||||
message => q|Next Submission Id|,
|
||||
lastUpdated => 1131394072,
|
||||
context => q|Label for the field which indicates the next id used to create a submission.|
|
||||
},
|
||||
'next submission id label help' => {
|
||||
message => q|This is the value that will be used to fill in the first submission, do not edit it.|,
|
||||
lastUpdated => 1131394072,
|
||||
context => q|This is the help text for the 'next submission id' field, the user should be reminded not to edit this field.|
|
||||
},
|
||||
'can submit group label' => {
|
||||
message => q|User Group Allowed to create Submissions|,
|
||||
lastUpdated => 1131394072,
|
||||
|
|
|
|||
|
|
@ -2034,6 +2034,16 @@ normal templates.|,
|
|||
context => q|Label for the submission list tab for event submitters.|,
|
||||
},
|
||||
|
||||
'next submission id label' => {
|
||||
message => q|Next Submission Id|,
|
||||
lastUpdated => 1131394072,
|
||||
context => q|Label for the field which indicates the next id used to create a submission.|
|
||||
},
|
||||
'next submission id label help' => {
|
||||
message => q|This is the value that will be used to fill in the first submission, do not edit it.|,
|
||||
lastUpdated => 1131394072,
|
||||
context => q|This is the help text for the 'next submission id' field, the user should be reminded not to edit this field.|
|
||||
},
|
||||
# 'TODO' => {
|
||||
# message => q|TODO|,
|
||||
# lastUpdated => 1147050475,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue