[Legacy]Fix subpanel query

- remove filter button from opportunities subpanel
This commit is contained in:
Jack Anderson 2023-03-15 15:16:01 +00:00 committed by Clemente Raposo
parent 35e30a2001
commit 42c009ef82
5 changed files with 21 additions and 7 deletions

View file

@ -1173,12 +1173,23 @@ class SugarBean
if(!empty($union_related_list_columns) && array_key_exists($this_subpanel->name, $union_related_list_columns)) {
$list_fields = $union_related_list_columns[$this_subpanel->name];
}elseif($subpanel_def->isCollection()){
$list_fields = $this_subpanel->get_list_fields();
}else{
$list_fields = $submodule->field_defs;
$list_fields = $this_subpanel->get_list_fields();
if (!$subpanel_def->isCollection()) {
foreach($this_subpanel->searchByFields ?? [] as $field){
if (!empty($list_fields[$field]) || empty($submodule->field_defs[$field])) {
continue;
}
$list_fields[$field] = [
'name' => $field,
'query_only' => true,
];
}
}
}
foreach ($list_fields as $list_key => $list_field) {
if (isset($list_field['usage']) && $list_field['usage'] === 'display_only') {
unset($list_fields[$list_key]);
@ -1213,7 +1224,7 @@ class SugarBean
$singleSelect = method_exists($submodule, 'is_relate_field')
? $submodule->is_relate_field($order_by) : null;
if (!$singleSelect && !empty($this_subpanel->searchByFields) && method_exists($submodule, 'is_relate_field')){
if (!$singleSelect && !empty($this_subpanel->searchByFields) && method_exists($submodule, 'is_relate_field') && $this_subpanel->legacySearch === false){
foreach($this_subpanel->searchByFields as $field){
if ($submodule->is_relate_field($field)){
$singleSelect = true;

View file

@ -913,6 +913,9 @@ class SearchForm
//rrs check for team_id
foreach ((array)$this->searchFields as $field => $parms) {
$this->searchByFields[] = $field;
$customField = false;
// Jenny - Bug 7462: We need a type check here to avoid database errors
// when searching for numeric fields. This is a temporary fix until we have
@ -998,8 +1001,6 @@ class SearchForm
$operator = strtolower($parms['operator']);
}
$this->searchByFields[] = $field;
if (is_array($parms['value'])) {
$field_value = '';

View file

@ -63,6 +63,7 @@ class aSubPanel
public $sub_subpanels ;
public $parent_bean ;
public $searchByFields = [];
public $legacySearch = true;
/**

View file

@ -91,6 +91,8 @@ class SubpanelDataPort
$aSubPanelObject = $spd->load_subpanel($subpanel, false, false, '', $collection);
}
$aSubPanelObject->legacySearch = false;
try {
$response = SugarBean::get_union_related_list(
$parentBean,

View file

@ -207,7 +207,6 @@ $layout_defs['Accounts'] = array(
'title_key' => 'LBL_OPPORTUNITIES_SUBPANEL_TITLE',
'top_buttons' => array(
array('widget_class' => 'SubPanelTopButtonQuickCreate'),
array('widget_class' => 'SubPanelTopFilterButton'),
),
),
'leads' => array(