From ba70f0144b4547ab581a8934d03d530e174ab71a Mon Sep 17 00:00:00 2001 From: Darrick Servis Date: Sat, 11 Jun 2022 15:53:56 -0700 Subject: [PATCH] fix disableUSPS since import running in separate context of Queue. --- CRM/Contact/Import/Form/DataSource.php | 1 + CRM/Contact/Import/Form/Preview.php | 1 - CRM/Contact/Import/Parser/Contact.php | 4 ++++ templates/CRM/Contact/Import/Form/DataSource.tpl | 4 +++- tests/phpunit/CRM/Contact/Import/Parser/ContactTest.php | 1 + 5 files changed, 9 insertions(+), 2 deletions(-) diff --git a/CRM/Contact/Import/Form/DataSource.php b/CRM/Contact/Import/Form/DataSource.php index 24baf8485d..bd71da375c 100644 --- a/CRM/Contact/Import/Form/DataSource.php +++ b/CRM/Contact/Import/Form/DataSource.php @@ -164,6 +164,7 @@ class CRM_Contact_Import_Form_DataSource extends CRM_Import_Form_DataSource { 'onDuplicate' => CRM_Import_Parser::DUPLICATE_SKIP, 'contactType' => CRM_Import_Parser::CONTACT_INDIVIDUAL, 'fieldSeparator' => CRM_Core_Config::singleton()->fieldSeparator, + 'disableUSPS' => TRUE, ]; if ($this->get('loadedMapping')) { diff --git a/CRM/Contact/Import/Form/Preview.php b/CRM/Contact/Import/Form/Preview.php index f2ff07f56f..28b2196477 100644 --- a/CRM/Contact/Import/Form/Preview.php +++ b/CRM/Contact/Import/Form/Preview.php @@ -191,7 +191,6 @@ class CRM_Contact_Import_Form_Preview extends CRM_Import_Form_Preview { CRM_ACL_BAO_Cache::deleteContactCacheEntry($userID); } - CRM_Utils_Address_USPS::disable($this->getSubmittedValue('disableUSPS')); $this->runTheImport(); } diff --git a/CRM/Contact/Import/Parser/Contact.php b/CRM/Contact/Import/Parser/Contact.php index 78f0aa495a..35260a50e9 100644 --- a/CRM/Contact/Import/Parser/Contact.php +++ b/CRM/Contact/Import/Parser/Contact.php @@ -119,6 +119,10 @@ class CRM_Contact_Import_Parser_Contact extends CRM_Import_Parser { public function import($values) { $rowNumber = (int) $values[array_key_last($values)]; + // Put this here for now since we're gettting run by a job and need to + // reset it for each task run. + CRM_Utils_Address_USPS::disable($this->getSubmittedValue('disableUSPS')); + $this->_unparsedStreetAddressContacts = []; if (!$this->getSubmittedValue('doGeocodeAddress')) { // CRM-5854, reset the geocode method to null to prevent geocoding diff --git a/templates/CRM/Contact/Import/Form/DataSource.tpl b/templates/CRM/Contact/Import/Form/DataSource.tpl index 102964316b..c09b930779 100644 --- a/templates/CRM/Contact/Import/Form/DataSource.tpl +++ b/templates/CRM/Contact/Import/Form/DataSource.tpl @@ -80,7 +80,9 @@ {if $form.disableUSPS} - {$form.disableUSPS.html} + {$form.disableUSPS.html}
+     {ts}Uncheck at your own risk as batch processing violates USPS API TOS.{/ts} + {/if} diff --git a/tests/phpunit/CRM/Contact/Import/Parser/ContactTest.php b/tests/phpunit/CRM/Contact/Import/Parser/ContactTest.php index 4f30f10a37..01150919d3 100644 --- a/tests/phpunit/CRM/Contact/Import/Parser/ContactTest.php +++ b/tests/phpunit/CRM/Contact/Import/Parser/ContactTest.php @@ -2004,6 +2004,7 @@ class CRM_Contact_Import_Parser_ContactTest extends CiviUnitTestCase { 'contactType' => CRM_Import_Parser::CONTACT_INDIVIDUAL, 'contactSubType' => '', 'doGeocodeAddress' => 0, + 'disableUSPS' => 0, 'dataSource' => 'CRM_Import_DataSource_SQL', 'sqlQuery' => 'SELECT first_name FROM civicrm_contact', 'onDuplicate' => CRM_Import_Parser::DUPLICATE_SKIP, -- 2.25.1