From bea626eba3b641872e63fcba548dcc407599c218 Mon Sep 17 00:00:00 2001 From: Damian Mooyman Date: Mon, 11 Jun 2018 15:08:34 +1200 Subject: [PATCH] BUG Fix invalid stage being specified for queried records --- code/model/Translatable.php | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/code/model/Translatable.php b/code/model/Translatable.php index 8f04b2b..558783e 100755 --- a/code/model/Translatable.php +++ b/code/model/Translatable.php @@ -1295,20 +1295,16 @@ class Translatable extends DataExtension implements PermissionProvider { // exclude the language of the current owner $filter .= sprintf(' AND "%s"."Locale" != \'%s\'', $baseDataClass, $this->owner->Locale); } - $currentStage = Versioned::current_stage(); $joinOnClause = sprintf('"%s_translationgroups"."OriginalID" = "%s"."ID"', $baseDataClass, $baseDataClass); - if($this->owner->hasExtension("Versioned")) { - if($stage) Versioned::reading_stage($stage); + if($this->owner->hasExtension("Versioned") && $stage) { $translations = Versioned::get_by_stage( $baseDataClass, - Versioned::current_stage(), + $stage, $filter, null )->leftJoin("{$baseDataClass}_translationgroups", $joinOnClause); - if($stage) Versioned::reading_stage($currentStage); } else { - $class = $this->owner->class; - $translations = $baseDataClass::get() + $translations = DataObject::get($baseDataClass) ->where($filter) ->leftJoin("{$baseDataClass}_translationgroups", $joinOnClause); }