Ensure mapping id is set in all places using import templates
authorEileen McNaughton <emcnaughton@wikimedia.org>
Tue, 25 Apr 2023 00:05:29 +0000 (12:05 +1200)
committerEileen McNaughton <emcnaughton@wikimedia.org>
Tue, 25 Apr 2023 00:05:29 +0000 (12:05 +1200)
This fixes the missing update saved mapping option when using a template

I think I changed the way the metadata was a few times & so it is
a bit confusing - but this ensures it is set in the
place MapField is expecting it to be

CRM/Import/Form/DataSource.php

index 3decffef26ba3efbc2aa813dfd2c994233a7a24f..48c8046a3ee8d6ab27e0a7fd5244ad5f37f6c9c9 100644 (file)
@@ -221,6 +221,7 @@ abstract class CRM_Import_Form_DataSource extends CRM_Import_Forms {
       // Unset fields that should not be copied over.
       unset($userJob['id'], $userJob['name'], $userJob['created_date'], $userJob['is_template'], $userJob['queue_id'], $userJob['start_date'], $userJob['end_date']);
       $userJob['metadata']['template_id'] = $templateID;
+      $userJob['metadata']['Template']['mapping_id'] = $mappingID;
       $userJob['created_id'] = CRM_Core_Session::getLoggedInContactID();
       $userJob['expires_date'] = '+1 week';
       $userJobID = UserJob::create(FALSE)->setValues($userJob)->execute()->first()['id'];