protected function beforeRender()
 {
     $this->template->addFilter('time', function ($seconds) {
         return Base::getSecondsToString($seconds);
     });
     $this->template->addFilter('bool2string', function ($bool) {
         return Base::getBooleanToString($bool);
     });
     $this->template->addFilter('respondentWebsitePeriod', function ($period) {
         return Respondent::getRespondentWebsitePeriodLabel($period);
     });
     $this->template->addFilter('respondentAgeLabel', function ($age) {
         return Respondent::getAgeLabel($age);
     });
     $this->template->addFilter('respondentGenderLabel', function ($gender) {
         return Respondent::getGenderLabel($gender);
     });
     $this->template->addFilter('respondentCategoryPeriodLabel', function ($period) {
         return Respondent::getRespondentCategoryPeriodLabel($period);
     });
 }
 protected function createTemplate($class = NULL)
 {
     $template = parent::createTemplate($class);
     $template->addFilter('time', function ($seconds) {
         return Base::getSecondsToString($seconds);
     });
     $template->addFilter('bool2string', function ($bool) {
         return Base::getBooleanToString($bool);
     });
     $template->addFilter('respondentWebsitePeriod', function ($period) {
         return Respondent::getRespondentWebsitePeriodLabel($period);
     });
     $template->addFilter('respondentAgeLabel', function ($age) {
         return Respondent::getAgeLabel($age);
     });
     $template->addFilter('respondentGenderLabel', function ($gender) {
         return Respondent::getGenderLabel($gender);
     });
     $template->addFilter('respondentCategoryPeriodLabel', function ($period) {
         return Respondent::getRespondentCategoryPeriodLabel($period);
     });
     return $template;
 }
 protected function createComponentFilterForm()
 {
     $form = new \Nette\Application\UI\Form();
     $form->addGroup('Filtrování');
     $form->addText('id', 'Id');
     $form->addText('datetime', 'Čas');
     $form->addCheckboxList('age', 'Věk', array("null" => "neznámé", \App\Model\Respondent::AGE_15 => \App\Utils\Respondent::getAgeLabel(\App\Model\Respondent::AGE_15), \App\Model\Respondent::AGE_15_20 => \App\Utils\Respondent::getAgeLabel(\App\Model\Respondent::AGE_15_20), \App\Model\Respondent::AGE_21_30 => \App\Utils\Respondent::getAgeLabel(\App\Model\Respondent::AGE_21_30), \App\Model\Respondent::AGE_31_45 => \App\Utils\Respondent::getAgeLabel(\App\Model\Respondent::AGE_31_45), \App\Model\Respondent::AGE_46_60 => \App\Utils\Respondent::getAgeLabel(\App\Model\Respondent::AGE_46_60), \App\Model\Respondent::AGE_60 => \App\Utils\Respondent::getAgeLabel(\App\Model\Respondent::AGE_60)));
     $form->addCheckboxList('gender', 'Pohlaví', array("null" => "neznámé", \App\Model\Respondent::GENDER_MALE => "muž", \App\Model\Respondent::GENDER_FEMALE => "žena"));
     $form->addCheckboxList('english', 'Angličtina', array("null" => "neznámé", 1 => "ano", 0 => "ne"));
     $form->addCheckboxList('it', 'It', array("null" => "neznámé", 1 => "ano", 0 => "ne"));
     $form->addCheckboxList('devices', 'Zařízení', array(\App\Model\Respondent::DEVICE_COMPUTER => "počítač", \App\Model\Respondent::DEVICE_PHONE => "smartphone", \App\Model\Respondent::DEVICE_TABLET => "tablet"));
     $form->addCheckboxList('device_most', 'Nejčastější zařízení', array("null" => "neznámé", \App\Model\Respondent::DEVICE_COMPUTER => "počítač", \App\Model\Respondent::DEVICE_PHONE => "smartphone", \App\Model\Respondent::DEVICE_TABLET => "tablet"));
     $form->addText('websites', 'Navštěvované stránky');
     $form->addText('questions', 'Otázek');
     $form->addText('subquestions', 'Podotázek');
     $form->addText('correct', 'Správně');
     $form->addText('wrong', 'Špatně');
     $form->addText('almost', 'Téměř');
     $form->addText('disqualified', 'Nepočítané');
     $form->addText('unknown', 'Nevyhodnoceno');
     $form->addText('percentages', 'Procenta');
     $this->addOrder($form, array('respondent.id_respondent' => 'id', 'respondent.datetime' => 'čas', 'total_questions' => 'počet otázek', 'total_subquestions' => 'počet podotázek', 'total_correct_subquestions' => 'správně', 'total_wrong_subquestions' => 'špatně', 'total_almost_subquestions' => 'téměř', 'total_disqualified_subquestions' => 'nepočítané', 'total_unknown_subquestions' => 'nevyhodnoceno', 'total_correct_subquestions_percents' => 'úspěšnost'));
     $form->onSuccess[] = $this->filterFormSubmited;
     $form->addGroup();
     $form->addSubmit('filter', 'Filtrovat')->setAttribute("class", "btn btn-primary ajax");
     return $form;
 }