public function filterCheckExists($filterChain)
 {
     $data = $this->data();
     $request = ElectorRegistrationRequest::model()->with($this->nestedModels)->findByAttributes(array('user_id' => (int) $data['user_id'], 'election_id' => (int) $data['election_id']));
     if ($request) {
         if ($request->user_id == Yii::app()->user->id) {
             switch ($request->status) {
                 case ElectorRegistrationRequest::STATUS_REGISTERED:
                     $message = 'You have been already registered as elector';
                     break;
                 default:
                     $message = 'You have already requested permission to become elector. ' . 'Election administrator will consider it soon.';
                     break;
             }
         } else {
             $message = 'Elector registration request has been already created';
         }
         $this->renderJson(array('success' => true, 'status' => 'exists', 'message' => Yii::t('aes', $message), 'data' => array('totalCount' => 1, 'models' => $this->allToArray(array($request)))));
         return true;
     } else {
         $elector = Elector::model()->find('user_id = :userId AND election_id = :electionId', array(':userId' => $data['user_id'], ':electionId' => $data['election_id']));
         if ($elector) {
             $this->renderJson(array('success' => true, 'status' => 'exists_elector', 'message' => Yii::t('aes', 'You have been already registered as elector')));
             return true;
         }
     }
     $filterChain->run();
 }
Example #2
0
 private function validaElector($miembro)
 {
     $_esElector = false;
     $eleccion = Commons::eleccionVigente();
     $elector = Elector::model()->find('idmiembro=:idmiembro AND ideleccion=:ideleccion AND estado=:estado', array(':idmiembro' => $miembro->idmiembro, ':ideleccion' => $eleccion->ideleccion, ':estado' => '1'));
     if (isset($elector)) {
         $_esElector = false;
     }
     return $_esElector;
 }
Example #3
0
 public function usuarioPadronActivo()
 {
     $_activa = false;
     $_elector = Elector::model()->find("idmiembro=:idmiembro and ideleccion=:ideleccion and estado=:estado", array(':idmiembro' => Commons::miembroActivo()->idmiembro, 'ideleccion' => Commons::eleccionVigente()->ideleccion, ':estado' => '1'));
     if ($_elector) {
         $_activa = true;
     } else {
         Yii::log("El miembro no esta registrado como elector");
     }
     return $_activa;
 }
 public function testRegistrationRequestedByUserInElectionWithConfirmationNotNeeded()
 {
     $userId = 2;
     $err = new ElectorRegistrationRequest();
     $err->election_id = 2;
     $err->initiator_id = $userId;
     $err->user_id = $userId;
     $electors = Elector::model()->findAllByAttributes(array('election_id' => $err->election_id, 'user_id' => $err->user_id));
     $this->assertCount(0, $electors);
     $err->save();
     $relElector = $err->elector;
     $errId = $err->id;
     $this->assertGreaterThan(0, $errId);
     $this->assertEquals($err->status, ElectorRegistrationRequest::STATUS_REGISTERED);
     $row = Yii::app()->db->createCommand('SELECT * FROM elector_registration_request WHERE id = ' . $errId)->queryRow(true);
     $this->assertEquals($err->getAttributes(), $row);
     $electors = Elector::model()->findAllByAttributes(array('election_id' => $err->election_id, 'user_id' => $err->user_id, 'status' => Elector::STATUS_ACTIVE));
     $this->assertCount(1, $electors);
     $this->assertEquals($electors[0]->id, $relElector->id);
     $this->assertEquals($electors[0]->user_id, $relElector->user_id);
     $this->assertEquals($electors[0]->election_id, $relElector->election_id);
     $this->assertEquals($electors[0]->status, $relElector->status);
 }
Example #5
0
 /**
  * Checks condition of Election registration options and registers candidate
  * as elector too.
  * 
  * Registretion does not start if elections' electors should be in electors
  * groups
  * 
  * @return Elector If registerd, FALSE otherwise
  */
 protected function registerAsElector()
 {
     if ($this->election->autoElectorRegistrationAvailable($this->user_id)) {
         $elector = new Elector();
         $elector->election_id = $this->election_id;
         $elector->user_id = $this->user_id;
         if ($elector->save()) {
             return $elector;
         }
     }
     return false;
 }
