CRM-16004 and CRM-16001 fixes
authormonishdeb <monish.deb@webaccessglobal.com>
Tue, 24 Feb 2015 11:38:34 +0000 (17:08 +0530)
committermonishdeb <monish.deb@webaccessglobal.com>
Wed, 25 Feb 2015 07:16:03 +0000 (12:46 +0530)
----------------------------------------
* CRM-16004: Participant search link broken on "force" search
  https://issues.civicrm.org/jira/browse/CRM-16004
* CRM-16001: Advanced Search by contribution status throws FATAL error
  https://issues.civicrm.org/jira/browse/CRM-16001

CRM/Contact/Form/Search/Advanced.php
CRM/Event/BAO/Query.php
CRM/Event/Form/Search.php

index 09ce18cbf4a5bc2856b3d98093d1ef15aedda0e8..3bc8b535303dcf7cd9d4a1fb3b6dcdaee29b8068 100644 (file)
@@ -367,6 +367,7 @@ class CRM_Contact_Form_Search_Advanced extends CRM_Contact_Form_Search {
       'financial_type_id',
       'contribution_soft_credit_type_id',
       'contribution_status',
+      'contribution_status_id',
       'contribution_source',
       'contribution_trxn_id',
       'activity_type_id',
index 5298208350b4815636ed0b1c1688f5cf99a85c8e..41b291528d2297717ef612b6be99071f62842e82 100644 (file)
@@ -349,8 +349,8 @@ class CRM_Event_BAO_Query {
           if ($name == 'is_pay_later') {
             $qillName = $name;
           }
-          if ($name == 'participant_role_id') {
-            $qillName = str_replace('_id', '', $name);
+          if ($name == 'role_id') {
+            $qillName = 'participant_role';
           }
         }
 
index d83b0345bedd3d05cf3d63893148891590da18a4..cd99eb484ad4b6637718b9237453ad37953b4cdc 100644 (file)
@@ -253,12 +253,6 @@ class CRM_Event_Form_Search extends CRM_Core_Form_Search {
 
     if (!empty($_POST)) {
       $this->_formValues = $this->controller->exportValues($this->_name);
-      foreach (array('participant_status_id', 'participant_role_id') as $element) {
-        $value = CRM_Utils_Array::value($element, $this->_formValues);
-        if ($value && is_array($value)) {
-          $this->_formValues[$element] = array('IN' => $value);
-        }
-      }
     }
 
     if (empty($this->_formValues)) {
@@ -380,20 +374,15 @@ class CRM_Event_Form_Search extends CRM_Core_Form_Search {
 
     if (isset($status)) {
       if ($status === 'true') {
-        $statusTypes = CRM_Event_PseudoConstant::participantStatus(NULL, "is_counted = 1");
+        $statusTypes = array_keys(CRM_Event_PseudoConstant::participantStatus(NULL, "is_counted = 1"));
       }
       elseif ($status === 'false') {
-        $statusTypes = CRM_Event_PseudoConstant::participantStatus(NULL, "is_counted = 0");
+        $statusTypes = array_keys(CRM_Event_PseudoConstant::participantStatus(NULL, "is_counted = 0"));
       }
       elseif (is_numeric($status)) {
-        $status = (int) $status;
-        $statusTypes = array($status => CRM_Event_PseudoConstant::participantStatus($status));
-      }
-      $status = array();
-      foreach ($statusTypes as $key => $value) {
-        $status[$key] = 1;
+        $statusTypes = (int) $status;
       }
-      $this->_formValues['participant_status_id'] = $status;
+      $this->_formValues['participant_status_id'] = $statusTypes;
     }
 
     $role = CRM_Utils_Request::retrieve('role', 'String',
@@ -408,14 +397,16 @@ class CRM_Event_Form_Search extends CRM_Core_Form_Search {
         $roleTypes = CRM_Event_PseudoConstant::participantRole(NULL, "filter = 0");
       }
       elseif (is_numeric($role)) {
-        $role = (int) $role;
-        $roleTypes = array($role => CRM_Event_PseudoConstant::participantRole($role));
+        $roleTypes = (int) $role;
       }
-      $role = array();
-      foreach ($roleTypes as $key => $value) {
-        $role[$key] = 1;
+      $this->_formValues['participant_role_id'] = $roleTypes;
+    }
+
+    foreach (array('participant_status_id', 'participant_role_id') as $element) {
+      $value = CRM_Utils_Array::value($element, $this->_formValues);
+      if ($value && is_array($value)) {
+        $this->_formValues[$element] = array('IN' => $value);
       }
-      $this->_formValues['participant_role_id'] = $role;
     }
 
     $type = CRM_Utils_Request::retrieve('type', 'Positive',