diff --git a/code/controllers/CMSSiteTreeFilter.php b/code/controllers/CMSSiteTreeFilter.php index f6e2384b..583e6730 100644 --- a/code/controllers/CMSSiteTreeFilter.php +++ b/code/controllers/CMSSiteTreeFilter.php @@ -300,7 +300,7 @@ class CMSSiteTreeFilter_ChangedPages extends CMSSiteTreeFilter { $pages = Versioned::get_by_stage('SiteTree', 'Stage'); $pages = $this->applyDefaultFilters($pages) ->leftJoin('SiteTree_Live', '"SiteTree_Live"."ID" = "SiteTree"."ID"') - ->where('"SiteTree"."Version" > "SiteTree_Live"."Version"'); + ->where('"SiteTree"."Version" <> "SiteTree_Live"."Version"'); return $pages; } } diff --git a/tests/controller/CMSSiteTreeFilterTest.php b/tests/controller/CMSSiteTreeFilterTest.php index fce3ca38..50be152a 100644 --- a/tests/controller/CMSSiteTreeFilterTest.php +++ b/tests/controller/CMSSiteTreeFilterTest.php @@ -72,6 +72,17 @@ class CMSSiteTreeFilterTest extends SapphireTest { $f = new CMSSiteTreeFilter_ChangedPages(array('Term' => 'No Matches')); $results = $f->pagesIncluded(); $this->assertEquals(0, count($results)); + + // If we roll back to an earlier version than what's on the published site, we should still show the changed + $changedPage->Title = 'Changed 2'; + $changedPage->publish('Stage', 'Live'); + $changedPage->doRollbackTo(1); + + $f = new CMSSiteTreeFilter_ChangedPages(array('Term' => 'Changed')); + $results = $f->pagesIncluded(); + + $this->assertEquals(1, count($results)); + $this->assertEquals(array('ID' => $changedPage->ID, 'ParentID' => 0), $results[0]); } public function testDeletedPagesFilter() {