CRM-16587 Selecting results now work when results are sorted on contact id.
authorJohan Vervloet <johanv@johanv.org>
Tue, 15 Dec 2015 21:16:24 +0000 (22:16 +0100)
committerJohan Vervloet <johanv@johanv.org>
Tue, 15 Dec 2015 21:29:02 +0000 (22:29 +0100)
This is also rather hacky, since you have to adapt your custom searches again.
I fixed it for PostMailing and ZipCodeRange.

----------------------------------------
* CRM-16587: Action menu is not available on selected records on a Custom search
  https://issues.civicrm.org/jira/browse/CRM-16587

Conflicts:
CRM/Contact/Form/Search/Custom/ZipCodeRange.php

CRM/Contact/Form/Search/Custom/PostalMailing.php
CRM/Contact/Form/Search/Custom/ZipCodeRange.php

index 352c1d770561f012ea59702cb0583f0c2e0d7324..0676077ac364c5d8c2bfaf6ec44667969977fe24 100644 (file)
@@ -42,14 +42,12 @@ class CRM_Contact_Form_Search_Custom_PostalMailing extends CRM_Contact_Form_Sear
     parent::__construct($formValues);
 
     $this->_columns = array(
-      // The only alias you can (and should!) use in the
-      // columns, is contact_id. Because contact_id is used
-      // in a lot of places, and it seems to be important that
-      // it is called contact_id_a.
-      //
-      // For the other fields, if possible, you should prefix
-      // their names with the table alias you are selecting them
-      // from. This way, you can work around CRM-16587.
+      // If possible, you should prefix all column names with the
+      // table alias you are selecting them from. This includes
+      // contact_id: if you can select it from another table than
+      // contact_a, you should.
+      // All this is needed if you want to work around CRM-16587 with
+      // the patch that can be found over there.
       //
       // This approach wil not work if you want to select fields
       // with the same name from different tables, this will generate
@@ -57,7 +55,7 @@ class CRM_Contact_Form_Search_Custom_PostalMailing extends CRM_Contact_Form_Sear
       // use column aliases in your SELECT clause and in the array
       // below, but you will still hit CRM-16587 when sorting on these
       // fields.
-      ts('Contact ID') => 'contact_id',
+      ts('Contact ID') => 'address.contact_id',
       ts('Address') => 'address.street_address',
       ts('Contact Type') => 'contact_a.contact_type',
       ts('Name') => 'contact_a.sort_name',
index 12f07d948297bdf11201323f6e65e5346e968e3a..aebf0a4a0b4ee10c270eaa0ba873d828a348872d 100644 (file)
@@ -42,7 +42,10 @@ class CRM_Contact_Form_Search_Custom_ZipCodeRange extends CRM_Contact_Form_Searc
     parent::__construct($formValues);
 
     $this->_columns = array(
-      ts('Contact ID') => 'contact_id',
+      // If contact_id exists in another table than contact_a, you
+      // should select from there, if you want to use the
+      // workaround form CRM-16587.
+      ts('Contact ID') => 'email.contact_id',
       ts('Name') => 'sort_name',
       ts('Email') => 'email',
       ts('Zip') => 'postal_code',