Example #6
0
 public static function electorVigente()
 {
     //        Yii::log('idmiembro ' . self::miembroActivo()->idmiembro);
     //        Yii::log('ideleccion ' . self::eleccionVigente()->ideleccion);
     return Elector::model()->find('idmiembro=:idmiembro and ideleccion=:ideleccion and estado=:estado', array(':idmiembro' => self::miembroActivo()->idmiembro, ':ideleccion' => self::eleccionVigente()->ideleccion, ':estado' => '1'));
 }
 public function testGroupAssignmentAndUsersRegistration()
 {
     $this->openGroupsManagement(4);
     $rowSel = 'css=#groups-grid table.x-grid-item:nth-of-type({%index%}) ';
     $groupAssignCheck = $rowSel . 'tr.x-grid-row td.x-grid-cell:nth-of-type(5) div ';
     $groupViewBtn = $rowSel . 'tr.x-grid-row td.x-grid-cell:nth-of-type(6) img:nth-of-type(1)';
     $this->waitForCssCount('css=#groups-grid table.x-grid-item', 2);
     $this->assertNull(ElectionVoterGroup::model()->findByAttributes(array('election_id' => 4, 'voter_group_id' => 1)));
     //assign local
     $this->mouseDown($this->parseSel($groupAssignCheck, array('index' => 1)));
     $this->waitForElementPresent($this->parseSel($groupAssignCheck . '.x-grid-checkcolumn-checked', array('index' => 1)));
     $this->sleep(1500);
     $elVoterGroup = ElectionVoterGroup::model()->findByAttributes(array('election_id' => 4, 'voter_group_id' => 1));
     $this->assertInstanceOf('ElectionVoterGroup', $elVoterGroup);
     //assign global
     $this->mouseDown($this->parseSel($groupAssignCheck, array('index' => 2)));
     $this->waitForElementPresent($this->parseSel($groupAssignCheck . '.x-grid-checkcolumn-checked', array('index' => 2)));
     $this->sleep(1500);
     $elVoterGroup = ElectionVoterGroup::model()->findByAttributes(array('election_id' => 4, 'voter_group_id' => 2));
     $this->assertInstanceOf('ElectionVoterGroup', $elVoterGroup);
     //register
     $this->assertCssCount('css=#members-tabs #electorate table.x-grid-item', 0);
     $this->click('id=register-electors-btn');
     $this->closeModal();
     $this->waitForCssCount('css=#members-tabs #electorate table.x-grid-item', 3);
     $this->assertElementContainsText('css=#members-tabs #electorate', 'Vasiliy');
     $this->assertElementContainsText('css=#members-tabs #electorate', 'Another');
     $this->assertElementContainsText('css=#members-tabs #electorate', 'Jhon');
     $electors = Elector::model()->findAllByAttributes(array('election_id' => 4));
     $this->assertCount(3, $electors);
     //unasign local
     $this->mouseDown($this->parseSel($groupAssignCheck, array('index' => 1)));
     $this->waitForElementNotPresent($this->parseSel($groupAssignCheck . '.x-grid-checkcolumn-checked', array('index' => 2)));
     $this->sleep(1500);
     $elVoterGroup = ElectionVoterGroup::model()->findByAttributes(array('election_id' => 4, 'voter_group_id' => 1));
     $this->assertNull($elVoterGroup);
     //unassign global
     $this->mouseDown($this->parseSel($groupAssignCheck, array('index' => 1)));
     $this->waitForElementNotPresent($this->parseSel($groupAssignCheck . '.x-grid-checkcolumn-checked', array('index' => 1)));
     $this->sleep(1500);
     $elVoterGroup = ElectionVoterGroup::model()->findByAttributes(array('election_id' => 4, 'voter_group_id' => 2));
     $this->assertNull($elVoterGroup);
 }
 /**
  * Return TRUE if registration request is available to user
  * for specified election
  * 
  * @param Election|int $election
  * @param int $user userId
  * @return boolean
  */
 public static function isAvailable($election, $user)
 {
     $userId = $user;
     if (is_numeric($election)) {
         $electionId = $election;
         $election = Election::model()->findByPk($electionId);
     } else {
         $electionId = $election->id;
     }
     if (!$election->isElectorsRegistrationOpen()) {
         return false;
     }
     $elector = Elector::model()->findByAttributes(array('user_id' => $userId, 'election_id' => $electionId));
     if ($elector) {
         return false;
     }
     $registration = self::model()->findByAttributes(array('user_id' => $userId, 'election_id' => $electionId));
     if ($registration) {
         return false;
     }
     return true;
 }
Example #9
0
 public function autoElectorRegistrationAvailable($userId = null)
 {
     if (!$userId) {
         $userId = Yii::app()->user->id;
     }
     if (in_array($this->status, array(Election::STATUS_REGISTRATION, Election::STATUS_ELECTION)) && $this->voter_group_restriction == Election::VGR_NO) {
         $elector = Elector::model()->findByAttributes(array('user_id' => $userId, 'election_id' => $this->id));
         if ($elector) {
             return false;
         }
         $registration = ElectorRegistrationRequest::model()->findByAttributes(array('user_id' => $userId, 'election_id' => $this->id));
         if ($registration) {
             return false;
         }
         return true;
     }
     return false;
 }