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; }
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; }
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); } }
/** * @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; }