Example #1
0
 private function find_constituency($args)
 {
     if ($args['s'] != '') {
         $searchterm = $args['s'];
     } else {
         return false;
     }
     list($constituencies, ) = \MySociety\TheyWorkForYou\Utility\Search::searchConstituenciesByQuery($searchterm);
     $constituency = "";
     if (count($constituencies) == 1) {
         $constituency = $constituencies[0];
     }
     $cons = array();
     $mp_types = array('mp' => 0, 'former' => 0);
     if ($constituency != '') {
         try {
             // Got a match, display....
             $MEMBER = new \MySociety\TheyWorkForYou\Member(array('constituency' => $constituency, 'house' => 1));
             $cons[] = $MEMBER;
             if ($MEMBER->current_member(1)) {
                 $mp_types['mp']++;
             } else {
                 $mp_types['former']++;
             }
         } catch (\MySociety\TheyWorkForYou\MemberException $e) {
             $cons = array();
         }
     } elseif (count($constituencies)) {
         foreach ($constituencies as $constituency) {
             try {
                 $MEMBER = new \MySociety\TheyWorkForYou\Member(array('constituency' => $constituency, 'house' => 1));
                 $cons[] = $MEMBER;
                 if ($MEMBER->current_member(1)) {
                     $mp_types['mp']++;
                 } else {
                     $mp_types['former']++;
                 }
             } catch (\MySociety\TheyWorkForYou\MemberException $e) {
                 continue;
             }
         }
     }
     return array($cons, $mp_types);
 }
Example #2
0
 public function testConstituencySearch()
 {
     $this->assertEquals(array(array('Alyn and Deeside'), false), \MySociety\TheyWorkForYou\Utility\Search::searchConstituenciesByQuery('Alyn'));
     $this->assertEquals(array(array('Alyn and Deeside'), false), \MySociety\TheyWorkForYou\Utility\Search::searchConstituenciesByQuery('Alyn and Deeside'));
 }
Example #3
0
 private function searchForConstituenciesAndMembers()
 {
     // Do the search
     if ($this->data['alertsearch']) {
         $this->data['members'] = \MySociety\TheyWorkForYou\Utility\Search::searchMemberDbLookupWithNames($this->data['alertsearch'], true);
         list($this->data['constituencies'], $this->data['valid_postcode']) = \MySociety\TheyWorkForYou\Utility\Search::searchConstituenciesByQuery($this->data['alertsearch']);
     }
     # If the above search returned one result for member or constituency search,
     # use it immediately
     if (isset($this->data['members']) && $this->data['members']->rows() == 1) {
         $this->data['pid'] = $this->data['members']->field(0, 'person_id');
         unset($this->data['members']);
         $this->data['alertsearch'] = '';
     }
     if (isset($this->data['constituencies']) && count($this->data['constituencies']) == 1 && $this->data['valid_postcode']) {
         $MEMBER = new \MEMBER(array('constituency' => $this->data['constituencies'][0], 'house' => 1));
         $this->data['pid'] = $MEMBER->person_id();
         $this->data['pc'] = $this->data['alertsearch'];
         unset($this->data['constituencies']);
         $this->data['alertsearch'] = '';
     }
     if (isset($this->data['constituencies'])) {
         $cons = array();
         foreach ($this->data['constituencies'] as $constituency) {
             try {
                 $MEMBER = new \MEMBER(array('constituency' => $constituency, 'house' => 1));
                 $cons[$constituency] = $MEMBER;
             } catch (\MySociety\TheyWorkForYou\MemberException $e) {
                 // do nothing
             }
         }
         $this->data['constituencies'] = $cons;
     }
 }