private static function showForm($action)
 {
     // Postando?
     if (count($_POST) > 0) {
         /* @var $inscricao Inscricao */
         $inscricao = Inscricoes::getInstance()->getById(get_query_var('avaliacao') / 13);
         /* @var $evento Evento */
         $questionario = $inscricao->evento()->getQuestionarioAvaliacao();
         $perguntas = $questionario->getPerguntas();
         $jaRespondeu = $inscricao->hasAvaliacaoResposta(1);
         $mensagem = null;
         foreach ($perguntas as $pergunta) {
             $resp = trim($_POST['input_' . $pergunta->id]);
             //                var_dump($resp);
             if ($pergunta->obrigatoria && $resp == '') {
                 setFlashError("Por favor, responda as perguntas obrigatórias (marcadas com *)");
                 break;
             }
             if ($resp != '') {
                 $resposta = Respostas::getInstance()->createResposta($pergunta, $inscricao, $resp);
                 $mensagem .= $pergunta->titulo . ': ' . $resp . '<br>';
             }
         }
         if (!hasFlashError()) {
             setFlash("sucesso");
             // Enviar email com respostas
             //                $mensagem="Respostas:<br><br>".$mensagem;
             //                $inscricao->evento()->organizador()->enviarEmail(
             //                    $inscricao->evento()->organizador()->email,
             //                    "Resposta - ".$questionario->titulo." - ".$inscricao->evento()->titulo." - ". $inscricao->pessoa()->nome,
             //                    $mensagem
             //                );
             // Creditar o gamification
             if (TGO_EVENTO_GAMIFICATION === true && !$jaRespondeu) {
                 Gamification::getInstance()->broadcast('event_feedback', $inscricao->id_pessoa, $inscricao);
             }
         }
     } else {
         // Obter inscrição
         $inscricao = Inscricoes::getInstance()->getById(get_query_var('avaliacao') / 13);
         if ($inscricao == null) {
             die("Inscrição não localizada");
         }
         // Validar inscrição
         if ($inscricao->confirmado != '1') {
             die("Inscrição não confirmada");
         }
     }
     return 'avaliacao.php';
 }
 public function createResposta(Pergunta $pergunta, Inscricao $inscricao, $resp)
 {
     // Certificar primeiro
     $resposta = Respostas::getInstance()->getByPerguntaInscricao($pergunta->id, $inscricao->id);
     $inserir = $resposta == null;
     // Criar
     if ($inserir) {
         $resposta = new Resposta();
     }
     $resposta->id_questionario = $pergunta->id_questionario;
     $resposta->id_questionario_pergunta = $pergunta->id;
     $resposta->id_pessoa = $inscricao->id_pessoa;
     $resposta->id_inscricao = $inscricao->id;
     $resposta->resposta = $resp;
     if ($inserir) {
         $resposta = $this->insert($resposta);
     } else {
         $resposta = $this->save($resposta->id, $resposta);
     }
     return $resposta;
 }
 /** Retorna a média das avaliações, da pergunta informada */
 public function getAvaliacaoMediaPergunta($id_pergunta)
 {
     return Respostas::getInstance()->getMediaPerguntaEvento($this->id, $id_pergunta);
 }
 /**
  * Diz se esta inscrição já deu alguma avaliação
  */
 public function hasAvaliacao()
 {
     return Respostas::getInstance()->hasByInscricao($this->id);
 }