public function create_questionnaire()
 {
     build_validator_from_form($this->get_edit_form());
     $questionnaire_data = $this->input->post('questionnaire');
     if (isset($_FILES['file']['name']) && !empty($_FILES['file']['name'])) {
         $this->upload_file($questionnaire_data['upload_id']);
         $this->new_questionnaire();
         return;
     }
     $this->db->trans_begin();
     if ($this->form_validation->run()) {
         $questionnaire = new Questionnaire();
         $questionnaire->from_array($questionnaire_data, array('title', 'configuration'));
         if (isset($questionnaire_data['published']) && (int) $questionnaire_data['published'] == 1) {
             $questionnaire->published = true;
         } else {
             $questionnaire->published = false;
         }
         if (isset($questionnaire_data['attempts']) && $questionnaire_data['attempts'] !== '') {
             $questionnaire->attempts = (int) $questionnaire_data['attempts'];
         } else {
             $questionnaire->attempts = null;
         }
         if ($questionnaire->save() && $this->rename_upload_folder($questionnaire_data['upload_id'], $questionnaire->id)) {
             $this->db->trans_commit();
             add_success_flash_message('Dotazník <strong>' . $questionnaire->title . '</strong> s ID <strong>' . $questionnaire->id . '</strong> bol úspešne vytvorený.');
             redirect(site_url('questionnaires'));
         } else {
             $this->db->trans_rollback();
             $this->delete_upload_folder($questionnaire_data['upload_id']);
             add_error_flash_message('Dotazník <strong>' . $questionnaire->title . '</strong> sa nepodarilo vytvoriť.');
             redirect(site_url('questionnaires/new_questionnaire'));
         }
     } else {
         $this->new_questionnaire();
     }
 }