Cleanup when deleting or canceling.

This commit is contained in:
Martin Kamerbeek 2010-05-20 17:53:32 +02:00
parent 40ba318fac
commit 2e27fd5c21

View file

@ -23,6 +23,8 @@ sub cancel {
sendDate => undef,
} );
$self->deleteQueuedEmails;
return;
}
@ -66,6 +68,25 @@ sub crud_definition {
return $definition;
}
sub delete {
my $self = shift;
$self->deleteQueuedEmails;
return $self->SUPER::delete;
}
sub deleteQueuedEmails {
my $self = shift;
my $it = $self->getQueuedEmailIterator;
while ( my $email = $it->() ) {
$email->delete;
}
return;
}
sub getAsset {
my $self = shift;
my $session = $self->session;
@ -75,6 +96,13 @@ sub getAsset {
return $asset;
}
sub getQueuedEmailIterator {
my $self = shift;
my $session = $self->session;
return WebGUI::Mailing::Email->getQueued( $session, $self->getId );
}
sub getNextInSendQueue {
my $class = shift;
my $session = shift;
@ -168,7 +196,7 @@ sub sendQueuedEmails {
$self->update( { state => 'sending' } );
my $it = WebGUI::Mailing::Email->getQueued( $session, $self->getId );
my $it = $self->getQueuedEmailIterator;
while ( my $email = $it->() ) {
return if $timeLimit && time >= $timeLimit;