Merge pull request #1422 from mailpoet/tasks-pausing
Pause scheduled tasks for deactivated emails [MAILPOET-1442]
This commit is contained in:
@ -273,7 +273,7 @@ class RoboFile extends \Robo\Tasks {
|
|||||||
->taskExec(
|
->taskExec(
|
||||||
'./vendor/bin/phpcs '.
|
'./vendor/bin/phpcs '.
|
||||||
'--standard=./tasks/code_sniffer/MailPoet '.
|
'--standard=./tasks/code_sniffer/MailPoet '.
|
||||||
'--runtime-set testVersion 5.3-7.0 '.
|
'--runtime-set testVersion 5.4-7.2 '.
|
||||||
'--ignore=./lib/Util/Sudzy/*,./lib/Util/CSS.php,./lib/Util/XLSXWriter.php,'.
|
'--ignore=./lib/Util/Sudzy/*,./lib/Util/CSS.php,./lib/Util/XLSXWriter.php,'.
|
||||||
'./lib/Util/pQuery/*,./lib/Config/PopulatorData/Templates/* '.
|
'./lib/Util/pQuery/*,./lib/Config/PopulatorData/Templates/* '.
|
||||||
'lib/ '.
|
'lib/ '.
|
||||||
@ -282,7 +282,7 @@ class RoboFile extends \Robo\Tasks {
|
|||||||
->taskExec(
|
->taskExec(
|
||||||
'./vendor/bin/phpcs '.
|
'./vendor/bin/phpcs '.
|
||||||
'--standard=./tasks/code_sniffer/MailPoet '.
|
'--standard=./tasks/code_sniffer/MailPoet '.
|
||||||
'--runtime-set testVersion 5.4-7.0 '.
|
'--runtime-set testVersion 5.4-7.2 '.
|
||||||
'--ignore=./tests/unit/_bootstrap.php '.
|
'--ignore=./tests/unit/_bootstrap.php '.
|
||||||
'tests/unit/ '.
|
'tests/unit/ '.
|
||||||
$severityFlag
|
$severityFlag
|
||||||
|
@ -325,10 +325,13 @@ class Newsletter extends Model {
|
|||||||
$this->set('status', $status);
|
$this->set('status', $status);
|
||||||
$this->save();
|
$this->save();
|
||||||
}
|
}
|
||||||
if(($status === self::STATUS_DRAFT) && ($this->type === self::TYPE_NOTIFICATION)) {
|
|
||||||
|
$types_with_activation = [self::TYPE_NOTIFICATION, self::TYPE_WELCOME, self::TYPE_AUTOMATIC];
|
||||||
|
|
||||||
|
if(($status === self::STATUS_DRAFT) && in_array($this->type, $types_with_activation)) {
|
||||||
ScheduledTask::pauseAllByNewsletter($this);
|
ScheduledTask::pauseAllByNewsletter($this);
|
||||||
}
|
}
|
||||||
if(($status === self::STATUS_ACTIVE) && ($this->type === self::TYPE_NOTIFICATION)) {
|
if(($status === self::STATUS_ACTIVE) && in_array($this->type, $types_with_activation)) {
|
||||||
ScheduledTask::setScheduledAllByNewsletter($this);
|
ScheduledTask::setScheduledAllByNewsletter($this);
|
||||||
}
|
}
|
||||||
return $this;
|
return $this;
|
||||||
|
@ -875,9 +875,11 @@ class NewsletterTest extends \MailPoetTest {
|
|||||||
expect($newsletter->getMeta())->equals($meta);
|
expect($newsletter->getMeta())->equals($meta);
|
||||||
}
|
}
|
||||||
|
|
||||||
function testPausesTaskWhenPostNotificationIsDisabled() {
|
function testPausesTaskWhenNewsletterWithActivationIsDisabled() {
|
||||||
|
$newsletters_with_activation = [Newsletter::TYPE_NOTIFICATION, Newsletter::TYPE_WELCOME, Newsletter::TYPE_AUTOMATIC];
|
||||||
|
foreach($newsletters_with_activation as $type) {
|
||||||
$newsletter = Newsletter::createOrUpdate(array(
|
$newsletter = Newsletter::createOrUpdate(array(
|
||||||
'type' => Newsletter::TYPE_NOTIFICATION
|
'type' => $type
|
||||||
));
|
));
|
||||||
$task = ScheduledTask::createOrUpdate(array('status' => ScheduledTask::STATUS_SCHEDULED));
|
$task = ScheduledTask::createOrUpdate(array('status' => ScheduledTask::STATUS_SCHEDULED));
|
||||||
SendingQueue::createOrUpdate(array(
|
SendingQueue::createOrUpdate(array(
|
||||||
@ -888,10 +890,13 @@ class NewsletterTest extends \MailPoetTest {
|
|||||||
$task_found = ScheduledTask::findOne($task->id());
|
$task_found = ScheduledTask::findOne($task->id());
|
||||||
expect($task_found->status)->equals(ScheduledTask::STATUS_PAUSED);
|
expect($task_found->status)->equals(ScheduledTask::STATUS_PAUSED);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function testUnpausesTaskWhenPostNotificationIsEnabled() {
|
function testUnpausesTaskWhenNewsletterWithActivationIsEnabled() {
|
||||||
|
$newsletters_with_activation = [Newsletter::TYPE_NOTIFICATION, Newsletter::TYPE_WELCOME, Newsletter::TYPE_AUTOMATIC];
|
||||||
|
foreach($newsletters_with_activation as $type) {
|
||||||
$newsletter = Newsletter::createOrUpdate(array(
|
$newsletter = Newsletter::createOrUpdate(array(
|
||||||
'type' => Newsletter::TYPE_NOTIFICATION
|
'type' => $type
|
||||||
));
|
));
|
||||||
$task = ScheduledTask::createOrUpdate(array(
|
$task = ScheduledTask::createOrUpdate(array(
|
||||||
'status' => ScheduledTask::STATUS_PAUSED,
|
'status' => ScheduledTask::STATUS_PAUSED,
|
||||||
@ -905,6 +910,8 @@ class NewsletterTest extends \MailPoetTest {
|
|||||||
$task_found = ScheduledTask::findOne($task->id());
|
$task_found = ScheduledTask::findOne($task->id());
|
||||||
expect($task_found->status)->equals(ScheduledTask::STATUS_SCHEDULED);
|
expect($task_found->status)->equals(ScheduledTask::STATUS_SCHEDULED);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function _after() {
|
function _after() {
|
||||||
\ORM::raw_execute('TRUNCATE ' . NewsletterOption::$_table);
|
\ORM::raw_execute('TRUNCATE ' . NewsletterOption::$_table);
|
||||||
\ORM::raw_execute('TRUNCATE ' . Newsletter::$_table);
|
\ORM::raw_execute('TRUNCATE ' . Newsletter::$_table);
|
||||||
|
Reference in New Issue
Block a user