Пример #1
0
 public function exibir_resultados($idAvaliacao)
 {
     if (!$this->input->is_ajax_request()) {
         show_404();
     }
     set_json_header();
     try {
         $avaliacao = $this->_avaliacaoDao->recuperar($idAvaliacao);
         $participacaoCurso = $this->_participacaoCursoDao->recuperarPorCurso($this->_alunoAtual, $avaliacao->getModulo()->getCurso());
         $controleAvaliacao = $this->_controleAvaliacaoDao->recuperarPorParticipacao($participacaoCurso, $avaliacao);
         $questoesAvaliacao = array();
         foreach ($controleAvaliacao->getRespostas() as $resposta) {
             $questao = $this->_questaoAvaliacaoDao->recuperar($resposta->getQuestaoId());
             if ($resposta->isCorreta()) {
                 $arrayQuestao = array('questao' => $questao, 'respostas' => array($resposta));
             } else {
                 $arrayQuestao = array('questao' => $questao, 'respostas' => array($questao->getAlternativaCorreta(), $resposta));
             }
             $questoesAvaliacao[] = $arrayQuestao;
         }
         $response = Zend_Json::encode(array('htmlResultado' => $this->template->loadPartial('avaliacao_resultados', array('controleAvaliacao' => $controleAvaliacao, 'questoesRealizadas' => $questoesAvaliacao, 'questoesEmBranco' => $controleAvaliacao->getAvaliacao()->getQtdQuestoesExibir() - count($questoesAvaliacao)), 'curso/conteudo/aplicacao_avaliacao')));
         $json = create_json_feedback(true, '', $response);
     } catch (Exception $e) {
         log_message('error', 'Ocorreu um erro ao tentar exibir resultados de avaliação: ' . create_exception_description($e));
         $error = create_json_feedback_error_json('Ocorreu um erro inesperado,
                     já estamos tentando resolver. Tente novamente mais tarde!');
         $json = create_json_feedback(false, $error);
     }
     echo $json;
 }
Пример #2
0
 public function excluirPorId($id)
 {
     $nome_tabela = $this->converterClasseParaTabela();
     $avaliacaoDAO = new AvaliacaoDAO();
     $comentarioDAO = new ComentarioDAO();
     $imagemDAO = new ImagemDAO();
     $videoDAO = new VideoDAO();
     switch ($nome_tabela) {
         case "Eventos":
             $avaliacaoDAO->excluirPorIdEvento($id);
             $comentarioDAO->excluirPorIdEvento($id);
             $imagemDAO->excluirPorIdEvento($id);
             $videoDAO->excluirPorIdEvento($id);
             break;
         case "Estabelecimentos":
             $avaliacaoDAO->excluirPorIdEstabelecimento($id);
             $comentarioDAO->excluirPorIdEstabelecimento($id);
             $imagemDAO->excluirPorIdEstabelecimento($id);
             $videoDAO->excluirPorIdEstabelecimento($id);
             break;
     }
     parent::excluir($id, 'id', $nome_tabela);
 }
Пример #3
0
 private function _criarFromCassandra(array $column, WeLearn_Cursos_ParticipacaoCurso $participacaoCurso, WeLearn_Cursos_Avaliacoes_Avaliacao $avaliacao = null)
 {
     $column['participacaoCurso'] = $participacaoCurso;
     $column['avaliacao'] = $avaliacao instanceof WeLearn_Cursos_Avaliacoes_Avaliacao ? $avaliacao : $this->_avaliacaoDao->recuperar($column['avaliacao']);
     $controleAvaliacao = $this->criarNovo();
     $controleAvaliacao->fromCassandra($column);
     try {
         $respostasIds = $this->_respostasAvaliacaoCF->get($controleAvaliacao->getId());
         $UUIDs = array();
         foreach ($respostasIds as $id) {
             $UUIDs[] = UUID::import($id)->bytes;
         }
         $controleAvaliacao->setRespostas($this->_alternativasDao->recuperarTodosPorUUIDs($UUIDs));
     } catch (cassandra_NotFoundException $e) {
     }
     return $controleAvaliacao;
 }
Пример #4
0
 private function _virarModulo(WeLearn_Cursos_ParticipacaoCurso &$participacaoCurso, WeLearn_Cursos_Conteudo_Modulo $moduloAnterior)
 {
     $this->_participacaoCursoDao->getControleModuloDAO()->finalizar($participacaoCurso, $moduloAnterior);
     try {
         $avaliacao = $this->_avaliacaoDao->recuperar($moduloAnterior->getId());
         if ($avaliacao->getQtdQuestoesExibir() > 0) {
             try {
                 $controleAvaliacao = $this->_controleAvaliacaoDao->recuperarPorParticipacao($participacaoCurso, $avaliacao);
             } catch (cassandra_NotFoundException $e) {
                 $controleAvaliacao = new WeLearn_Cursos_Avaliacoes_ControleAvaliacao();
                 $controleAvaliacao->setParticipacaoCurso($participacaoCurso);
                 $controleAvaliacao->setAvaliacao($avaliacao);
                 $this->_controleAvaliacaoDao->salvar($controleAvaliacao);
             }
             if ($controleAvaliacao->isStatusFinalizada() && $controleAvaliacao->isSituacaoAprovado()) {
                 return $this->_retornarJSONProximoModulo($participacaoCurso, $moduloAnterior);
             } elseif ($controleAvaliacao->isStatusBloqueada()) {
                 $error = create_json_feedback_error_json('Para acessar o conteúdo do módulo seguinte, você precisa primeiro
                     ser aprovado na avaliação do módulo em que está. Por favor, refaça a
                     avaliação quando ela estiver disponível.');
                 return create_json_feedback(false, $error);
             } elseif ($controleAvaliacao->isStatusDesativada()) {
                 $error = create_json_feedback_error_json('Você foi reprovado muitas vezes na avaliação
                     deste módulo, você não poderá mais avançar no curso.');
                 return create_json_feedback(false, $error);
             } else {
                 return $this->_retornarJSONAvaliacao($participacaoCurso, $avaliacao);
             }
         } else {
             $error = create_json_feedback_error_json('Este módulo possui uma avaliação, mas ela não está ativa.
                 Você só poderá avançar no curso quando esta avaliação for ativada ou removida.
                 Contate os Gerenciadores do Curso.');
             return create_json_feedback(false, $error);
         }
     } catch (cassandra_NotFoundException $e) {
         return $this->_retornarJSONProximoModulo($participacaoCurso, $moduloAnterior);
     }
 }
Пример #5
0
 /**
  * @param array $column
  * @param WeLearn_Usuarios_Aluno $aluno
  * @param WeLearn_Cursos_Curso $curso
  * @return WeLearn_DTO_IDTO
  */
 private function _criarFromCassadra(array $column, WeLearn_Usuarios_Aluno $aluno, WeLearn_Cursos_Curso $curso)
 {
     if ($column['moduloAtual']) {
         //Tenta recuperar modulo atual se houver;
         try {
             $column['moduloAtual'] = $this->_moduloDao->recuperarPorOrdem($curso, $column['moduloAtual']);
         } catch (cassandra_NotFoundException $e) {
             //caso contrário unseta essa chave do array para nao causar problemas na criação do objeto.
             unset($column['moduloAtual']);
         }
     } else {
         //caso contrário unseta essa chave do array para nao causar problemas na criação do objeto.
         unset($column['moduloAtual']);
     }
     if ($column['aulaAtual'] && isset($column['moduloAtual'])) {
         //Tenta recuperar aula atual se houver, e se modulo foi encontrado;
         try {
             $column['aulaAtual'] = $this->_aulaDao->recuperarPorOrdem($column['moduloAtual'], $column['aulaAtual']);
         } catch (cassandra_NotFoundException $e) {
             //caso contrário unseta essa chave do array para nao causar problemas na criação do objeto.
             unset($column['aulaAtual']);
         }
     } else {
         //caso contrário unseta essa chave do array para nao causar problemas na criação do objeto.
         unset($column['aulaAtual']);
     }
     if ($column['paginaAtual'] && isset($column['aulaAtual'])) {
         //Tenta recuperar pagina atual se houver, e se a aula foi encontrada;
         try {
             $column['paginaAtual'] = $this->_paginaDao->recuperarPorOrdem($column['aulaAtual'], $column['paginaAtual']);
         } catch (cassandra_NotFoundException $e) {
             //caso contrário unseta essa chave do array para nao causar problemas na criação do objeto.
             unset($column['paginaAtual']);
         }
     } else {
         //caso contrário unseta essa chave do array para nao causar problemas na criação do objeto.
         unset($column['paginaAtual']);
     }
     if ($column['avaliacaoAtual']) {
         try {
             $column['avaliacaoAtual'] = $this->_avaliacaoDao->recuperar($column['avaliacaoAtual']);
         } catch (cassandra_NotFoundException $e) {
             unset($column['avaliacaoAtual']);
         }
     } else {
         unset($column['avaliacaoAtual']);
     }
     if ($column['certificado']) {
         try {
             $column['certificado'] = $this->_certificadoDao->recuperar($column['certificado']);
         } catch (cassandra_NotFoundException $e) {
             unset($column['certificado']);
         }
     } else {
         unset($column['certificado']);
     }
     $column['aluno'] = $aluno;
     $column['curso'] = $curso;
     $participacaoCurso = $this->criarNovo();
     $participacaoCurso->fromCassandra($column);
     return $participacaoCurso;
 }