From 2da308993426341fa3e82dcb6f9f1d6d2b477331 Mon Sep 17 00:00:00 2001 From: Kevin Cristiano <kcristiano@kcristiano.com> Date: Thu, 17 Sep 2020 15:20:02 -0400 Subject: [PATCH] civicrm release --- civicrm.php | 4 +- civicrm/CRM/Core/DAO/CustomField.php | 8 ++-- civicrm/CRM/Core/Payment/PayPalImpl.php | 24 +++++++---- civicrm/CRM/Dedupe/Merger.php | 6 +++ civicrm/CRM/Report/Form.php | 8 +--- .../Upgrade/Incremental/sql/5.29.1.mysql.tpl | 7 ++++ civicrm/Civi/Api4/Generic/AbstractAction.php | 16 ++++---- civicrm/api/v3/CustomField.php | 37 ++++++++++++++--- civicrm/civicrm-version.php | 2 +- civicrm/release-notes.md | 9 ++++ civicrm/release-notes/5.29.1.md | 41 +++++++++++++++++++ civicrm/sql/civicrm.mysql | 2 +- civicrm/sql/civicrm_data.mysql | 2 +- civicrm/sql/civicrm_generated.mysql | 2 +- civicrm/vendor/autoload.php | 2 +- civicrm/vendor/composer/autoload_real.php | 14 +++---- civicrm/vendor/composer/autoload_static.php | 12 +++--- civicrm/xml/schema/Core/CustomField.xml | 4 +- civicrm/xml/version.xml | 2 +- 19 files changed, 151 insertions(+), 51 deletions(-) create mode 100644 civicrm/CRM/Upgrade/Incremental/sql/5.29.1.mysql.tpl create mode 100644 civicrm/release-notes/5.29.1.md diff --git a/civicrm.php b/civicrm.php index 62bb020b46..ec634adb08 100644 --- a/civicrm.php +++ b/civicrm.php @@ -2,7 +2,7 @@ /* Plugin Name: CiviCRM Description: CiviCRM - Growing and Sustaining Relationships -Version: 5.29.0 +Version: 5.29.1 Requires at least: 4.9 Requires PHP: 7.1 Author: CiviCRM LLC @@ -56,7 +56,7 @@ if ( ! defined( 'ABSPATH' ) ) exit; // Set version here: when it changes, will force JS to reload -define( 'CIVICRM_PLUGIN_VERSION', '5.29.0' ); +define( 'CIVICRM_PLUGIN_VERSION', '5.29.1' ); // Store reference to this file if (!defined('CIVICRM_PLUGIN_FILE')) { diff --git a/civicrm/CRM/Core/DAO/CustomField.php b/civicrm/CRM/Core/DAO/CustomField.php index 624a00f484..e866fd532c 100644 --- a/civicrm/CRM/Core/DAO/CustomField.php +++ b/civicrm/CRM/Core/DAO/CustomField.php @@ -6,7 +6,7 @@ * * Generated from xml/schema/CRM/Core/CustomField.xml * DO NOT EDIT. Generated by CRM_Core_CodeGen - * (GenCodeChecksum:7bdf73d78bf9965895218895184e40a9) + * (GenCodeChecksum:1acb9b3538bd3005b99e6af6d9ec062f) */ /** @@ -225,7 +225,7 @@ class CRM_Core_DAO_CustomField extends CRM_Core_DAO { public $option_group_id; /** - * Serialization method - a non-null value indicates a multi-valued field. + * Serialization method - a non-zero value indicates a multi-valued field. * * @var int */ @@ -686,8 +686,10 @@ class CRM_Core_DAO_CustomField extends CRM_Core_DAO { 'name' => 'serialize', 'type' => CRM_Utils_Type::T_INT, 'title' => ts('Serialize'), - 'description' => ts('Serialization method - a non-null value indicates a multi-valued field.'), + 'description' => ts('Serialization method - a non-zero value indicates a multi-valued field.'), + 'required' => TRUE, 'where' => 'civicrm_custom_field.serialize', + 'default' => '0', 'table_name' => 'civicrm_custom_field', 'entity' => 'CustomField', 'bao' => 'CRM_Core_BAO_CustomField', diff --git a/civicrm/CRM/Core/Payment/PayPalImpl.php b/civicrm/CRM/Core/Payment/PayPalImpl.php index 79c2ecd9de..38a6eb300d 100644 --- a/civicrm/CRM/Core/Payment/PayPalImpl.php +++ b/civicrm/CRM/Core/Payment/PayPalImpl.php @@ -160,12 +160,22 @@ class CRM_Core_Payment_PayPalImpl extends CRM_Core_Payment { $form->_expressButtonName = $form->getButtonName('upload', 'express'); } $form->assign('expressButtonName', $form->_expressButtonName); - $form->add( - 'image', - $form->_expressButtonName, - $this->_paymentProcessor['url_button'], - ['class' => 'crm-form-submit'] - ); + $form->add('xbutton', $form->_expressButtonName, ts('Pay using PayPal'), [ + 'type' => 'submit', + 'formnovalidate' => 'formnovalidate', + 'class' => 'crm-form-submit', + ]); + CRM_Core_Resources::singleton()->addStyle(' + button#' . $form->_expressButtonName . '{ + background-image: url(' . $this->_paymentProcessor['url_button'] . '); + color: transparent; + background-repeat: no-repeat; + background-color: transparent; + background-position: center; + min-width: 150px; + min-height: 50px; + border: none; + '); } } @@ -1109,7 +1119,6 @@ class CRM_Core_Payment_PayPalImpl extends CRM_Core_Payment { if ($this->isPayPalType($this::PAYPAL_EXPRESS)) { return TRUE; } - // This would occur postProcess. if (!empty($params['token'])) { return TRUE; @@ -1123,6 +1132,7 @@ class CRM_Core_Payment_PayPalImpl extends CRM_Core_Payment { $possibleExpressFields = [ '_qf_Register_upload_express_x', '_qf_Payment_upload_express_x', + '_qf_Main_upload_express', ]; if (array_intersect_key($params, array_fill_keys($possibleExpressFields, 1))) { return TRUE; diff --git a/civicrm/CRM/Dedupe/Merger.php b/civicrm/CRM/Dedupe/Merger.php index c4be7070d9..74016a80a2 100644 --- a/civicrm/CRM/Dedupe/Merger.php +++ b/civicrm/CRM/Dedupe/Merger.php @@ -541,6 +541,12 @@ INNER JOIN civicrm_membership membership2 ON membership1.membership_type_id = m continue; } + if ($table === 'civicrm_dashboard_contact') { + $sqls[] = "UPDATE IGNORE civicrm_dashboard_contact SET contact_id = $mainId WHERE contact_id = $otherId"; + $sqls[] = "DELETE FROM civicrm_dashboard_contact WHERE contact_id = $otherId"; + continue; + } + if ($table === 'civicrm_dedupe_exception') { $sqls[] = "UPDATE IGNORE civicrm_dedupe_exception SET contact_id1 = $mainId WHERE contact_id1 = $otherId"; $sqls[] = "UPDATE IGNORE civicrm_dedupe_exception SET contact_id2 = $mainId WHERE contact_id2 = $otherId"; diff --git a/civicrm/CRM/Report/Form.php b/civicrm/CRM/Report/Form.php index 449e1a087c..d202b84561 100644 --- a/civicrm/CRM/Report/Form.php +++ b/civicrm/CRM/Report/Form.php @@ -1465,7 +1465,7 @@ class CRM_Report_Form extends CRM_Core_Form { if (!CRM_Core_Permission::check('view report sql')) { return; } - $ignored_output_modes = ['pdf', 'csv', 'print', 'excel2007']; + $ignored_output_modes = ['pdf', 'csv', 'print']; if (in_array($this->_outputMode, $ignored_output_modes)) { return; } @@ -2900,12 +2900,6 @@ WHERE cg.extends IN ('" . implode("','", $this->_customGroupExtends) . "') AND $this->addPaging = $this->outputHandler->isAddPaging(); $this->_absoluteUrl = $this->outputHandler->isAbsoluteUrl(); } - - } - elseif ($this->_outputMode == 'excel2007') { - $printOnly = TRUE; - $this->_absoluteUrl = TRUE; - $this->addPaging = FALSE; } elseif ($this->_outputMode == 'copy' && $this->_criteriaForm) { $this->_createNew = TRUE; diff --git a/civicrm/CRM/Upgrade/Incremental/sql/5.29.1.mysql.tpl b/civicrm/CRM/Upgrade/Incremental/sql/5.29.1.mysql.tpl new file mode 100644 index 0000000000..f51e009f0d --- /dev/null +++ b/civicrm/CRM/Upgrade/Incremental/sql/5.29.1.mysql.tpl @@ -0,0 +1,7 @@ +{* file to handle db changes in 5.29.1 during upgrade *} + +UPDATE `civicrm_custom_field` SET `serialize` = 0 WHERE `serialize` IS NULL; + +ALTER TABLE `civicrm_custom_field` +CHANGE COLUMN `serialize` +`serialize` int unsigned NOT NULL DEFAULT 0 COMMENT 'Serialization method - a non-zero value indicates a multi-valued field.'; diff --git a/civicrm/Civi/Api4/Generic/AbstractAction.php b/civicrm/Civi/Api4/Generic/AbstractAction.php index 8d0111e6b3..fa995ce0d8 100644 --- a/civicrm/Civi/Api4/Generic/AbstractAction.php +++ b/civicrm/Civi/Api4/Generic/AbstractAction.php @@ -407,13 +407,15 @@ abstract class AbstractAction implements \ArrayAccess { 'default' => ['administer CiviCRM'], ]; $action = $this->getActionName(); - if (isset($permissions[$action])) { - return $permissions[$action]; - } - elseif (in_array($action, ['getActions', 'getFields'])) { - return $permissions['meta']; - } - return $permissions['default']; + // Map specific action names to more generic versions + $map = [ + 'getActions' => 'meta', + 'getFields' => 'meta', + 'replace' => 'delete', + 'save' => 'create', + ]; + $generic = $map[$action] ?? 'default'; + return $permissions[$action] ?? $permissions[$generic] ?? $permissions['default']; } /** diff --git a/civicrm/api/v3/CustomField.php b/civicrm/api/v3/CustomField.php index 1667721744..a9b664b0b5 100644 --- a/civicrm/api/v3/CustomField.php +++ b/civicrm/api/v3/CustomField.php @@ -122,18 +122,45 @@ function civicrm_api3_custom_field_delete($params) { * @return array */ function civicrm_api3_custom_field_get($params) { - if (CRM_Core_BAO_Domain::isDBVersionAtLeast('5.27.alpha1') && ($params['legacy_html_type'] ?? TRUE) && !empty($params['return'])) { - if (is_array($params['return'])) { + // Legacy handling for serialize property + $handleLegacy = (($params['legacy_html_type'] ?? !isset($params['serialize'])) && CRM_Core_BAO_Domain::isDBVersionAtLeast('5.27.alpha1')); + if ($handleLegacy && !empty($params['return'])) { + if (!is_array($params['return'])) { + $params['return'] = explode(',', str_replace(' ', '', $params['return'])); + } + if (!in_array('serialize', $params['return'])) { $params['return'][] = 'serialize'; } - elseif (is_string($params['return'])) { - $params['return'] .= ',serialize'; + } + if ($handleLegacy && !empty($params['html_type'])) { + $serializedTypes = ['CheckBox', 'Multi-Select', 'Multi-Select Country', 'Multi-Select State/Province']; + if (is_string($params['html_type'])) { + if (strpos($params['html_type'], 'Multi-Select') === 0) { + $params['html_type'] = str_replace('Multi-Select', 'Select', $params['html_type']); + $params['serialize'] = 1; + } + elseif (!in_array($params['html_type'], $serializedTypes)) { + $params['serialize'] = 0; + } + } + elseif (is_array($params['html_type']) && !empty($params['html_type']['IN'])) { + $excludeNonSerialized = !array_diff($params['html_type']['IN'], $serializedTypes); + $onlyNonSerialized = !array_intersect($params['html_type']['IN'], $serializedTypes); + $params['html_type']['IN'] = array_map(function($val) { + return str_replace('Multi-Select', 'Select', $val); + }, $params['html_type']['IN']); + if ($excludeNonSerialized) { + $params['serialize'] = 1; + } + if ($onlyNonSerialized) { + $params['serialize'] = 0; + } } } $results = _civicrm_api3_basic_get(_civicrm_api3_get_BAO(__FUNCTION__), $params); - if (($params['legacy_html_type'] ?? TRUE) && !empty($results['values']) && is_array($results['values'])) { + if ($handleLegacy && !empty($results['values']) && is_array($results['values']) && !isset($params['serialize'])) { foreach ($results['values'] as $id => $result) { if (!empty($result['serialize']) && !empty($result['html_type'])) { $results['values'][$id]['html_type'] = str_replace('Select', 'Multi-Select', $result['html_type']); diff --git a/civicrm/civicrm-version.php b/civicrm/civicrm-version.php index 5362bfefa3..2fd54269c2 100644 --- a/civicrm/civicrm-version.php +++ b/civicrm/civicrm-version.php @@ -1,7 +1,7 @@ <?php /** @deprecated */ function civicrmVersion( ) { - return array( 'version' => '5.29.0', + return array( 'version' => '5.29.1', 'cms' => 'Wordpress', 'revision' => '' ); } diff --git a/civicrm/release-notes.md b/civicrm/release-notes.md index d2d501d26a..b12dfb5a91 100644 --- a/civicrm/release-notes.md +++ b/civicrm/release-notes.md @@ -15,6 +15,15 @@ Other resources for identifying changes are: * https://github.com/civicrm/civicrm-joomla * https://github.com/civicrm/civicrm-wordpress +## CiviCRM 5.29.1 + +Released September 15, 2020 + +- **[Synopsis](release-notes/5.29.1.md#synopsis)** +- **[Bugs resolved](release-notes/5.29.1.md#bugs)** +- **[Credits](release-notes/5.29.1.md#credits)** +- **[Feedback](release-notes/5.29.1.md#feedback)** + ## CiviCRM 5.29.0 Released September 2, 2020 diff --git a/civicrm/release-notes/5.29.1.md b/civicrm/release-notes/5.29.1.md new file mode 100644 index 0000000000..5ad7bbbc81 --- /dev/null +++ b/civicrm/release-notes/5.29.1.md @@ -0,0 +1,41 @@ +# CiviCRM 5.29.1 + +Released September 15, 2020 + +- **[Synopsis](#synopsis)** +- **[Bugs resolved](#bugs)** +- **[Credits](#credits)** +- **[Feedback](#feedback)** + +## <a name="synopsis"></a>Synopsis + +| *Does this version...?* | | +| --------------------------------------------------------------- | -------- | +| Change the database schema? | no | +| Alter the API? | no | +| Require attention to configuration options? | no | +| Fix problems installing or upgrading to a previous version? | no | +| Introduce features? | no | +| **Fix bugs?** | **yes** | + +## <a name="bugs"></a>Bugs resolved + +* **_APIv3_: Searching list of custom-fields using traditional field-types ([dev/core#1996](https://lab.civicrm.org/dev/core/-/issues/1996): [#18347](https://github.com/civicrm/civicrm-core/pull/18347))** +* **_Dedupe_: Merging contacts with "Dashboard" settings produces error ([dev/core#1998](https://lab.civicrm.org/dev/core/-/issues/1998): [#18353](https://github.com/civicrm/civicrm-core/pull/18353))** +* **_Message Templates_: Permission error affects some authorized users ([dev/core#2008](https://lab.civicrm.org/dev/core/-/issues/2008): [#18437](https://github.com/civicrm/civicrm-core/pull/18437))** +* **_PayPal Pro_: Validation error prevents payment submission ([dev/financial#147](https://lab.civicrm.org/dev/financial/-/issues/147): [#18459](https://github.com/civicrm/civicrm-core/pull/18459))** + +## <a name="credits"></a>Credits + +This release was developed by the following authors and reviewers: + +Wikimedia Foundation - Eileen McNaughton; Tadpole Collective - Kevin Cristiano; Samuele Masetto; +SYSTOPIA Organisationsberatung - Björn Endres; Maynard Smith; Korlon - Stuart Gaston; JMA +Consulting - Seamus Lee; CiviCoop - Jaap Jansma; CiviCRM - Coleman Watts, Tim Otten; Circle +Interactive - Pradeep Nayak + +## <a name="feedback"></a>Feedback + +These release notes are edited by Tim Otten and Andrew Hunt. If you'd like to +provide feedback on them, please login to https://chat.civicrm.org/civicrm and +contact `@agh1`. diff --git a/civicrm/sql/civicrm.mysql b/civicrm/sql/civicrm.mysql index 48d11ec0e3..cbcb27da70 100644 --- a/civicrm/sql/civicrm.mysql +++ b/civicrm/sql/civicrm.mysql @@ -1817,7 +1817,7 @@ CREATE TABLE `civicrm_custom_field` ( `note_rows` int unsigned COMMENT 'Number of rows in Note Field', `column_name` varchar(255) COMMENT 'Name of the column that holds the values for this field.', `option_group_id` int unsigned COMMENT 'For elements with options, the option group id that is used', - `serialize` int unsigned COMMENT 'Serialization method - a non-null value indicates a multi-valued field.', + `serialize` int unsigned NOT NULL DEFAULT 0 COMMENT 'Serialization method - a non-zero value indicates a multi-valued field.', `filter` varchar(255) COMMENT 'Stores Contact Get API params contact reference custom fields. May be used for other filters in the future.', `in_selector` tinyint DEFAULT 0 COMMENT 'Should the multi-record custom field values be displayed in tab table listing' , diff --git a/civicrm/sql/civicrm_data.mysql b/civicrm/sql/civicrm_data.mysql index 5082547f7c..1aab8338dd 100644 --- a/civicrm/sql/civicrm_data.mysql +++ b/civicrm/sql/civicrm_data.mysql @@ -23897,4 +23897,4 @@ INSERT INTO `civicrm_report_instance` ( `domain_id`, `title`, `report_id`, `description`, `permission`, `form_values`) VALUES ( @domainID, 'Survey Details', 'survey/detail', 'Detailed report for canvassing, phone-banking, walk lists or other surveys.', 'access CiviReport', 'a:39:{s:6:"fields";a:2:{s:9:"sort_name";s:1:"1";s:6:"result";s:1:"1";}s:22:"assignee_contact_id_op";s:2:"eq";s:25:"assignee_contact_id_value";s:0:"";s:12:"sort_name_op";s:3:"has";s:15:"sort_name_value";s:0:"";s:17:"street_number_min";s:0:"";s:17:"street_number_max";s:0:"";s:16:"street_number_op";s:3:"lte";s:19:"street_number_value";s:0:"";s:14:"street_name_op";s:3:"has";s:17:"street_name_value";s:0:"";s:15:"postal_code_min";s:0:"";s:15:"postal_code_max";s:0:"";s:14:"postal_code_op";s:3:"lte";s:17:"postal_code_value";s:0:"";s:7:"city_op";s:3:"has";s:10:"city_value";s:0:"";s:20:"state_province_id_op";s:2:"in";s:23:"state_province_id_value";a:0:{}s:13:"country_id_op";s:2:"in";s:16:"country_id_value";a:0:{}s:12:"survey_id_op";s:2:"in";s:15:"survey_id_value";a:0:{}s:12:"status_id_op";s:2:"eq";s:15:"status_id_value";s:1:"1";s:11:"custom_1_op";s:2:"in";s:14:"custom_1_value";a:0:{}s:11:"custom_2_op";s:2:"in";s:14:"custom_2_value";a:0:{}s:17:"custom_3_relative";s:1:"0";s:13:"custom_3_from";s:0:"";s:11:"custom_3_to";s:0:"";s:11:"description";s:75:"Detailed report for canvassing, phone-banking, walk lists or other surveys.";s:13:"email_subject";s:0:"";s:8:"email_to";s:0:"";s:8:"email_cc";s:0:"";s:10:"permission";s:17:"access CiviReport";s:6:"groups";s:0:"";s:9:"domain_id";i:1;}'); -UPDATE civicrm_domain SET version = '5.29.0'; +UPDATE civicrm_domain SET version = '5.29.1'; diff --git a/civicrm/sql/civicrm_generated.mysql b/civicrm/sql/civicrm_generated.mysql index d1972c9448..c1fafd9745 100644 --- a/civicrm/sql/civicrm_generated.mysql +++ b/civicrm/sql/civicrm_generated.mysql @@ -399,7 +399,7 @@ UNLOCK TABLES; LOCK TABLES `civicrm_domain` WRITE; /*!40000 ALTER TABLE `civicrm_domain` DISABLE KEYS */; -INSERT INTO `civicrm_domain` (`id`, `name`, `description`, `version`, `contact_id`, `locales`, `locale_custom_strings`) VALUES (1,'Default Domain Name',NULL,'5.29.0',1,NULL,'a:1:{s:5:\"en_US\";a:0:{}}'); +INSERT INTO `civicrm_domain` (`id`, `name`, `description`, `version`, `contact_id`, `locales`, `locale_custom_strings`) VALUES (1,'Default Domain Name',NULL,'5.29.1',1,NULL,'a:1:{s:5:\"en_US\";a:0:{}}'); /*!40000 ALTER TABLE `civicrm_domain` ENABLE KEYS */; UNLOCK TABLES; diff --git a/civicrm/vendor/autoload.php b/civicrm/vendor/autoload.php index c3e3e239b7..5333a90fa0 100644 --- a/civicrm/vendor/autoload.php +++ b/civicrm/vendor/autoload.php @@ -4,4 +4,4 @@ require_once __DIR__ . '/composer/autoload_real.php'; -return ComposerAutoloaderInit191eca689b99b98f3334e35c02d03840::getLoader(); +return ComposerAutoloaderInitc0c306f7aec196654ddc587ff3d70d96::getLoader(); diff --git a/civicrm/vendor/composer/autoload_real.php b/civicrm/vendor/composer/autoload_real.php index 6775052330..8e5f2d3763 100644 --- a/civicrm/vendor/composer/autoload_real.php +++ b/civicrm/vendor/composer/autoload_real.php @@ -2,7 +2,7 @@ // autoload_real.php @generated by Composer -class ComposerAutoloaderInit191eca689b99b98f3334e35c02d03840 +class ComposerAutoloaderInitc0c306f7aec196654ddc587ff3d70d96 { private static $loader; @@ -19,9 +19,9 @@ class ComposerAutoloaderInit191eca689b99b98f3334e35c02d03840 return self::$loader; } - spl_autoload_register(array('ComposerAutoloaderInit191eca689b99b98f3334e35c02d03840', 'loadClassLoader'), true, true); + spl_autoload_register(array('ComposerAutoloaderInitc0c306f7aec196654ddc587ff3d70d96', 'loadClassLoader'), true, true); self::$loader = $loader = new \Composer\Autoload\ClassLoader(); - spl_autoload_unregister(array('ComposerAutoloaderInit191eca689b99b98f3334e35c02d03840', 'loadClassLoader')); + spl_autoload_unregister(array('ComposerAutoloaderInitc0c306f7aec196654ddc587ff3d70d96', 'loadClassLoader')); $includePaths = require __DIR__ . '/include_paths.php'; $includePaths[] = get_include_path(); @@ -31,7 +31,7 @@ class ComposerAutoloaderInit191eca689b99b98f3334e35c02d03840 if ($useStaticLoader) { require_once __DIR__ . '/autoload_static.php'; - call_user_func(\Composer\Autoload\ComposerStaticInit191eca689b99b98f3334e35c02d03840::getInitializer($loader)); + call_user_func(\Composer\Autoload\ComposerStaticInitc0c306f7aec196654ddc587ff3d70d96::getInitializer($loader)); } else { $map = require __DIR__ . '/autoload_namespaces.php'; foreach ($map as $namespace => $path) { @@ -52,19 +52,19 @@ class ComposerAutoloaderInit191eca689b99b98f3334e35c02d03840 $loader->register(true); if ($useStaticLoader) { - $includeFiles = Composer\Autoload\ComposerStaticInit191eca689b99b98f3334e35c02d03840::$files; + $includeFiles = Composer\Autoload\ComposerStaticInitc0c306f7aec196654ddc587ff3d70d96::$files; } else { $includeFiles = require __DIR__ . '/autoload_files.php'; } foreach ($includeFiles as $fileIdentifier => $file) { - composerRequire191eca689b99b98f3334e35c02d03840($fileIdentifier, $file); + composerRequirec0c306f7aec196654ddc587ff3d70d96($fileIdentifier, $file); } return $loader; } } -function composerRequire191eca689b99b98f3334e35c02d03840($fileIdentifier, $file) +function composerRequirec0c306f7aec196654ddc587ff3d70d96($fileIdentifier, $file) { if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { require $file; diff --git a/civicrm/vendor/composer/autoload_static.php b/civicrm/vendor/composer/autoload_static.php index 072ec1603e..c31616f97c 100644 --- a/civicrm/vendor/composer/autoload_static.php +++ b/civicrm/vendor/composer/autoload_static.php @@ -4,7 +4,7 @@ namespace Composer\Autoload; -class ComposerStaticInit191eca689b99b98f3334e35c02d03840 +class ComposerStaticInitc0c306f7aec196654ddc587ff3d70d96 { public static $files = array ( '320cde22f66dd4f5d3fd621d3e88b98f' => __DIR__ . '/..' . '/symfony/polyfill-ctype/bootstrap.php', @@ -531,11 +531,11 @@ class ComposerStaticInit191eca689b99b98f3334e35c02d03840 public static function getInitializer(ClassLoader $loader) { return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInit191eca689b99b98f3334e35c02d03840::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInit191eca689b99b98f3334e35c02d03840::$prefixDirsPsr4; - $loader->prefixesPsr0 = ComposerStaticInit191eca689b99b98f3334e35c02d03840::$prefixesPsr0; - $loader->fallbackDirsPsr0 = ComposerStaticInit191eca689b99b98f3334e35c02d03840::$fallbackDirsPsr0; - $loader->classMap = ComposerStaticInit191eca689b99b98f3334e35c02d03840::$classMap; + $loader->prefixLengthsPsr4 = ComposerStaticInitc0c306f7aec196654ddc587ff3d70d96::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInitc0c306f7aec196654ddc587ff3d70d96::$prefixDirsPsr4; + $loader->prefixesPsr0 = ComposerStaticInitc0c306f7aec196654ddc587ff3d70d96::$prefixesPsr0; + $loader->fallbackDirsPsr0 = ComposerStaticInitc0c306f7aec196654ddc587ff3d70d96::$fallbackDirsPsr0; + $loader->classMap = ComposerStaticInitc0c306f7aec196654ddc587ff3d70d96::$classMap; }, null, ClassLoader::class); } diff --git a/civicrm/xml/schema/Core/CustomField.xml b/civicrm/xml/schema/Core/CustomField.xml index 2bfd28999a..3e8c2b7d64 100644 --- a/civicrm/xml/schema/Core/CustomField.xml +++ b/civicrm/xml/schema/Core/CustomField.xml @@ -286,11 +286,13 @@ <type>int unsigned</type> <title>Serialize</title> <length>255</length> - <comment>Serialization method - a non-null value indicates a multi-valued field.</comment> + <comment>Serialization method - a non-zero value indicates a multi-valued field.</comment> <pseudoconstant> <callback>CRM_Core_SelectValues::fieldSerialization</callback> </pseudoconstant> <add>5.27</add> + <required>true</required> + <default>0</default> </field> <field> <name>filter</name> diff --git a/civicrm/xml/version.xml b/civicrm/xml/version.xml index 1f477e75ac..b94dfffc42 100644 --- a/civicrm/xml/version.xml +++ b/civicrm/xml/version.xml @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="iso-8859-1" ?> <version> - <version_no>5.29.0</version_no> + <version_no>5.29.1</version_no> </version> -- GitLab