Remove silly manipulateHeaderRows function
authoreileen <emcnaughton@wikimedia.org>
Sat, 17 Nov 2018 02:24:54 +0000 (15:24 +1300)
committereileen <emcnaughton@wikimedia.org>
Sun, 18 Nov 2018 23:40:50 +0000 (12:40 +1300)
Export code cleanup -  Extend testing so we can get rid of silly manipulate fn

CRM/Export/BAO/Export.php
tests/phpunit/CRM/Export/BAO/ExportTest.php

index 4182efbf9b269564c0af4d01ffe8d3bcb2007b7f..e67f1c54d7378badb6f4b142b23a6f3f86da759c 100644 (file)
@@ -1130,21 +1130,6 @@ LIMIT $offset, $limit
     }
   }
 
-  /**
-   * Manipulate header rows for relationship fields.
-   *
-   * @param $headerRows
-   */
-  public static function manipulateHeaderRows(&$headerRows) {
-    foreach ($headerRows as & $header) {
-      $split = explode('-', $header);
-      if ($relationTypeName = CRM_Utils_Array::value($split[0], self::$relationshipTypes)) {
-        $split[0] = $relationTypeName;
-        $header = implode('-', $split);
-      }
-    }
-  }
-
   /**
    * Exclude contacts who are deceased, have "Do not mail" privacy setting,
    * or have no street address
@@ -1301,13 +1286,11 @@ WHERE  {$whereClause}";
         foreach ($value as $relationField => $relationValue) {
           // below block is same as primary block (duplicate)
           if (isset($queryFields[$relationField]['title'])) {
-            $headerName = $field . '-' . $relationField;
-
             if (!$processor->isHouseholdMergeRelationshipTypeKey($field)) {
               // Do not add to header row if we are only generating for merge reasons.
-              $headerRows[] = $headerName;
+              $headerRows[] = $processor->getRelationshipTypes()[$key] . '-' . $queryFields[$relationField]['title'];
             }
-            self::sqlColumnDefn($processor, $sqlColumns, $headerName);
+            self::sqlColumnDefn($processor, $sqlColumns, $field . '-' . $relationField);
           }
           elseif (is_array($relationValue) && $relationField == 'location') {
             // fix header for location type case
@@ -1325,14 +1308,12 @@ WHERE  {$whereClause}";
                     $hdr .= "-" . CRM_Core_PseudoConstant::getLabel('CRM_Core_BAO_IM', 'provider_id', $type[1]);
                   }
                 }
-                $headerName = $field . '-' . $hdr;
-                $headerRows[] = $headerName;
-                self::sqlColumnDefn($processor, $sqlColumns, $headerName);
+                $headerRows[] = $processor->getRelationshipTypes()[$key] . $hdr;
+                self::sqlColumnDefn($processor, $sqlColumns, $field . '-' . $hdr);
               }
             }
           }
         }
-        self::manipulateHeaderRows($headerRows);
       }
       else {
         foreach ($value as $locationType => $locationFields) {
index 5e0a8ac156a78b814162cd23c216ee3e3ffbacda..547dc90cf21dea73bb5db6bf33cb272e2f508715 100644 (file)
@@ -462,6 +462,13 @@ class CRM_Export_BAO_ExportTest extends CiviUnitTestCase {
     $dao->fetch();
     $this->assertEquals('Org 2', $dao->{$employerRelationshipTypeID . '_a_b_organization_name'});
     $this->assertEquals('well dodgey', $dao->{$employerRelationshipTypeID . '_a_b_legal_name'});
+
+    $this->assertEquals([
+      0 => 'First Name',
+      1 => 'Employee of-Organization Name',
+      2 => 'Employee of-Legal Name',
+      3 => 'Employee of-Contact Source',
+    ], $headerRows);
   }
 
   /**