Skip to content

Commit

Permalink
Cleaner handling of additional return properties
Browse files Browse the repository at this point in the history
  • Loading branch information
eileenmcnaughton committed Jul 10, 2019
1 parent d82acab commit 4e3476d
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 10 deletions.
10 changes: 1 addition & 9 deletions CRM/Export/BAO/Export.php
Original file line number Diff line number Diff line change
Expand Up @@ -180,6 +180,7 @@ public static function exportComponents(
);

$processor = new CRM_Export_BAO_ExportProcessor($exportMode, $fields, $queryOperator, $mergeSameHousehold, $isPostalOnly);
$processor->setAdditionalRequestedReturnProperties($moreReturnProperties);
$returnProperties = $processor->getReturnProperties();
$paymentTableId = $processor->getPaymentTableID();

Expand Down Expand Up @@ -215,15 +216,6 @@ public static function exportComponents(
CRM_Core_DAO::executeQuery($query);
}

if ($moreReturnProperties) {
// fix for CRM-7066
if (!empty($moreReturnProperties['group'])) {
unset($moreReturnProperties['group']);
$moreReturnProperties['groups'] = 1;
}
$returnProperties = array_merge($returnProperties, $moreReturnProperties);
}

if ($processor->getRequestedFields() &&
$processor->isPostalableOnly()
) {
Expand Down
35 changes: 34 additions & 1 deletion CRM/Export/BAO/ExportProcessor.php
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,39 @@ class CRM_Export_BAO_ExportProcessor {
*/
protected $householdsToSkip = [];

/**
* Additional fields to return.
*
* This doesn't make much sense when we have a fields set but search build add it's own onto
* the 'Primary fields' (all) option.
*
* @var array
*/
protected $additionalRequestedReturnProperties = [];

/**
* Get additional return properties.
*
* @return array
*/
public function getAdditionalRequestedReturnProperties() {
return $this->additionalRequestedReturnProperties;
}

/**
* Set additional return properties.
*
* @param array $value
*/
public function setAdditionalRequestedReturnProperties(array $value) {
// fix for CRM-7066
if (!empty($value['group'])) {
unset($value['group']);
$value['groups'] = 1;
}
$this->additionalRequestedReturnProperties = $value;
}

/**
* Get return properties by relationship.
* @return array
Expand Down Expand Up @@ -220,7 +253,7 @@ public function setRequestedFields($requestedFields) {
* @return array
*/
public function getReturnProperties() {
return $this->returnProperties;
return array_merge($this->returnProperties, $this->getAdditionalRequestedReturnProperties());
}

/**
Expand Down

0 comments on commit 4e3476d

Please sign in to comment.