diff --git a/src/Extensions/SiteTreeContentReview.php b/src/Extensions/SiteTreeContentReview.php index 56b235a..31c1005 100644 --- a/src/Extensions/SiteTreeContentReview.php +++ b/src/Extensions/SiteTreeContentReview.php @@ -495,6 +495,11 @@ class SiteTreeContentReview extends DataExtension implements PermissionProvider $this->owner->write(); } + if ($options && $options->ReviewPeriodDays == 0) { + $this->owner->NextReviewDate = null; + $this->owner->write(); + } + return (bool)$nextDateTimestamp; } diff --git a/tests/php/SiteTreeContentReviewTest.php b/tests/php/SiteTreeContentReviewTest.php index 35a1a79..aefebd5 100644 --- a/tests/php/SiteTreeContentReviewTest.php +++ b/tests/php/SiteTreeContentReviewTest.php @@ -10,6 +10,7 @@ use SilverStripe\ContentReview\Extensions\ContentReviewDefaultSettings; use SilverStripe\ContentReview\Extensions\ContentReviewOwner; use SilverStripe\ContentReview\Extensions\SiteTreeContentReview; use SilverStripe\Forms\LiteralField; +use SilverStripe\ORM\FieldType\DBDate; use SilverStripe\ORM\FieldType\DBDatetime; use SilverStripe\Security\Group; use SilverStripe\Security\Member; @@ -123,6 +124,20 @@ class SiteTreeContentReviewTest extends ContentReviewBaseTest $this->assertEquals(null, $page->NextReviewDate); } + public function testAdvanceReviewDate() + { + $page = new Page(); + $page->Title = 'Test page'; + $page->ReviewPeriodDays = 0; + // Set timestamp to a time in the past + $timestamp = DBDatetime::now()->getTimestamp() - 100000; + $page->NextReviewDate = DBDate::create()->setValue($timestamp)->Format(DBDate::ISO_DATE); + $page->write(); + $page->advanceReviewDate(); + $this->assertNull(Page::get()->find('Title', 'Test page')->NextReviewDate); + } + + public function testAddReviewNote() { /** @var Member $author */