N°1724 - Fix external key search error when an UNION is used as a filter in the datamodel

This commit is contained in:
Eric
2018-11-05 17:43:50 +01:00
parent 518d94f5f3
commit e4619fbc0f
3 changed files with 7 additions and 5 deletions

View File

@@ -604,7 +604,9 @@ class DBUnionSearch extends DBSearch
*/
public function GetCriteria()
{
return new TrueExpression();
// We're at the limit here
$oSearch = reset($this->aSearches);
return $oSearch->GetCriteria();
}
protected function IsDataFiltered()

View File

@@ -91,11 +91,11 @@ try
$oObj = $oWizardHelper->GetTargetObject();
if (array_key_exists('query_params', $aExtraParams))
{
$aExtraParams['query_params']['this'] = $oObj;
$aExtraParams['query_params']['this->object()'] = $oObj;
}
else
{
$aExtraParams['query_params'] = array('this' => $oObj);
$aExtraParams['query_params'] = array('this->object()' => $oObj);
}
// // Current extkey value, so we can display event if it is not available anymore (eg. archived).

View File

@@ -203,7 +203,7 @@ class SearchForm
}
$oBaseSearch = $oSearch->DeepClone();
if (method_exists($oSearch, 'GetCriteria'))
if ($oSearch instanceof DBObjectSearch)
{
$oBaseSearch->ResetCondition();
}
@@ -495,7 +495,7 @@ class SearchForm
$bIsEmptyExpression = true;
$aArgs = MetaModel::PrepareQueryArguments($aArgs, $oSearch->GetInternalParams());
if (method_exists($oSearch, 'GetCriteria'))
if ($oSearch instanceof DBObjectSearch)
{
$oExpression = $oSearch->GetCriteria();