SUGARCRM - DashletGeneric Bug
Nem sempre os Dashlets existentes vão ao encontro das nossas necessidades, mas por vezes andam perto e tudo o que precisamos é mais uma coluna de informação.
Nesse caso é lógico que em vez de criar um dashlet novo, vamo tentar adicionar a coluna que queremos ao dashlet existente.
No entanto isso pode ser um desafio. Como exemplo, vamos usar o "MyProjectTaskDashlet".
A costumização para adicionar uma coluna nova é posto no ficheiro 'custom/ProjectTask/metadata/dashletviewdefs.php' :
include('modules/ProjectTask/Dashlets/MyProjectTaskDashlet/MyProjectTaskDashlet.data.php'); $dashletData['MyProjectTaskDashlet']['columns']['Col Test']=array( 'width'=>'15', 'label'=>'Col Test', 'customCode'=>'test', 'default'=>true, );
No entanto esta simples costumização não vai funcionar, Por causa de um bug que existe na classe "DashletGeneric".
Este código é carregado pelo método loadCustomMetadata()
nessa função encontramos o seguinte código:
...
$this->searchFields = $dashletData[$this->seedBean->module_dir.'Dashlet']['searchFields'];
...
$this->columns = $dashletData[$this->seedBean->module_dir.'Dashlet']['columns'];
Há primeira vista não parece estar nada errado , mas nesta função a referencia aos campos do Dashlet que está a ser carregado está a ser gerado por $this->seedBean->module_dir.'Dashlet'
No nosso caso isto dá "ProjectTaskDashlet" , MAS O NOSSO DASHLET É MyProjectTaskDashlet .
Isto é um probema até porque podemos ter mais que um dashlet no mesmo modulo.
SOLUÇÃO:
alterar $this->seedBean->module_dir.'Dashlet'
para get_class($this)
e já podemos adicionar e alterar colunas nos dashlets existentes.

















