Example #1
0
 private function mapearVoto(Voto $voto, array $props)
 {
     if (array_key_exists('idVoto', $props)) {
         $voto->setIdVoto($props['idVoto']);
     }
     if (array_key_exists('candidato', $props)) {
         $voto->setPrimerP($props['candidato']);
     }
 }
 /**
  * Displays a particular model.
  * @param integer $id the ID of the model to be displayed
  */
 public function actionView($id)
 {
     /* @var $professor Professor */
     $professor = Professor::model()->findByPk($id);
     // Gerando lista de depoimentos
     $c = new CDbCriteria();
     $c->compare('aprovado', 1);
     $c->compare('id_professor', $professor->id_professor);
     $c->order = "up DESC, down ASC, id_depoimento DESC";
     $depoimentos = Depoimento::model()->findAll($c);
     // Buscando nota do professor
     $mediaVotos = floor(Voto::model()->model()->findBySql("SELECT AVG(voto) as voto FROM voto WHERE id_professor = '{$professor->id_professor}'")->attributes['voto'] * 100) / 100;
     $qtdVotos = Voto::model()->countByAttributes(array('id_professor' => $professor->id_professor));
     // Buscando as disciplinas
     $ensina = ProfessorDisciplina::model()->findAllByAttributes(array('id_professor' => $professor->id_professor));
     $this->render('view', array('professor' => $professor, 'depoimentos' => $depoimentos, 'ensina' => $ensina, 'media' => $mediaVotos, 'qtdVotos' => $qtdVotos));
 }
