From bd8a24d6f479f0870b9241d248f0a15b35c46e46 Mon Sep 17 00:00:00 2001 From: Matthew Wire Date: Wed, 11 Jul 2018 12:59:29 +0100 Subject: [PATCH] Fix is_reserved flag on option groups --- CRM/Core/BAO/CustomField.php | 2 ++ CRM/Upgrade/Incremental/sql/5.5.alpha1.mysql.tpl | 7 +++++++ xml/templates/civicrm_data.tpl | 2 +- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/CRM/Core/BAO/CustomField.php b/CRM/Core/BAO/CustomField.php index 282687c183..dda021c2e8 100644 --- a/CRM/Core/BAO/CustomField.php +++ b/CRM/Core/BAO/CustomField.php @@ -230,6 +230,8 @@ class CRM_Core_BAO_CustomField extends CRM_Core_DAO_CustomField { $optionGroup->name = "{$columnName}_" . date('YmdHis'); $optionGroup->title = $params['label']; $optionGroup->is_active = 1; + // Don't set reserved as it's not a built-in option group and may be useful for other custom fields. + $optionGroup->is_reserved = 0; $optionGroup->data_type = $dataType; $optionGroup->save(); $params['option_group_id'] = $optionGroup->id; diff --git a/CRM/Upgrade/Incremental/sql/5.5.alpha1.mysql.tpl b/CRM/Upgrade/Incremental/sql/5.5.alpha1.mysql.tpl index d8f9bd573a..7a3d52b059 100644 --- a/CRM/Upgrade/Incremental/sql/5.5.alpha1.mysql.tpl +++ b/CRM/Upgrade/Incremental/sql/5.5.alpha1.mysql.tpl @@ -7,3 +7,10 @@ ALTER TABLE civicrm_option_group MODIFY COLUMN is_locked TINYINT(4) NOT NULL DE #is_reserved already has a default so is effectively required but let's be explicit. UPDATE civicrm_option_group SET `is_reserved` = 0 WHERE `is_reserved` IS NULL; ALTER TABLE civicrm_option_group MODIFY COLUMN `is_reserved` tinyint(4) NOT NULL DEFAULT 1 COMMENT 'Is this a predefined system option group (i.e. it can not be deleted)?'; + +#https://lab.civicrm.org/dev/core/issues/155 +{* Fix is_reserved flag on civicrm_option_group table *} +UPDATE civicrm_option_group AS cog INNER JOIN civicrm_custom_field AS ccf +ON cog.id = ccf.option_group_id +SET cog.is_reserved = 0 WHERE cog.is_active = 1 AND ccf.is_active = 1; +UPDATE civicrm_option_group SET is_reserved = 1 WHERE name='environment'; diff --git a/xml/templates/civicrm_data.tpl b/xml/templates/civicrm_data.tpl index d101300576..d20de95e1c 100644 --- a/xml/templates/civicrm_data.tpl +++ b/xml/templates/civicrm_data.tpl @@ -212,7 +212,7 @@ VALUES ('wysiwyg_presets' , '{ts escape="sql"}WYSIWYG Editor Presets{/ts}' , NULL, 1, 1, 0), ('relative_date_filters' , '{ts escape="sql"}Relative Date Filters{/ts}' , NULL, 1, 1, 0), ('pledge_status' , '{ts escape="sql"}Pledge Status{/ts}' , NULL, 1, 1, 1), - ('environment' , '{ts escape="sql"}Environment{/ts}' , NULL, 0, 1, 0); + ('environment' , '{ts escape="sql"}Environment{/ts}' , NULL, 1, 1, 0); SELECT @option_group_id_pcm := max(id) from civicrm_option_group where name = 'preferred_communication_method'; SELECT @option_group_id_act := max(id) from civicrm_option_group where name = 'activity_type'; -- 2.25.1