From ebcfc483beb17f11123eb53fc3b4715ee45d8241 Mon Sep 17 00:00:00 2001 From: Jules Date: Thu, 29 Oct 2020 14:40:29 +1300 Subject: [PATCH 1/2] FIX: Clear non-recurring custom date when reviewing --- src/Extensions/SiteTreeContentReview.php | 5 +++++ 1 file changed, 5 insertions(+) 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; } From c89a759af6920e3b3978463b7fb2fb83e5620cf1 Mon Sep 17 00:00:00 2001 From: Daniel Hensby Date: Fri, 14 May 2021 10:42:45 +0100 Subject: [PATCH 2/2] Add test --- tests/php/SiteTreeContentReviewTest.php | 15 +++++++++++++++ 1 file changed, 15 insertions(+) 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 */