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