Enable QueueRunner for membership import
authorEileen McNaughton <emcnaughton@wikimedia.org>
Tue, 7 Jun 2022 11:39:53 +0000 (23:39 +1200)
committerEileen McNaughton <emcnaughton@wikimedia.org>
Thu, 9 Jun 2022 06:17:14 +0000 (18:17 +1200)
CRM/Contact/Import/Form/Preview.php
CRM/Contact/Import/Form/Summary.php
CRM/Import/Form/Preview.php
CRM/Member/Import/Form/MapField.php
CRM/Member/Import/Form/Summary.php
templates/CRM/Member/Import/Form/Preview.tpl
templates/CRM/Member/Import/Form/Summary.tpl

index 57ea179672977c2c45edf190e6493313557b337a..f2ff07f56f24215965e8edbb15103a82e9ddd56f 100644 (file)
@@ -192,18 +192,7 @@ class CRM_Contact_Import_Form_Preview extends CRM_Import_Form_Preview {
     }
 
     CRM_Utils_Address_USPS::disable($this->getSubmittedValue('disableUSPS'));
-
-    // run the import
-
-    $parser = $this->getParser();
-    $parser->queue();
-    $queue = Civi::queue('user_job_' . $this->getUserJobID());
-    $runner = new CRM_Queue_Runner([
-      'queue' => $queue,
-      'errorMode' => CRM_Queue_Runner::ERROR_ABORT,
-      'onEndUrl' => CRM_Utils_System::url('civicrm/import/contact/summary', ['user_job_id' => $this->getUserJobID(), 'reset' => 1]),
-    ]);
-    $runner->runAllViaWeb();
+    $this->runTheImport();
   }
 
   /**
index 84b7c3b922f0a7c40ccd347adb611e476b02a19e..397e3e935bed33bc771752a488c8f12e3a87f99b 100644 (file)
@@ -30,7 +30,8 @@ class CRM_Contact_Import_Form_Summary extends CRM_Import_Form_Summary {
    */
   public function preProcess() {
     $userJobID = CRM_Utils_Request::retrieve('user_job_id', 'String', $this, TRUE);
-    $userJob = UserJob::get(TRUE)->addWhere('id', '=', $userJobID)->execute()->first();
+    $userJob = UserJob::get(TRUE)->addWhere('id', '=', $userJobID)->addSelect('metadata', 'type_id:label')->execute()->first();
+    $this->setTitle($userJob['type_id:label']);
     $onDuplicate = $userJob['metadata']['submitted_values']['onDuplicate'];
     $this->assign('dupeError', FALSE);
 
@@ -46,17 +47,11 @@ class CRM_Contact_Import_Form_Summary extends CRM_Import_Form_Summary {
       $this->assign('dupeError', TRUE);
     }
 
-    $this->assign('groupAdditions', $this->getUserJob()['metadata']['summary_info']['groups']);
-    $this->assign('tagAdditions', $this->getUserJob()['metadata']['summary_info']['tags']);
+    $this->assign('groupAdditions', $this->getUserJob()['metadata']['summary_info']['groups'] ?? []);
+    $this->assign('tagAdditions', $this->getUserJob()['metadata']['summary_info']['tags'] ?? []);
     $this->assignOutputURLs();
     $session = CRM_Core_Session::singleton();
     $session->pushUserContext(CRM_Utils_System::url('civicrm/import/contact', 'reset=1'));
   }
 
-  /**
-   * Clean up the import table we used.
-   */
-  public function postProcess() {
-  }
-
 }
index 69e302d8c99aae9695a3911065cdec620d787a90..24aa09977ce7b8ca58f6b20eb5d0ec9d5db55a45 100644 (file)
@@ -124,7 +124,25 @@ abstract class CRM_Import_Form_Preview extends CRM_Import_Forms {
    * @return void
    */
   public function postProcess() {
-    CRM_Import_Parser::runImport(NULL, $this->getUserJobID(), 0);
+    $this->runTheImport();
+  }
+
+  /**
+   * Run the import.
+   */
+  protected function runTheImport(): void {
+    $parser = $this->getParser();
+    $parser->queue();
+    $queue = Civi::queue('user_job_' . $this->getUserJobID());
+    $runner = new CRM_Queue_Runner([
+      'queue' => $queue,
+      'errorMode' => CRM_Queue_Runner::ERROR_ABORT,
+      'onEndUrl' => CRM_Utils_System::url('civicrm/import/contact/summary', [
+        'user_job_id' => $this->getUserJobID(),
+        'reset' => 1,
+      ]),
+    ]);
+    $runner->runAllViaWeb();
   }
 
 }
index 433016e217792cebbf73a4de23936298c2c5a3bc..bee1f3a925518467c6c3d9f698f9a68caf2eb004 100644 (file)
@@ -45,8 +45,6 @@ class CRM_Member_Import_Form_MapField extends CRM_Import_Form_MapField {
       unset($sel1['membership_id']);
     }
 
-    $sel2[''] = NULL;
-
     $js = "<script type='text/javascript'>\n";
     $formName = 'document.forms.' . $this->_name;
 
@@ -113,7 +111,7 @@ class CRM_Member_Import_Form_MapField extends CRM_Import_Form_MapField {
           );
         }
       }
-      $sel->setOptions(array($sel1, $sel2));
+      $sel->setOptions([$sel1]);
     }
     $js .= "</script>\n";
     $this->assign('initHideBoxes', $js);
