Skip to content

Commit

Permalink
Use metadata for dataPatterns
Browse files Browse the repository at this point in the history
This is a bit harder to add a test for than columnHeaders but the principle of the change is very much the
same so I'm thinking it can get  a free ride on that test
  • Loading branch information
eileenmcnaughton authored and magnolia61 committed Oct 13, 2019
1 parent 009606e commit ec97799
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 11 deletions.
10 changes: 4 additions & 6 deletions CRM/Contact/Import/Form/MapField.php
Original file line number Diff line number Diff line change
Expand Up @@ -239,7 +239,6 @@ public function buildQuickForm() {
$defaults = [];
$mapperKeys = array_keys($this->_mapperFields);
$hasColumnNames = !empty($this->_columnNames);
$dataPatterns = $this->get('dataPatterns');
$hasLocationTypes = $this->get('fieldTypes');

$this->_location_types = ['Primary' => ts('Primary')] + CRM_Core_PseudoConstant::get('CRM_Core_DAO_Address', 'location_type_id');
Expand Down Expand Up @@ -404,7 +403,7 @@ public function buildQuickForm() {
$sel = &$this->addElement('hierselect', "mapper[$i]", ts('Mapper for Field %1', [1 => $i]), NULL);

if ($this->get('savedMapping')) {
list($defaults, $js) = $this->loadSavedMapping($processor, $mappingName, $i, $defaults, $js, $hasColumnNames, $dataPatterns);
list($defaults, $js) = $this->loadSavedMapping($processor, $mappingName, $i, $defaults, $js, $hasColumnNames);
}
else {
$js .= "swapOptions($formName, 'mapper[$i]', 0, 3, 'hs_mapper_0_');\n";
Expand All @@ -426,7 +425,7 @@ public function buildQuickForm() {
else {
// Otherwise guess the default from the form of the data
$defaults["mapper[$i]"] = [
$this->defaultFromData($dataPatterns, $i),
$this->defaultFromData($this->getDataPatterns(), $i),
// $defaultLocationType->id
0,
];
Expand Down Expand Up @@ -847,12 +846,11 @@ protected function saveMappingField($mapperKeys, array $saveMapping, string $cTy
* @param array $defaults
* @param string $js
* @param bool $hasColumnNames
* @param array $dataPatterns
*
* @return array
* @throws \CiviCRM_API3_Exception
*/
public function loadSavedMapping($processor, $mappingName, $i, $defaults, $js, $hasColumnNames, $dataPatterns) {
public function loadSavedMapping($processor, $mappingName, $i, $defaults, $js, $hasColumnNames) {
$formName = $processor->getFormName();
if (isset($mappingName[$i])) {
if ($mappingName[$i] != ts('- do not import -')) {
Expand All @@ -874,7 +872,7 @@ public function loadSavedMapping($processor, $mappingName, $i, $defaults, $js, $
$defaults["mapper[$i]"] = [$this->defaultFromColumnName($this->_columnNames[$i])];
}
else {
$defaults["mapper[$i]"] = [$this->defaultFromData($dataPatterns, $i)];
$defaults["mapper[$i]"] = [$this->defaultFromData($this->getDataPatterns(), $i)];
}
}
return [$defaults, $js];
Expand Down
1 change: 0 additions & 1 deletion CRM/Contact/Import/Parser.php
Original file line number Diff line number Diff line change
Expand Up @@ -617,7 +617,6 @@ public function set($store, $mode = self::MODE_SUMMARY) {
$store->set('fields', $this->getSelectValues());
$store->set('fieldTypes', $this->getSelectTypes());

$store->set('dataPatterns', $this->getDataPatterns());
$store->set('columnCount', $this->_activeFieldCount);

$store->set('totalRowCount', $this->_totalCount);
Expand Down
5 changes: 1 addition & 4 deletions tests/phpunit/CRM/Contact/Import/Form/MapFieldTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -376,16 +376,13 @@ protected function loadSavedMapping($form, $mappingID, $columnNumber) {

$js = '';
$hasColumnNames = TRUE;
// @todo - can use metadata trait once https://github.com/civicrm/civicrm-core/pull/15018 is merged.
$dataPatterns = [];
$columnPatterns = [];
$processor = new CRM_Import_ImportProcessor();
$processor->setMappingID($mappingID);
$processor->setFormName('document.forms.MapField');
$processor->setMetadata($this->getContactImportMetadata());
$processor->setContactTypeByConstant(CRM_Import_Parser::CONTACT_INDIVIDUAL);

$return = $form->loadSavedMapping($processor, $mappingName, $columnNumber, $defaults, $js, $hasColumnNames, $dataPatterns, $columnPatterns);
$return = $form->loadSavedMapping($processor, $mappingName, $columnNumber, $defaults, $js, $hasColumnNames);
return ['defaults' => $return[0], 'js' => $return[1]];
}

Expand Down

0 comments on commit ec97799

Please sign in to comment.