/**
  * Generate the module
  */
 protected function compile()
 {
     $parameters = deserialize($this->airquality_parameters);
     $size = deserialize($this->chartSize);
     $this->Template->width = $size[0];
     $this->Template->height = $size[1];
     $objAirQualityCity = \AirQualityCityModel::findByAlias(\Input::get('items'));
     $this->Template->city = $objAirQualityCity->title;
     $this->Template->date = \Date::parse('l j F Y');
     $this->Template->source = $objAirQualityCity->source;
     $objAirQualityStaions = \AirQualityStationModel::findByPid($objAirQualityCity->id);
     // No stations found
     if ($objAirQualityStaions === null) {
         $this->Template = new \FrontendTemplate('mod_airquality_empty');
         $this->Template->empty = $GLOBALS['TL_LANG']['MSC']['emptyAirQuality'];
     } else {
         $arrAirQuality = array();
         $arrCityMaxAQI = array(parameter => '', value => 0, color => '', level => '');
         foreach ($objAirQualityStaions as $objStation) {
             $objAirQualityData = \AirQualityDataModel::findByPidAndToday($objStation->id);
             if ($objAirQualityData !== null) {
                 $aqi = new \AirQuality($objAirQualityData);
                 $aqis = $aqi->AirQualityIndexes;
                 $maxaqi = $aqi->AirQualityIndex;
                 $arrAirQuality = array('station' => $objStation->title, 'date' => \Date::parse('l j F', $objAirQualityData->date), 'aqi' => $aqis, 'maxaqi' => $maxaqi);
                 $objTemplate = new \FrontendTemplate($this->chartTemplate);
                 $size = deserialize($this->chartSize);
                 $objTemplate->width = $size[0];
                 $objTemplate->height = $size[1];
                 $objTemplate->title = $objStation->title;
                 $objTemplate->alias = $objStation->alias;
                 $objTemplate->id = uniqid('chart_');
                 $objTemplate->labels = '"PM2.5","PM10","CO","NO2","SO2","O3"';
                 $objTemplate->data = $arrAirQuality;
                 $arrAirQualityCharts[] = $objTemplate->parse();
                 if ($arrCityMaxAQI[value] < $maxaqi[value]) {
                     $arrCityMaxAQI = $maxaqi;
                 }
             }
         }
         $this->Template->citymaxaqi = $arrCityMaxAQI;
         if ($arrAirQualityCharts) {
             $this->Template->airqualitycharts = $arrAirQualityCharts;
         } else {
             $this->Template = new \FrontendTemplate('mod_airquality_empty');
             $this->Template->empty = $GLOBALS['TL_LANG']['MSC']['emptyAirQuality'];
         }
         $arrAirQualityAll = array();
         foreach ($objAirQualityStaions as $objStation) {
             $objAirQualityData = \AirQualityDataModel::findByPid($objStation->id, 30, 1);
             while ($objAirQualityData->next()) {
                 $aqi = new \AirQuality($objAirQualityData);
                 $arrAirQualityAll[$objStation->title][\Date::parse('m/d', $objAirQualityData->date)] = $aqi->AirQualityIndexes;
             }
         }
         $this->Template->allaqi = $arrAirQualityAll;
     }
 }