index 89e81e57228769aa435e8c00db76b6019100e7c4..de46749c5eaf644e7fb1ed9f57a8a7143af7861f 100644 (file)
@@ -17,6 +17,9 @@
 
 /**
  * This class summarizes the import results
+ * @todo - this class is no longer used - it just needs to
+ * be removed when the other summary classes are removed from the
+ * import controller.
  */
 class CRM_Member_Import_Form_Summary extends CRM_Import_Form_Summary {
 
index aa28d8b6c03148189d30dd8ccb0473bcd37a075c..8a50794bdff2df2faebf38a35e187a2ca90bc6c4 100644 (file)
@@ -28,7 +28,7 @@
     <p>{ts}Click 'Import Now' if you are ready to proceed.{/ts}</p>
  </div>
  <div class="crm-submit-buttons">{include file="CRM/common/formButtons.tpl" location="top"}</div>
- {include file="CRM/common/importProgress.tpl"}
+
  {* Summary Preview (record counts) *}
  <table id="preview-counts" class="report">
     <tr><td class="label crm-grid-cell">{ts}Total Rows{/ts}</td>
index 0d6b1599361658d4ffc3d8a7c8e9232e2062a8de..8bdd72de1d106fd348263f59598b8bff85e28f6d 100644 (file)
@@ -7,72 +7,6 @@
  | and copyright information, see https://civicrm.org/licensing       |
  +--------------------------------------------------------------------+
 *}
-{* Membership Import Wizard - Step 4 (summary of import results AFTER actual data loading) *}
+{* Membership Import Wizard - no longer used - needs to be removed form the
+{* controller & this can be deleted *}
 {* @var $form Contains the array for the form elements and other form associated information assigned to the template by the controller *}
-
-<div class="crm-block crm-form-block crm-member-import-summary-form-block">
- {* WizardHeader.tpl provides visual display of steps thru the wizard as well as title for current step *}
- {include file="CRM/common/WizardHeader.tpl"}
-
- <div class="help">
-    <p>
-    <strong>{ts}Import has completed successfully.{/ts}</strong> {ts}The information below summarizes the results.{/ts}
-    </p>
-
-    {if $invalidRowCount }
-        <p class="error">
-        {ts count=$invalidRowCount plural='CiviCRM has detected invalid data and/or formatting errors in %count records. These records have not been imported.'}CiviCRM has detected invalid data and/or formatting errors in one record. This record has not been imported.{/ts}
-        </p>
-        <p class="error">
-        {ts 1=$downloadErrorRecordsUrl}You can <a href="%1">Download Errors</a>. You may then correct them, and import the new file with the corrected data.{/ts}
-        </p>
-    {/if}
-
-    {if $duplicateRowCount}
-        <p {if $dupeError}class="error"{/if}>
-        {ts count=$duplicateRowCount plural='CiviCRM has detected %count records which are duplicates of existing CiviCRM membership records.'}CiviCRM has detected one record which is a duplicate of existing CiviCRM membership record.{/ts} {$dupeActionString}
-        </p>
-        <p {if $dupeError}class="error"{/if}>
-        {ts 1=$downloadDuplicateRecordsUrl}You can <a href="%1">Download Duplicates</a>. You may then review these records to determine if they are actually duplicates, and correct the transaction IDs for those that are not.{/ts}
-        </p>
-    {/if}
- </div>
- <div class="crm-submit-buttons">{include file="CRM/common/formButtons.tpl" location="top"}</div>
- {* Summary of Import Results (record counts) *}
- <table id="summary-counts" class="report">
-    <tr><td class="label crm-grid-cell">{ts}Total Rows{/ts}</td>
-        <td class="data">{$totalRowCount}</td>
-        <td class="explanation">{ts}Total rows (membership records) in uploaded file.{/ts}</td>
-    </tr>
-
-    {if $invalidRowCount }
-    <tr class="error"><td class="label crm-grid-cell">{ts}Invalid Rows (skipped){/ts}</td>
-        <td class="data">{$invalidRowCount}</td>
-        <td class="explanation">{ts}Rows with invalid data in one or more fields. These rows will be skipped (not imported).{/ts}
-            {if $invalidRowCount}
-                <div class="action-link"><a href="{$downloadErrorRecordsUrl}"><i class="crm-i fa-download" aria-hidden="true"></i> {ts}Download Errors{/ts}</a></div>
-            {/if}
-        </td>
-    </tr>
-    {/if}
-
-    {if $duplicateRowCount}
-    <tr class="error"><td class="label crm-grid-cell">{ts}Duplicate Rows{/ts}</td>
-        <td class="data">{$duplicateRowCount}</td>
-        <td class="explanation">{ts}Rows which are duplicates of existing CiviCRM membership records.{/ts} {$dupeActionString}
-            {if $duplicateRowCount}
-                <p><a href="{$downloadDuplicateRecordsUrl}">{ts}Download Duplicates{/ts}</a></p>
-            {/if}
-        </td>
-    </tr>
-    {/if}
-
-    <tr><td class="label crm-grid-cell">{ts}Records Imported{/ts}</td>
-        <td class="data">{$validRowCount}</td>
-        <td class="explanation">{ts}Rows imported successfully.{/ts}</td>
-    </tr>
-
- </table>
-
- <div class="crm-submit-buttons">{include file="CRM/common/formButtons.tpl" location="bottom"}</div>
- </div>