}
}
}
-
+ // Fixme: this stuff does not need to be hard-coded, should be retrieved from schema metadata
if (in_array($name, array('prefix_id', 'suffix_id', 'gender_id'))) {
- if (CRM_Utils_Array::value($field['pseudoconstant']['optionGroupName'], $this->_returnProperties)) {
+ if (
+ // Hack for default search view
+ !empty($this->_returnProperties[$field['pseudoconstant']['optionGroupName']]) ||
+ // Hack for profile search view
+ !empty($this->_returnProperties[$name])
+ ) {
$makeException = TRUE;
}
}
}
elseif ($fieldName != 'id') {
if ($fieldName == 'prefix_id') {
- $this->_pseudoConstantsSelect['individual_prefix'] = array('pseudoField' => 'prefix_id', 'idCol' => "prefix_id", 'bao' => 'CRM_Contact_BAO_Contact');
+ // Hack - profile views use different field name than normal views!
+ $this->_pseudoConstantsSelect['prefix_id'] =
+ $this->_pseudoConstantsSelect['individual_prefix'] = array(
+ 'pseudoField' => 'prefix_id',
+ 'idCol' => "prefix_id",
+ 'bao' => 'CRM_Contact_BAO_Contact'
+ );
}
if ($fieldName == 'suffix_id') {
- $this->_pseudoConstantsSelect['individual_suffix'] = array('pseudoField' => 'suffix_id', 'idCol' => "suffix_id", 'bao' => 'CRM_Contact_BAO_Contact');
+ // Hack - profile views use different field name than normal views!
+ $this->_pseudoConstantsSelect['suffix_id'] =
+ $this->_pseudoConstantsSelect['individual_suffix'] = array(
+ 'pseudoField' => 'suffix_id',
+ 'idCol' => "suffix_id",
+ 'bao' => 'CRM_Contact_BAO_Contact'
+ );
}
if ($fieldName == 'gender_id') {
- $this->_pseudoConstantsSelect['gender'] = array('pseudoField' => 'gender_id', 'idCol' => "gender_id", 'bao' => 'CRM_Contact_BAO_Contact');
+ // Hack - profile views use different field name than normal views!
+ $this->_pseudoConstantsSelect['gender_id'] =
+ $this->_pseudoConstantsSelect['gender'] = array(
+ 'pseudoField' => 'gender_id',
+ 'idCol' => "gender_id",
+ 'bao' => 'CRM_Contact_BAO_Contact'
+ );
}
$this->_select[$name] = "contact_a.{$fieldName} as `$name`";
}
continue;
case 'civicrm_log':
- $from .= " $side JOIN civicrm_log ON (civicrm_log.entity_id = contact_a.id AND civicrm_log.entity_table = 'civicrm_contact')";
- $from .= " $side JOIN civicrm_contact contact_b_log ON (civicrm_log.modified_id = contact_b_log.id)";
+ $from .= " INNER JOIN civicrm_log ON (civicrm_log.entity_id = contact_a.id AND civicrm_log.entity_table = 'civicrm_contact')";
+ $from .= " INNER JOIN civicrm_contact contact_b_log ON (civicrm_log.modified_id = contact_b_log.id)";
continue;
case 'civicrm_tag':
$name = $targetName[4] ? "%$name%" : $name;
$this->_where[$grouping][] = "contact_b_log.sort_name LIKE '%$name%'";
$this->_tables['civicrm_log'] = $this->_whereTables['civicrm_log'] = 1;
- $this->_qill[$grouping][] = ts('Changed by') . ": $name";
+ $this->_qill[$grouping][] = ts('Modified by') . ": $name";
}
function modifiedDates($values) {
// CRM-11281, default to added date if not set
$fieldTitle = ts('Added Date');
-
+ $fieldName = 'created_date';
foreach (array_keys($this->_params) as $id) {
if ($this->_params[$id][0] == 'log_date') {
if ($this->_params[$id][2] == 2) {
$fieldTitle = ts('Modified Date');
+ $fieldName = 'modified_date';
}
}
}
- $this->dateQueryBuilder($values,
- 'civicrm_log', 'log_date', 'modified_date', $fieldTitle
- );
+
+ $this->dateQueryBuilder($values, 'contact_a', 'log_date', $fieldName, $fieldTitle);
+
+ self::$_openedPanes[ts('Change Log')] = TRUE;
}
function demographics(&$values) {
$this->_tables[$tableName] = $this->_whereTables[$tableName] = 1;
$this->_qill[$grouping][] = "$fieldTitle - $phrase \"$format\"";
}
-
- if (
- $tableName == 'civicrm_log' &&
- $fieldTitle == ts('Added Date')
- ) {
- //CRM-6903 --hack to check modified date of first record.
- //as added date means first modified date of object.
- $addedDateQuery = 'select id from civicrm_log group by entity_id order by id';
- $this->_where[$grouping][] = "civicrm_log.id IN ( {$addedDateQuery} )";
- }
}
function numberRangeBuilder(&$values,
/**
* convert the pseudo constants id's to their names
+ * FIXME: Get rid of hard-coded references to fields, should be retrievable from schema metadata
*
* @param reference parameter $dao
* @param bool $return