Skip to content

Commit

Permalink
CRM-20376 - ensure questions are labelled Q1, Q2, etc in pdf report.
Browse files Browse the repository at this point in the history
Also, replace deprecated method.
  • Loading branch information
jmcclelland committed Apr 4, 2017
1 parent dac1f77 commit b2a674e
Showing 1 changed file with 23 additions and 10 deletions.
33 changes: 23 additions & 10 deletions CRM/Report/Form/Campaign/SurveyDetails.php
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,10 @@ class CRM_Report_Form_Campaign_SurveyDetails extends CRM_Report_Form {

private static $_surveyRespondentStatus;

// Survey Question titles are overridden when in print or pdf mode to
// say Q1, Q2 instead of the full title - to save space.
private $_columnTitleOverrides = array();

/**
*/
/**
Expand Down Expand Up @@ -203,7 +207,7 @@ public function __construct() {
),
'grouping' => 'survey-activity-fields',
),
) + $this->addAddressFields();
) + $this->getAddressColumns();
parent::__construct();
}

Expand Down Expand Up @@ -239,9 +243,16 @@ public function select() {
}

$select[] = "{$field['dbAlias']} as {$tableName}_{$fieldName}";

// Set default title
$title = CRM_Utils_Array::value('title', $field);
// Check for an override.
if (!empty($this->_columnTitleOverrides["{$tableName}_{$fieldName}"])) {
$title = $this->_columnTitleOverrides["{$tableName}_{$fieldName}"];
}
$this->_columnHeaders["{$tableName}_{$fieldName}"]['title'] = $title;

$this->_selectAliases[] = "{$tableName}_{$fieldName}";
$this->_columnHeaders["{$tableName}_{$fieldName}"]['title'] = CRM_Utils_Array::value('title', $field);
$this->_columnHeaders["{$tableName}_{$fieldName}"]['type'] = CRM_Utils_Array::value('type', $field);
}
}
}
Expand Down Expand Up @@ -754,20 +765,22 @@ private function _addSurveyResponseColumns() {
if (!is_array(CRM_Utils_Array::value('fields', $this->_columns[$resTable]))) {
$this->_columns[$resTable]['fields'] = array();
}
if (array_key_exists($fieldName, $this->_columns[$resTable]['fields'])) {
$this->_columns[$resTable]['fields'][$fieldName]['required'] = TRUE;
$this->_columns[$resTable]['fields'][$fieldName]['isSurveyResponseField'] = TRUE;
continue;
}

$title = $responseFields[$fieldName]['title'];
if (in_array($this->_outputMode, array(
'print',
'pdf',
))) {
$title = 'Q' . $fildCnt++;
$this->_columnTitleOverrides["{$resTable}_{$fieldName}"] = 'Q' . $fildCnt;
$fildCnt++;
}

if (array_key_exists($fieldName, $this->_columns[$resTable]['fields'])) {
$this->_columns[$resTable]['fields'][$fieldName]['required'] = TRUE;
$this->_columns[$resTable]['fields'][$fieldName]['isSurveyResponseField'] = TRUE;
continue;
}

$title = $responseFields[$fieldName]['title'];
$fldType = 'CRM_Utils_Type::T_STRING';
if ($response->time_format) {
$fldType = CRM_Utils_Type::T_TIMESTAMP;
Expand Down

0 comments on commit b2a674e

Please sign in to comment.