Skip to content

Commit

Permalink
dev/core#1710 Ensure that civicrm_case_activity is properly populated…
Browse files Browse the repository at this point in the history
… for use by report query when run in force mode

Move table definition into constructor to set alias using standard ways and only rely on the code in the buildQuery to add in the case_id column as necessary
  • Loading branch information
seamuslee001 committed Apr 25, 2020
1 parent 11da2c0 commit da8931d
Showing 1 changed file with 18 additions and 16 deletions.
34 changes: 18 additions & 16 deletions CRM/Report/Form/Activity.php
Original file line number Diff line number Diff line change
Expand Up @@ -312,6 +312,10 @@ public function __construct() {
'operatorType' => CRM_Report_Form::OP_SELECT,
'options' => ['0' => ts('No'), '1' => ts('Yes')],
];
$this->_columns['civicrm_case_activity'] = [
'dao' => 'CRM_Case_DAO_CaseActivity',
'fields' => [],
];
}

if ($campaignEnabled) {
Expand Down Expand Up @@ -349,22 +353,15 @@ public function __construct() {
parent::__construct();
}

public function preProcess() {
// Is "Include Case Activities" selected? If yes, include the case_id as a hidden column
$formToUse = $this->noController ? NULL : $this;
$includeCaseActivities = CRM_Utils_Request::retrieve('include_case_activities_value', 'Boolean', $formToUse);
if (!empty($includeCaseActivities)) {
$this->_columns['civicrm_case_activity'] = [
'dao' => 'CRM_Case_DAO_CaseActivity',
'fields' => [
'case_id' => [
'no_display' => TRUE,
'required' => TRUE,
],
],
];
}
parent::preProcess();
protected static function addCaseActivityColumns($columns) {
$columns['civicrm_case_activity']['fields'] = [
'case_id' => [
'no_display' => TRUE,
'required' => TRUE,
'dbAlias' => $columns['civicrm_case_activity']['alias'] . '.case_id',
],
];
return $columns;
}

/**
Expand Down Expand Up @@ -733,6 +730,11 @@ public function buildQuery($applyLimit = TRUE) {
}
}

if (!empty($this->_params['include_case_activities_value'])) {
$columns = self::addCaseActivityColumns($this->_columns);
$this->_columns = $columns;
}

// @todo - all this temp table stuff is here because pre 4.4 the activity contact
// form did not exist.
// Fixing the way the construct method declares them will make all this redundant.
Expand Down

0 comments on commit da8931d

Please sign in to comment.