/**
  * @param string $uniqueLayoutId
  * @param array $metadata
  * @return array
  */
 protected function getPortlets($uniqueLayoutId, $metadata)
 {
     $portlets = parent::getPortlets($uniqueLayoutId, $metadata);
     assert('$this->params["relationModel"] instanceof Report');
     $resolvedPortlets = array();
     foreach ($portlets as $column => $positionInfo) {
         foreach ($positionInfo as $position => $portlet) {
             if ($portlet->viewType == 'RuntimeFiltersForPortlet' && !$this->params["relationModel"]->hasRuntimeFilters()) {
                 //ignore portlet, since there are no runtime filters
             } elseif ($portlet->viewType == 'ReportChartForPortlet' && !$this->params['relationModel']->hasChart()) {
                 //ignore portlet, since there is not a chart
             } else {
                 $resolvedPortlets[$column][] = $portlet;
             }
         }
     }
     return $resolvedPortlets;
 }
 public function __construct($controllerId, $moduleId, $uniqueLayoutId, $params, $metadata, $portletsAreCollapsible = true, $portletsAreMovable = true, $showAsTabs = false, $layoutType = '100', $portletsAreRemovable = true)
 {
     parent::__construct($controllerId, $moduleId, $uniqueLayoutId, $params, $metadata, $portletsAreCollapsible, $portletsAreMovable, $showAsTabs, $layoutType, $portletsAreRemovable);
 }