diff --git a/code/extensions/SiteTreeContentReview.php b/code/extensions/SiteTreeContentReview.php index d5bf92b..638f074 100644 --- a/code/extensions/SiteTreeContentReview.php +++ b/code/extensions/SiteTreeContentReview.php @@ -66,10 +66,16 @@ class SiteTreeContentReview extends DataExtension implements PermissionProvider * @param SiteTree $page * @return Date | false - returns false if the content review have disabled */ - public function getReviewDate(DataObject $options, SiteTree $page) { + public function getReviewDate(SiteTree $page=null) { + if($page === null) { + $page = $this->owner; + } if($page->obj('NextReviewDate')->exists()) { return $page->obj('NextReviewDate'); } + + $options = $this->owner->getOptions(); + if(!$options) { return false; } @@ -385,10 +391,10 @@ class SiteTreeContentReview extends DataExtension implements PermissionProvider $this->owner->NextReviewDate = null; // Take from Parent page if($settings && $this->owner->parent()->exists()) { - $nextDate = $this->getReviewDate($settings, $this->owner->parent()); + $nextDate = $this->getReviewDate($this->owner->parent()); // Inherit from siteconfig } elseif($settings instanceof SiteConfig) { - $nextDate = $this->getReviewDate($settings, $this->owner); + $nextDate = $this->getReviewDate(); // No setting, parent disabled } else { $nextDate = null; @@ -400,7 +406,7 @@ class SiteTreeContentReview extends DataExtension implements PermissionProvider // No review date provided, use today + period } else { $this->owner->NextReviewDate = null; - $nextDate = $this->getReviewDate($settings, $this->owner); + $nextDate = $this->getReviewDate(); } } if(is_object($nextDate)) { diff --git a/tests/ContentReviewSettingsTest.php b/tests/ContentReviewSettingsTest.php index 66463b3..5fba74d 100644 --- a/tests/ContentReviewSettingsTest.php +++ b/tests/ContentReviewSettingsTest.php @@ -56,13 +56,13 @@ class ContentReviewSettingsTest extends SapphireTest { public function testGetNextReviewDateFromCustomSettings() { $page = $this->objFromFixture('Page', 'custom'); - $date = $page->getReviewDate($page->getOptions(), $page); + $date = $page->getReviewDate(); $this->assertEquals('2010-02-01', $date->format('Y-m-d')); } public function testGetNextReviewDateFromSiteConfigInheritedSetting() { $page = $this->objFromFixture('Page', 'inherit'); - $nextReviewDate = $page->getReviewDate($page->getOptions(), $page); + $nextReviewDate = $page->getReviewDate(); $this->assertInstanceOf('Date', $nextReviewDate); $expected = $this->addDaysToDate(SS_Datetime::now(), $this->objFromFixture('SiteConfig', 'default')->ReviewPeriodDays); @@ -71,7 +71,7 @@ class ContentReviewSettingsTest extends SapphireTest { public function testGetNextReviewDateFromPageInheritedSetting() { $page = $this->objFromFixture('Page', 'page-1-1'); - $nextReviewDate = $page->getReviewDate($page->getOptions(), $page); + $nextReviewDate = $page->getReviewDate(); $this->assertInstanceOf('Date', $nextReviewDate); // It should be the same as the parents reviewdate