CoreBOSBB

Full Version: related list different column depending on Parent module
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hi,

is it possible to have different grid for related list depending on the parent module

Rgds
AFAIK there is no easy way to accomplish this right now.
You will have to do some changes in include/uitils/ListViewUtils.php, in the functions getListViewEntries() and getListViewHeader() changing dynamically the $focus->list_fields and $focus->list_fields_names arrays depending on the module of $focus and the $module varaible (I think)
Thanks

my thoughts :

use an array for list_fields like

list_fields['parent'] = ....


will investigate about it this weekend . if i succeed, i will share the code

Rgds
A quick a dirty Hack :


1.
in include/utils/ListViewUtils.php
function getListViewHeader

(line 60)

//Get the vtiger_tabid of the module
$tabid = getTabid($module);
$tabname = getParentTab();
global $current_user;

// MSL : different list as parent module
if (isset($focus->rellist_fields)) {
if (isset($focus->rellist_fields[$relatedmodule])) {
$focus->list_fields = $focus->rellist_fields[$relatedmodule];
$focus->list_fields_name = $focus->rellist_fields_name[$relatedmodule];
}
}


2. modify the <module>.php
after
"var $list_fields_name" declaration


Ex : (change correspondingly)
// MSL
var $rellist_fields = Array ('ProjectTask' =>
Array (
/* Format: Field Label => Array(tablename, columnname) */
// tablename should not have prefix 'vtiger_'
'Title'=> Array('candidates', 'title'),
'Expert'=> Array('candidates', 'expert'),
'Consultant'=> Array('candidates', 'consultant'),
'Proposed Fee'=> Array('candidates', 'amount'),
'Currency'=> Array('candidates', 'currency'),
'Assigned To' => Array('crmentity','smownerid')
)
);
var $rellist_fields_name = Array ('ProjectTask' =>
Array (
/* Format: Field Label => fieldname */
'Title'=> 'title',
'Expert' => 'expert',
'Consultant' => 'consultant',
'Proposed Fee' => 'amount',
'Currency' => 'currency',
'Assigned To' => 'assigned_user_id'
)
);
//----------------------------------------------------
Interesting !

I see that you only change the list_fields property once, in the header, I suppose the $focus object is shared and the change passes on to the rest of the execution.

Nice and usefull. I will keep this in mind.

Thanks
Have a nice weekend