chg: allow to restsearch attributes by value1 and value2

pull/8530/head
Luciano Righetti 2022-08-10 16:07:43 +02:00
parent d3d042cf2a
commit 057a9883a0
No known key found for this signature in database
GPG Key ID: CB91F2A37C557248
2 changed files with 4 additions and 11 deletions

View File

@ -3128,6 +3128,8 @@ class Attribute extends AppModel
'Attribute' => array(
'sharinggroup' => array('function' => 'set_filter_sharing_group'),
'value' => array('function' => 'set_filter_value'),
'value1' => array('function' => 'set_filter_simple_attribute'),
'value2' => array('function' => 'set_filter_simple_attribute'),
'category' => array('function' => 'set_filter_simple_attribute'),
'type' => array('function' => 'set_filter_type'),
'object_relation' => array('function' => 'set_filter_simple_attribute'),

View File

@ -2710,17 +2710,8 @@ class Event extends AppModel
public function set_filter_value(&$params, $conditions, $options)
{
if (!empty($params['value'])) {
$params[$options['filter']] = $this->convert_filters($params[$options['filter']]);
$conditions = $this->generic_add_filter($conditions, $params[$options['filter']], ['Attribute.value1', 'Attribute.value2']);
// Allows searching for ['value1' => [full, part1], 'value2' => [full, part2]]
if (is_string($params['value']) && strpos('|', $params['value']) !== false) {
$valueParts = explode('|', $params['value'], 2);
$convertedFilterVal1 = $this->convert_filters($valueParts[0]);
$convertedFilterVal2 = $this->convert_filters($valueParts[1]);
$conditionVal1 = $this->generic_add_filter([], $convertedFilterVal1, ['Attribute.value1'])['AND'][0]['OR'];
$conditionVal2 = $this->generic_add_filter([], $convertedFilterVal2, ['Attribute.value2'])['AND'][0]['OR'];
$conditions['AND'][0]['OR']['OR']['AND'] = [$conditionVal1, $conditionVal2];
}
$params[$options['filter']] = $this->convert_filters($params['value']);
$conditions = $this->generic_add_filter($conditions, $params['value'], ['Attribute.value1', 'Attribute.value2']);
}
return $conditions;