dev/core#5005 Fix validating to allow for saving with entity sub filters that are...
authorSeamus Lee <seamuslee001@gmail.com>
Mon, 19 Feb 2024 23:09:27 +0000 (10:09 +1100)
committerSeamus Lee <seamuslee001@gmail.com>
Tue, 20 Feb 2024 23:49:38 +0000 (10:49 +1100)
CRM/Core/BAO/CustomGroup.php

index e6941666d8c5fa15b4d34632394a6a3ac14bf2ab..a4bf0c9095a1e98f453a88137052c6638f21f074 100644 (file)
@@ -56,7 +56,11 @@ class CRM_Core_BAO_CustomGroup extends CRM_Core_DAO_CustomGroup implements \Civi
     }
     if (!CRM_Utils_System::isNull($extendsChildType)) {
       $b = self::getMungedEntity($params['extends'], $params['extends_entity_column_id'] ?? NULL);
-      $registeredSubTypes = self::getSubTypes()[$b];
+      $subTypes = self::getExtendsEntityColumnValueOptions('validate', ['values' => $params]);
+      $registeredSubTypes = [];
+      foreach ($subTypes as $subTypeDetail) {
+        $registeredSubTypes[$subTypeDetail['id']] = $subTypeDetail['label'];
+      }
       if (is_array($extendsChildType)) {
         foreach ($extendsChildType as $childType) {
           if (!array_key_exists($childType, $registeredSubTypes) && !in_array($childType, $registeredSubTypes, TRUE)) {
@@ -2113,9 +2117,6 @@ SELECT  civicrm_custom_group.id as groupID, civicrm_custom_group.title as groupT
           $fkNameField = isset($fkFields['name']) ? 'name' : 'id';
           $select = [$fkIdField, $fkNameField, $fkLabelField];
           $where = [];
-          if (isset($fkFields['is_active'])) {
-            $where[] = ['is_active', '=', TRUE];
-          }
           $fkEntities = civicrm_api4($field['fk_entity'], 'get', [
             'checkPermissions' => !(isset($params['check_permissions']) && !$params['check_permissions']),
             'select' => $select,