From 3c2130aa72c078b2893fbcddaa4963e7eb5e297c Mon Sep 17 00:00:00 2001 From: Eric Date: Tue, 4 Feb 2020 15:54:03 +0100 Subject: [PATCH] =?UTF-8?q?N=C2=B02321=20-=20Fix=20SQL=20request=20generat?= =?UTF-8?q?ion=20for=20inherited=20magic=20attributes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/oqlactualclasstreeresolver.class.inc.php | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/core/oqlactualclasstreeresolver.class.inc.php b/core/oqlactualclasstreeresolver.class.inc.php index 96fb87ac1..ac71703a7 100644 --- a/core/oqlactualclasstreeresolver.class.inc.php +++ b/core/oqlactualclasstreeresolver.class.inc.php @@ -64,21 +64,26 @@ class OQLActualClassTreeResolver $aTranslateFields = array(); foreach ($aExpectedAttributes as $sAttCode => $oExpression) { + // 'id' is managed later + if ($sAttCode == 'id') + { + continue; + } // Attributes can be stored in attributes list or for magic ones into filter codes list. $sOriginClass = null; - if (MetaModel::IsValidFilterCode($sClass, $sAttCode)) - { - $sOriginClass = MetaModel::GetFilterCodeOrigin($sClass, $sAttCode); - } - else if (MetaModel::IsValidAttCode($sClass, $sAttCode)) + if (MetaModel::IsValidAttCode($sClass, $sAttCode)) { $sOriginClass = MetaModel::GetAttributeOrigin($sClass, $sAttCode); } + else if (MetaModel::IsValidFilterCode($sClass, $sAttCode)) + { + $sOriginClass = MetaModel::GetFilterCodeOrigin($sClass, $sAttCode); + } else { continue; } - if (is_null($aClassAndAncestorsNodes[$sOriginClass])) + if (!isset($aClassAndAncestorsNodes[$sOriginClass]) || is_null($aClassAndAncestorsNodes[$sOriginClass])) { if ($sOriginClass == $sClass) {