dev/core/issues/228 fix OptionGroup create action to not disable on update
authoreileen <emcnaughton@wikimedia.org>
Wed, 4 Jul 2018 04:04:35 +0000 (16:04 +1200)
committereileen <emcnaughton@wikimedia.org>
Fri, 6 Jul 2018 22:51:35 +0000 (10:51 +1200)
CRM/Core/BAO/OptionGroup.php
CRM/Upgrade/Incremental/sql/5.5.alpha1.mysql.tpl
xml/schema/Core/OptionGroup.xml

index fdc415b5cab5df557d057de5d33c57f22310d6d0..bbabcef8bd42e1fcc265e20d6e3a3159b2749375 100644 (file)
@@ -88,16 +88,12 @@ class CRM_Core_BAO_OptionGroup extends CRM_Core_DAO_OptionGroup {
    * @return object
    */
   public static function add(&$params, $ids = array()) {
-    if (empty($params['id'])) {
-      $params['id'] = CRM_Utils_Array::value('optionGroup', $ids);
+    if (empty($params['id']) && !empty($ids['optionGroup'])) {
+      CRM_Core_Error::deprecatedFunctionWarning('no $ids array');
+      $params['id'] = $ids['optionGroup'];
     }
-
-    $params['is_active'] = CRM_Utils_Array::value('is_active', $params, FALSE);
-
-    // action is taken depending upon the mode
     $optionGroup = new CRM_Core_DAO_OptionGroup();
     $optionGroup->copyValues($params);;
-
     $optionGroup->save();
     return $optionGroup;
   }
index 937c7beae6d4003da787c4067b69cd78afb34f20..d8f9bd573ad3b87e78e4860e00dec60ce185ef6d 100644 (file)
@@ -1 +1,9 @@
 {* file to handle db changes in 5.5.alpha1 during upgrade *}
+#https://lab.civicrm.org/dev/core/issues/228
+UPDATE civicrm_option_group SET is_active = 0 WHERE is_active IS NULL;
+ALTER TABLE civicrm_option_group MODIFY COLUMN is_active TINYINT(4) NOT NULL DEFAULT 1 COMMENT 'Is this option group active?';
+UPDATE civicrm_option_group SET is_locked = 0 WHERE is_locked IS NULL;
+ALTER TABLE civicrm_option_group MODIFY COLUMN  is_locked TINYINT(4) NOT NULL DEFAULT 1 COMMENT 'A lock to remove the ability to add new options via the UI.';
+#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)?';
index 013e76dde9886221f95b92e27156a6c66ec5776e..3df4c11d1848186a0538d9d4a651015e83c47791 100644 (file)
@@ -61,6 +61,7 @@
     <title>Option Group Is Reserved?</title>
     <type>boolean</type>
     <default>1</default>
+    <required>true</required>
     <comment>Is this a predefined system option group (i.e. it can not be deleted)?</comment>
     <add>1.5</add>
   </field>
     <name>is_active</name>
     <title>Option Group Is Active?</title>
     <type>boolean</type>
+    <default>1</default>
+    <required>true</required>
     <comment>Is this option group active?</comment>
     <add>1.5</add>
   </field>
   <field>
     <name>is_locked</name>
     <title>Option Group Is Locked</title>
+    <default>0</default>
+    <required>true</required>
     <type>boolean</type>
     <comment>A lock to remove the ability to add new options via the UI.</comment>
     <add>4.5</add>