<?php 
$i = 0;
if (count($professores) == 0) {
    echo "<div class='alert'><b><h4>Nenhum professor encontrado.</h4></b></div>";
}
foreach ($professores as $key => $professor) {
    ?>
		<?php 
    if ($i == 0) {
        ?>
			<div class="span12">
		<?php 
    }
    ?>

		<?php 
    $depoimentosMaisRelevante = Depoimento::model()->findByAttributes(array('id_professor' => $professor->id_professor), array('order' => 'up DESC'));
    $mediaVotos = floor(Voto::model()->model()->findBySql("SELECT AVG(voto) as voto FROM voto WHERE id_professor = '{$professor->id_professor}'")->attributes['voto'] * 100) / 100;
    $this->renderPartial('pesquisa_view', array('professor' => $professor, 'depoimento' => $depoimentosMaisRelevante, 'media' => $mediaVotos));
    ?>
	<?php 
    if ($i == 1) {
        $i = -1;
        ?>
			</div>
		<?php 
    }
    ?>
	<?php 
    $i++;
}
Example #4
0
 public function votar()
 {
     $currentuser = $_SESSION["currentuser"];
     $errors = array();
     $votoPincho1 = new Voto();
     $votoPincho2 = new Voto();
     $votoPincho3 = new Voto();
     if (isset($_POST["codigoP1"])) {
         /*Guarda los datos introducidos en el formulario en el objeto, más el
           email del usuario actual que es el que realiza la votacion*/
         $votoPincho1->setUsuarioEmailU($currentuser->getEmailU());
         $votoPincho1->setCodigoPinchoV($_POST["codigoP1"]);
         $votoPincho1->setValoracionV('1');
         $votoPincho2->setUsuarioEmailU($currentuser->getEmailU());
         $votoPincho2->setCodigoPinchoV($_POST["codigoP2"]);
         $votoPincho2->setValoracionV('0');
         $votoPincho3->setUsuarioEmailU($currentuser->getEmailU());
         $votoPincho3->setCodigoPinchoV($_POST["codigoP3"]);
         $votoPincho3->setValoracionV('0');
         /*Comprueba si los codigos introducidos son correctos y los introduce en el objeto*/
         if (!$votoPincho1->isCorrectCode()) {
             $errors["codigoP1"] = "El código introducido no pertenece a ningun pincho";
         }
         if (!$votoPincho2->isCorrectCode()) {
             $errors["codigoP2"] = "El código introducido no pertenece a ningun pincho";
         }
         if (!$votoPincho3->isCorrectCode()) {
             $errors["codigoP3"] = "El código introducido no pertenece a ningun pincho";
         }
         /*Comprueba si los codigos introducidos corresponden a pinchos diferentes*/
         if ($votoPincho1->isPinchoEquals($votoPincho2)) {
             $errors["codigoP2"] = "Los codigos 1 y 2 no pueden ser sobre el mismo pincho";
         }
         if ($votoPincho2->isPinchoEquals($votoPincho3)) {
             $errors["codigoP3"] = "Los codigos 3 y 2 no pueden ser sobre el mismo pincho";
         }
         if ($votoPincho3->isPinchoEquals($votoPincho1)) {
             $errors["codigoP3"] = "Los codigos 1 y 3 no pueden ser sobre el mismo pincho";
         }
         /*Comprueba si los codigos introducidos corresponden a pinchos diferentes*/
         if ($votoPincho1->isPinchoVotado($currentuser->getEmailU())) {
             $errors["codigoP1"] = "Este codigo pertenece a un pincho que ya has votado";
         }
         if ($votoPincho2->isPinchoVotado($currentuser->getEmailU())) {
             $errors["codigoP2"] = "Este codigo pertenece a un pincho que ya has votado";
         }
         if ($votoPincho3->isPinchoVotado($currentuser->getEmailU())) {
             $errors["codigoP3"] = "Este codigo pertenece a un pincho que ya has votado";
         }
         try {
             // comprueba si el código del pincho introducido ya forma parte de un voto anterior
             if (!$votoPincho1->votoExist() and !$votoPincho2->votoExist() and !$votoPincho3->votoExist()) {
                 //continua solo si no se ha producido ningun error
                 if (!sizeof($errors) > 0) {
                     /*Si no es asi, guarda las votaciones en la base de datos*/
                     $votoPincho1->save();
                     $votoPincho2->save();
                     $votoPincho3->save();
                     $votoPincho1->updateNumVotos();
                     //mensaje de confirmación y redirige al metodo verPerfil del controlador popularCotroller
                     echo "<script> alert('Voto registrado correctamente'); </script>";
                     echo "<script>window.location.replace('index.php?controller=popular&action=verPerfil');</script>";
                 } else {
                     $this->view->setVariable("errors", $errors);
                 }
                 /*Si ya existe en la base de datos muestra un mensaje de error*/
             } else {
                 if ($votoPincho1->votoExist()) {
                     $errors["codigoP1"] = "Este código no es válido";
                 }
                 if ($votoPincho2->votoExist()) {
                     $errors["codigoP2"] = "Este código no es válido";
                 }
                 if ($votoPincho3->votoExist()) {
                     $errors["codigoP3"] = "Este código no es válido";
                 }
                 $this->view->setVariable("errors", $errors);
             }
         } catch (ValidationException $ex) {
             $errors = $ex->getErrors();
         }
     }
     /*Permite visualizar: view/vistas/votarJPopu.php */
     $this->view->render("vistas", "votarJPopu");
 }
 public function votar()
 {
     $currentuser = $_SESSION["currentuser"];
     $errors = array();
     $votoPincho = new Voto();
     if (isset($_POST["codigoP"])) {
         //Comprueba que la valoración introducida es correcta
         $votoPincho->checkIsValidForVoto();
         /*Guarda los datos introducidos en el formulario en el objeto, más el
           email del usuario actual que es el que realiza la votacion*/
         $votoPincho->setUsuarioEmailU($currentuser->getEmailU());
         $votoPincho->setCodigoPinchoV($_POST["codigoP"]);
         $votoPincho->setValoracionV($_POST["valoracionP"]);
         /*Comprueba si el codigo introducido es correcto y lo introduce en el objeto*/
         if (!$votoPincho->isCorrectCode()) {
             $errors["codigoP"] = "El código introducido no pertenece a ningun pincho";
         }
         if ($votoPincho->isPinchoVotado($currentuser->getEmailU())) {
             $errors["codigoP"] = "Este codigo pertenece a un pincho que ya has votado";
         }
         try {
             // comprueba si el código del pincho introducido ya forma parte de un voto anterior
             if (!$votoPincho->votoExist()) {
                 //continua solo si no se ha producido ningun error
                 $concu = $this->concurso->ver_datos();
                 /*En el caso de que ya sea la fecha en la que ya se deben saber los finalistas,
                 	 apartir de ese momento el jurado profesional solamenre podra votar a los pinchos
                 	 que sean finalistas (los que esten en la tabla premiados con el valor del
                 	 atributo "ronda=1")*/
                 if ($concu->getFechaFinalistasC() <= date("Y-m-d")) {
                     if (!$votoPincho->esPinchoFinalista()) {
                         $errors["codigoP"] = "Este pincho no pertenece a la lista de finalistas";
                     }
                 }
                 if (!sizeof($errors) > 0) {
                     $votoPincho->updateNumVotosProf();
                     /*Si no es asi, guarda las votaciones en la base de datos*/
                     $votoPincho->save();
                     //mensaje de confirmación y redirige al metodo verPerfil del controlador profesionalCotroller
                     echo "<script> alert('Voto registrado correctamente'); </script>";
                     echo "<script>window.location.replace('index.php?controller=profesional&action=verPerfil');</script>";
                 } else {
                     $this->view->setVariable("errors", $errors);
                 }
                 /*Si ya existe en la base de datos muestra un mensaje de error*/
             } else {
                 $errors["codigoP"] = "Este código ya esta registrado";
                 $this->view->setVariable("errors", $errors);
             }
         } catch (ValidationException $ex) {
             $errors = $ex->getErrors();
         }
     }
     /*Permite visualizar: view/vistas/votarJPopu.php */
     $this->view->render("vistas", "votarJProf");
 }
 /**
  * Returns the data model based on the primary key given in the GET variable.
  * If the data model is not found, an HTTP exception will be raised.
  * @param integer $id the ID of the model to be loaded
  * @return Voto the loaded model
  * @throws CHttpException
  */
 public function loadModel($id)
 {
     $model = Voto::model()->findByPk($id);
     if ($model === null) {
         throw new CHttpException(404, 'The requested page does not exist.');
     }
     return $model;
 }
 public function guardarVoto()
 {
     try {
         $candidato = isset($_POST['candidato']) ? $_POST['candidato'] : NULL;
         $voto = new Voto();
         $voto->creaVoto($candidato);
         echo json_encode(1);
     } catch (Exception $exc) {
         echo $exc->getTraceAsString();
     }
 }