Minor fixes to Civi-Import screen, populating defaults, missing ts
authorEileen McNaughton <emcnaughton@wikimedia.org>
Sun, 2 Apr 2023 07:04:30 +0000 (19:04 +1200)
committerEileen McNaughton <emcnaughton@wikimedia.org>
Sun, 2 Apr 2023 21:45:55 +0000 (09:45 +1200)
CRM/Contribute/Import/Parser/Contribution.php
ext/civiimport/ang/crmCiviimport.js
ext/civiimport/ang/crmCiviimport/Import.html

index 1c7c0792ec540f0d6de094c152fd221afddc148d..2017f3e850eb01c13489b2f8ae5b5324bc397cd6 100644 (file)
@@ -338,12 +338,16 @@ class CRM_Contribute_Import_Parser_Contribution extends CRM_Import_Parser {
    * @throws \CRM_Core_Exception
    */
   public function getImportEntities() : array {
-    $softCreditTypes = ContributionSoft::getFields()
-      ->setLoadOptions(['id', 'name', 'label', 'description'])
+    $softCreditTypes = ContributionSoft::getFields(FALSE)
+      ->setLoadOptions(['id', 'name', 'label', 'description', 'is_default'])
       ->addWhere('name', '=', 'soft_credit_type_id')
       ->selectRowCount()
       ->addSelect('options')->execute()->first()['options'];
+    $defaultSoftCreditTypeID = NULL;
     foreach ($softCreditTypes as &$softCreditType) {
+      if (empty($defaultSoftCreditTypeID) || $softCreditType['is_default']) {
+        $defaultSoftCreditTypeID = $softCreditType['id'];
+      }
       $softCreditType['text'] = $softCreditType['label'];
     }
 
@@ -389,7 +393,12 @@ class CRM_Contribute_Import_Parser_Contribution extends CRM_Import_Parser {
         'is_contact' => TRUE,
         'is_required' => FALSE,
         'actions' => array_merge([['id' => 'ignore', 'text' => ts('Do not import')]], $this->getActions(['select', 'update', 'save'])),
-        'selected' => ['contact_type' => '', 'soft_credit_type_id' => reset($softCreditTypes)['id'], 'action' => 'ignore'],
+        'selected' => [
+          'contact_type' => 'Individual',
+          'soft_credit_type_id' => $defaultSoftCreditTypeID,
+          'action' => 'ignore',
+          'dedupe_rule' => $this->getDedupeRule('Individual')['name'],
+        ],
         'default_action' => 'ignore',
         'entity_name' => 'SoftCreditContact',
         'entity_field_prefix' => 'soft_credit.contact.',
index 5927a2ab98205378db969013f6345a78ff940555..dd4280aaafe646b6e93146838998db00852b2c81 100644 (file)
               // For now we just hard-code this - mapping to soft_credit a bit undefined - but
               // we are mimicking getMappingFieldFromMapperInput on the php layer.
               // Could get it from entity_data but .... later.
-              entityConfig = {'soft_credit': $scope.userJob.metadata.entity_configuration[selectedEntity].entity.entity_data};
+              entityConfig = {'soft_credit': $scope.userJob.metadata.entity_configuration[selectedEntity]};
             }
 
             $scope.userJob.metadata.import_mappings.push({
index bd623388b71541a2e45033911a424d7193a7b7cd..e0132f9c09ec42fe18d37fd5a97c84dd7e8bea7b 100644 (file)
@@ -56,7 +56,7 @@
         <div ng-if="entity.entity_data && entity.selected.action !== 'ignore'">
           <div ng-repeat="(fieldName, entityField) in entity.entity_data">
             <label>
-              {{ entityField.title }}  <input  class="big" crm-ui-select='{data: entityField.options, required : entityField.is_required}' ng-model="entity.selected.entity.entity_data[fieldName]"/>
+              {{ entityField.title }}  <input  class="big" crm-ui-select='{data: entityField.options, required : entityField.is_required}' ng-model="entity.selected[fieldName]"/>
             </label>
           </div>
         </div>
 </div>
 
 <div class="crm-submit-buttons">
-  <button class="crm-form-submit cancel crm-button crm-button-type-back crm-button_qf_MapField_back" value="1" type="submit" name="_qf_MapField_back" id="_qf_MapField_back-bottom"><i aria-hidden="true" class="crm-i fa-chevron-left"></i> Previous</button>
-  <button ng-click="save($event)" class="crm-form-submit default validate crm-button crm-button-type-next crm-button_qf_MapField_next" value="1" type="submit" name="_qf_MapField_next" id="_qf_MapField_next-bottom"><i aria-hidden="true" class="crm-i fa-check"></i> Continue</button>
-  <button class="crm-form-submit cancel crm-button crm-button-type-cancel crm-button_qf_MapField_cancel" value="1" type="submit" name="_qf_MapField_cancel" id="_qf_MapField_cancel-bottom"><i aria-hidden="true" class="crm-i fa-times"></i> Cancel</button>
+  <button class="crm-form-submit cancel crm-button crm-button-type-back crm-button_qf_MapField_back" value="1" type="submit" name="_qf_MapField_back" id="_qf_MapField_back-bottom"><i aria-hidden="true" class="crm-i fa-chevron-left"></i>{{:: ts('Previous') }}</button>
+  <button ng-click="save($event)" class="crm-form-submit default validate crm-button crm-button-type-next crm-button_qf_MapField_next" value="1" type="submit" name="_qf_MapField_next" id="_qf_MapField_next-bottom"><i aria-hidden="true" class="crm-i fa-check"></i>{{:: ts('Continue') }}</button>
+  <button class="crm-form-submit cancel crm-button crm-button-type-cancel crm-button_qf_MapField_cancel" value="1" type="submit" name="_qf_MapField_cancel" id="_qf_MapField_cancel-bottom"><i aria-hidden="true" class="crm-i fa-times"></i>{{:: ts('Cancel') }}</button>
 </div>