function CurrentElection()
 {
     // Load the election system
     $Elections = ElectionSystem::get()->first();
     if ($Elections && $Elections->CurrentElectionID != 0) {
         return $Elections->CurrentElection();
     }
 }
 function CurrentElection()
 {
     // Load the election system
     $Elections = ElectionSystem::get()->first();
     if (!$Elections) {
         return false;
     }
     return $Elections->CurrentElection();
 }
 /**
  * @return ICandidate|null
  */
 public function getCurrentCandidate()
 {
     $res = null;
     $election = ElectionSystem::get()->first();
     if ($election && $election->CurrentElectionID != 0) {
         $current_election = $election->CurrentElection();
         if (!is_null($current_election)) {
             $candidate = Candidate::get()->filter(array('MemberID' => $this->getIdentifier(), 'ElectionID' => $current_election->ID))->first();
             $res = $candidate;
             if (!is_null($candidate)) {
                 UnitOfWork::getInstance()->setToCache($candidate);
                 UnitOfWork::getInstance()->scheduleForUpdate($candidate);
             }
         }
     }
     return $res;
 }
 function saveCandidateApplicationForm($data, $form)
 {
     $currentMember = Member::currentUser();
     // A user is logged in
     if ($currentMember) {
         // Load the election system
         $Elections = ElectionSystem::get()->first();
         $CurrentElection = $Elections->CurrentElection();
         if ($Candidate = Candidate::get()->filter(array('MemberID' => $currentMember->ID, 'ElectionID' => $CurrentElection->ID))->first()) {
             // Candidate profile exists
             // Clean up entries ////////////////
             // Set up HTML Purifier
             $config = HTMLPurifier_Config::createDefault();
             // Remove any CSS or inline styles
             $config->set('CSS.AllowedProperties', array());
             $purifier = new HTMLPurifier($config);
             // Clean Bio field
             if ($data["Bio"]) {
                 $currentMember->Bio = $purifier->purify($data["Bio"]);
                 $currentMember->write();
             }
             // Clean RelationshipToOpenStack field
             if ($toClean = $data["RelationshipToOpenStack"]) {
                 $Candidate->RelationshipToOpenStack = $purifier->purify($toClean);
             }
             // Clean Experience field
             if ($toClean = $data["Experience"]) {
                 $Candidate->Experience = $purifier->purify($toClean);
             }
             // Clean BoardsRole field
             if ($toClean = $data["BoardsRole"]) {
                 $Candidate->BoardsRole = $purifier->purify($toClean);
             }
             // Clean HasAcceptedNomination field
             if ($toClean = $data["TopPriority"]) {
                 $Candidate->TopPriority = $purifier->purify($toClean);
             }
             $Candidate->write();
             $questions = array('Bio' => 'Bio', 'RelationshipToOpenStack' => 'RelationshipToOpenStack', 'Experience' => 'Experience', 'BoardsRole' => 'BoardsRole', 'TopPriority' => 'TopPriority');
             // Must answer all questions, but can save work as they go, so we're going to check here rather than set up validators
             if (strlen($data['Bio']) < 4 || strlen($data['RelationshipToOpenStack']) < 4 || strlen($data['Experience']) < 4 || strlen($data['BoardsRole']) < 4 || strlen($data['TopPriority']) < 4) {
                 $Candidate->HasAcceptedNomination = FALSE;
                 $form->saveInto($Candidate);
                 $Candidate->write();
                 $form->clearMessage();
                 $form->sessionMessage("Your edits have been saved but you will need to provide full answers to all these questions to be eligible as a candidate.", "bad");
                 $this->redirectBack();
                 return;
             }
             $Candidate->HasAcceptedNomination = TRUE;
             $Candidate->write();
             $form->clearMessage();
             $this->redirect($this->Link() . 'election/');
         } else {
             $form->clearMessage();
             $form->sessionMessage('There was an error saving your edits.', "bad");
             $this->redirectBack();
         }
     }
 }