Set even 30 days old newsletters as scheduled when reactivating an email

[MAILPOET-2709]
This commit is contained in:
Rostislav Wolny
2020-03-30 14:04:06 +02:00
committed by Veljko V
parent 78dc682763
commit dc55fb64cd
3 changed files with 13 additions and 3 deletions

View File

@ -79,7 +79,7 @@ class ScheduledTask extends Model {
'WHERE ' .
'q.`newsletter_id` = ' . $newsletter->id() .
' AND t.`status` = "' . self::STATUS_PAUSED . '" ' .
' AND t.`scheduled_at` > NOW()'
' AND t.`scheduled_at` > CURDATE() - INTERVAL 30 DAY'
);
}

View File

@ -617,7 +617,7 @@ parameters:
-
message: "#^Cannot access property \\$status on MailPoet\\\\Models\\\\ScheduledTask\\|false\\.$#"
count: 5
count: 6
path: ../../tests/integration/Models/ScheduledTaskTest.php
-

View File

@ -48,6 +48,10 @@ class ScheduledTaskTest extends \MailPoetTest {
'status' => ScheduledTask::STATUS_PAUSED,
'scheduled_at' => Carbon::createFromTimestamp(WPFunctions::get()->currentTime('timestamp'))->subDays(10)->format('Y-m-d H:i:s'),
]);
$outdatedTask = ScheduledTask::createOrUpdate([
'status' => ScheduledTask::STATUS_PAUSED,
'scheduled_at' => Carbon::createFromTimestamp(WPFunctions::get()->currentTime('timestamp'))->subDays(31)->format('Y-m-d H:i:s'),
]);
SendingQueue::createOrUpdate([
'newsletter_id' => $newsletter->id(),
'task_id' => $task1->id(),
@ -60,13 +64,19 @@ class ScheduledTaskTest extends \MailPoetTest {
'newsletter_id' => $newsletter->id(),
'task_id' => $task3->id(),
]);
SendingQueue::createOrUpdate([
'newsletter_id' => $newsletter->id(),
'task_id' => $outdatedTask->id(),
]);
ScheduledTask::setScheduledAllByNewsletter($newsletter);
$task1Found = ScheduledTask::findOne($task1->id());
expect($task1Found->status)->equals(ScheduledTask::STATUS_SCHEDULED);
$task2Found = ScheduledTask::findOne($task2->id());
expect($task2Found->status)->equals(ScheduledTask::STATUS_COMPLETED);
$task3Found = ScheduledTask::findOne($task3->id());
expect($task3Found->status)->equals(ScheduledTask::STATUS_PAUSED);
expect($task3Found->status)->equals(ScheduledTask::STATUS_SCHEDULED);
$outdatedTaskFound = ScheduledTask::findOne($outdatedTask->id());
expect($outdatedTaskFound->status)->equals(ScheduledTask::STATUS_PAUSED);
}
public function testItPauseAllByNewsletters() {