public function editAction()
 {
     $this->view->messages = $this->_helper->flashMessenger->getMessages();
     $testId = $this->_request->getParam('id');
     // Creates form instance
     $testFrom = new TestForm();
     $this->view->testForm = $testFrom;
     // Loads data from database
     $technologies = My_Model::get('Technologies')->fetchAll();
     $seniorities = My_Model::get('Seniorities')->fetchAll();
     // Fills form selects
     $testFrom->getElement('id_technologie')->setMultiOptions($this->transformTechnologies($technologies));
     $testFrom->getElement('id_seniorita')->setMultiOptions($this->transformSeniorities($seniorities));
     // Edit test page
     if (!empty($testId)) {
         $this->view->testId = $testId;
         $this->view->title = 'Edit Test';
         $test = My_Model::get('Tests')->getById($testId);
         $testData = $test->get_data();
         $testFrom->setDefaults($testData);
         // Loads questions with options
         $questions = $test->getQuestions();
         $questionForms = array();
         foreach ($questions as $q) {
             $questionForm = new QuestionForm(array('questionId' => $q->getid_otazka()));
             $questionForm->setName('q' . strval($q->getid_otazka()));
             $questionForm->setAction($this->view->url(array('controller' => 'test', 'action' => 'save-question', 'testId' => $testId, 'questionId' => $q->getid_otazka()), 'default', true));
             $questionForms[] = $questionForm;
         }
         $newQuestionForm = new QuestionForm(array('count' => 3));
         $newQuestionForm->setName('new');
         $newQuestionForm->setAction($this->view->url(array('controller' => 'test', 'action' => 'save-question', 'testId' => $testId), 'default', true));
         $questionForms[] = $newQuestionForm;
         $this->view->questionForms = $questionForms;
     } else {
         $this->view->title = 'Add new Test';
     }
     // ########################### POST ###########################
     // Handles form submission
     if ($this->_request->isPost()) {
         if ($testFrom->isValid($this->_request->getPost())) {
             $formValues = $testFrom->getValues();
             $test;
             // Editing existing test
             if (!empty($testId)) {
                 $test = My_Model::get('Tests')->getById($testId);
             } else {
                 date_default_timezone_set('UTC');
                 $formValues['datum_vytvoreni'] = date("Y-n-j");
                 $formValues['id_kdo_vytvoril'] = $this->getUser()->id_uzivatel;
                 $test = My_Model::get('Tests')->createRow();
             }
             // Updates test object in DB
             $test->updateFromArray($formValues);
             $this->_helper->redirector->gotoRoute(array('controller' => 'test', 'action' => 'edit', 'id' => $test->id_test), 'default', true);
         }
     }
 }