From 121875d9719f36476192a0b81188e3b958f92b21 Mon Sep 17 00:00:00 2001 From: Tim Otten Date: Thu, 20 Mar 2014 17:15:52 -0700 Subject: [PATCH] CRM-14369 - DAO::createTestObject - Restore autogeneration of enums --- CRM/Core/DAO.php | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/CRM/Core/DAO.php b/CRM/Core/DAO.php index 199d50759d..357341447d 100644 --- a/CRM/Core/DAO.php +++ b/CRM/Core/DAO.php @@ -1393,10 +1393,29 @@ SELECT contact_id case CRM_Utils_Type::T_LONGTEXT: case CRM_Utils_Type::T_EMAIL: default: - $object->$dbName = $dbName . '_' . $counter; - $maxlength = CRM_Utils_Array::value('maxlength', $value); - if ($maxlength > 0 && strlen($object->$dbName) > $maxlength) { - $object->$dbName = substr($object->$dbName, 0, $value['maxlength']); + // WAS: if (isset($value['enumValues'])) { + // TODO: see if this works with all pseudoconstants + if (isset($value['pseudoconstant'], $value['pseudoconstant']['callback'])) { + if (isset($value['default'])) { + $object->$dbName = $value['default']; + } + else { + $options = CRM_Core_PseudoConstant::get($daoName, $name); + if (is_array($options)) { + $object->$dbName = $options[0]; + } + else { + $defaultValues = explode(',', $options); + $object->$dbName = $defaultValues[0]; + } + } + } + else { + $object->$dbName = $dbName . '_' . $counter; + $maxlength = CRM_Utils_Array::value('maxlength', $value); + if ($maxlength > 0 && strlen($object->$dbName) > $maxlength) { + $object->$dbName = substr($object->$dbName, 0, $value['maxlength']); + } } } } -- 2.25.1