Afform - Fix custom field blocks
authorColeman Watts <coleman@civicrm.org>
Wed, 27 Jan 2021 16:59:47 +0000 (11:59 -0500)
committerColeman Watts <coleman@civicrm.org>
Sat, 30 Jan 2021 01:41:05 +0000 (20:41 -0500)
Ensure auto-generated custom field blocks appear in the UI and load correctly

ext/afform/admin/Civi/AfformAdmin/AfformAdminMeta.php
ext/afform/core/Civi/Api4/Action/Afform/Get.php

index c0474106d6375b8d714bfd8ad3ec82127cbf66b0..782a5fcc716ca96661db8cb6ab0978b2c6ae4f18 100644 (file)
@@ -51,7 +51,10 @@ class AfformAdminMeta {
         'label' => $contactTypes[$entityName]['label'],
       ];
     }
-    $info = ("\Civi\Api4\\{$entityName}")::getInfo();
+    $info = \Civi\Api4\Entity::get(FALSE)
+      ->addWhere('name', '=', $entityName)
+      ->addSelect('title', 'icon')
+      ->execute()->first();
     return [
       'entity' => $entityName,
       'label' => $info['title'],
index 192c4cce31a33c5c1af6c81ac0b59ff1619c4224..844c9aa2b951983bd61692c3562403ca8bc07a5a 100644 (file)
@@ -88,7 +88,7 @@ class Get extends \Civi\Api4\Generic\BasicGetAction {
     }
     $customApi = CustomGroup::get()
       ->setCheckPermissions(FALSE)
-      ->setSelect(['name', 'title', 'help_pre', 'help_post'])
+      ->setSelect(['name', 'title', 'help_pre', 'help_post', 'extends'])
       ->addWhere('is_multiple', '=', 1)
       ->addWhere('is_active', '=', 1);
     if ($groupNames) {
@@ -111,6 +111,7 @@ class Get extends \Civi\Api4\Generic\BasicGetAction {
       }
       $item = [
         'name' => $name,
+        'type' => 'block',
         'requires' => [],
         'title' => ts('%1 block (default)', [1 => $custom['title']]),
         'description' => '',
@@ -118,7 +119,7 @@ class Get extends \Civi\Api4\Generic\BasicGetAction {
         'is_public' => FALSE,
         'permission' => 'access CiviCRM',
         'join' => 'Custom_' . $custom['name'],
-        'extends' => 'Contact',
+        'block' => $custom['extends'],
         'repeat' => TRUE,
         'has_base' => TRUE,
       ];