Mailing pseudoconstant CRM-12464
authorColeman Watts <coleman@civicrm.org>
Sat, 4 May 2013 22:35:04 +0000 (15:35 -0700)
committerColeman Watts <coleman@civicrm.org>
Thu, 30 May 2013 05:14:04 +0000 (22:14 -0700)
----------------------------------------
* CRM-12464: Search improvements in 4.4
  http://issues.civicrm.org/jira/browse/CRM-12464

CRM/Mailing/Form/Approve.php
CRM/Mailing/PseudoConstant.php
CRM/Utils/Array.php
CRM/Utils/Token.php
tests/phpunit/CRM/Core/PseudoConstantTest.php
xml/schema/Mailing/Mailing.xml
xml/schema/Member/Membership.xml

index 992b00335f32d11ff99bef39b46e166e5b446c1a..e6d1f46d25ec9efaf99faeb37bc6335cdaacb4c8 100644 (file)
@@ -112,7 +112,7 @@ class CRM_Mailing_Form_Approve extends CRM_Core_Form {
 
     $this->addElement('textarea', 'approval_note', ts('Approve/Reject Note'));
 
-    $mailApprovalStatus = CRM_Mailing_PseudoConstant::approvalStatus();
+    $mailApprovalStatus = CRM_Core_OptionGroup::values('mail_approval_status');
 
     // eliminate the none option
     $noneOptionID = CRM_Core_OptionGroup::getValue('mail_approval_status',
index 0a36721210ac5ad891d35391c6b65994a5dea31c..8b7a9742e2c2aee18a89c48fa8ee6dd0af778e5a 100644 (file)
  */
 class CRM_Mailing_PseudoConstant extends CRM_Core_PseudoConstant {
 
-  /**
-   * mailing approval status
-   * @var array
-   * @static
-   */
-  private static $approvalStatus;
-
   /**
    * mailing templates
    * @var array
@@ -180,24 +173,6 @@ class CRM_Mailing_PseudoConstant extends CRM_Core_PseudoConstant {
     return self::$completed;
   }
 
-  /**
-   * Get all mail approval status.
-   *
-   * The static array approvalStatus is returned
-   *
-   * @access public
-   * @static
-   *
-   * @return array - array reference of all mail approval statuses
-   *
-   */
-  public static function &approvalStatus() {
-    if (!self::$approvalStatus) {
-      self::$approvalStatus = CRM_Core_OptionGroup::values('mail_approval_status');
-    }
-    return self::$approvalStatus;
-  }
-
   /**
    * Labels for advanced search against mailing summary.
    *
@@ -231,7 +206,7 @@ class CRM_Mailing_PseudoConstant extends CRM_Core_PseudoConstant {
 
   /**
    * Flush given pseudoconstant so it can be reread from db
-   * nex time it's requested.
+   * next time it's requested.
    *
    * @access public
    * @static
@@ -239,7 +214,7 @@ class CRM_Mailing_PseudoConstant extends CRM_Core_PseudoConstant {
    * @param boolean $name pseudoconstant to be flushed
    *
    */
-  public static function flush($name) {
+  public static function flush($name = 'template') {
    if (isset(self::$$name)) {
       self::$$name = NULL;
     }
index e404e2bebae6c41b73bd8d7e3e31dd28253095b0..b0ebe5fac057f4795136a15d83a688d8e7f68468 100644 (file)
@@ -378,13 +378,12 @@ class CRM_Utils_Array {
 
   /**
    *  Function to check if give array is empty
-   *  @param array $array array that needs to be check for empty condition
+   *  @param array $array array to check for empty condition
    *
    *  @return boolean true is array is empty else false
    *  @static
    */
-  static function crmIsEmptyArray($array = array(
-    )) {
+  static function crmIsEmptyArray($array = array()) {
     if (!is_array($array)) {
       return TRUE;
     }
@@ -486,7 +485,8 @@ class CRM_Utils_Array {
    * Convenient way to unset a bunch of items from an array
    *
    * @param array $items (reference)
-   * @param string/int/array $itemN: other params to this function will be treated as keys (or arrays of keys) to unset
+   * @param string/int/array $itemN: other params to this function will be treated as keys
+   * (or arrays of keys) to unset
    */
    static function remove(&$items) {
      foreach (func_get_args() as $n => $key) {
index a63b5fd96f3cebb2a8368b6834a7cb8a8c35828a..246021e7250f610692a541bcd4a51e4d42824317 100644 (file)
@@ -460,8 +460,7 @@ class CRM_Utils_Token {
         break;
 
       case 'approvalStatus':
-        $mailApprovalStatus = CRM_Mailing_PseudoConstant::approvalStatus();
-        $value = $mailApprovalStatus[$mailing->approval_status_id];
+        $value = CRM_Core_PseudoConstant::getValue('CRM_Mailing_DAO_Mailing', 'approval_status_id', $mailing->approval_status_id);
         break;
 
       case 'approvalNote':
index 6df056dd58dd09ef159895e436e45f96e4cf49bd..aaf724554cda32716dabe3cd37dbc2db8dc35029 100644 (file)
@@ -470,9 +470,11 @@ class CRM_Core_PseudoConstantTest extends CiviUnitTestCase {
           'fieldName' => 'status_id',
           'sample' => 'New',
         ),
+      ),
+      'CRM_Mailing_DAO_Mailing' => array(
         array(
-          'fieldName' => 'membership_type_id',
-          'sample' => 'Lifetime',
+          'fieldName' => 'approval_status_id',
+          'sample' => 'Approved',
         ),
       ),
     );
@@ -487,7 +489,7 @@ class CRM_Core_PseudoConstantTest extends CiviUnitTestCase {
         // Ensure sample value is contained in the returned optionValues.
         $this->assertContains($field['sample'], $optionValues, $message);
 
-        // Exclude test
+        // Ensure exclude value is not contained in the optionValues
         if (!empty($field['exclude'])) {
           $this->assertNotContains($field['exclude'], $optionValues, $message);
         }
index deed5418cb63eb58e60e40076f0b0abadaf1f94a..53d4744e445fce983a4e80944101773b71fd9c91 100644 (file)
       <type>int unsigned</type>
       <title>Approval Status</title>
       <comment>The status of this mailing. Values: none, approved, rejected</comment>
+      <pseudoconstant>
+        <optionGroupName>mail_approval_status</optionGroupName>
+      </pseudoconstant>
       <add>3.3</add>
   </field>
   <field>
index 693b67765c3bb10cbfa5db7c37a47798954587bd..5afcafb1cd15c830f6a4e6b811b569b40e7391ab 100644 (file)
@@ -54,7 +54,7 @@
       <pseudoconstant>
         <table>civicrm_membership_type</table>
         <keyColumn>id</keyColumn>
-        <labelColumn>label</labelColumn>
+        <labelColumn>name</labelColumn>
       </pseudoconstant>
       <add>1.5</add>
   </field>