[REF] Fix grant_report_received column to be not null and default to 0
authorSeamus Lee <seamuslee001@gmail.com>
Thu, 4 Jan 2024 01:03:58 +0000 (12:03 +1100)
committerSeamus Lee <seamuslee001@gmail.com>
Thu, 4 Jan 2024 01:35:59 +0000 (12:35 +1100)
Fix form handling

ext/civigrant/CRM/Grant/DAO/Grant.php
ext/civigrant/CRM/Grant/Form/Grant.php
ext/civigrant/CRM/Grant/Upgrader.php
ext/civigrant/sql/auto_install.sql
ext/civigrant/xml/schema/CRM/Grant/Grant.xml

index 3e1c6c18ae1864c44b95c7fc9b2f10b04911417e..fd1c21fbfc444c0399c581df5ec085a73bdaa642 100644 (file)
@@ -6,7 +6,7 @@
  *
  * Generated from civigrant/xml/schema/CRM/Grant/Grant.xml
  * DO NOT EDIT.  Generated by CRM_Core_CodeGen
- * (GenCodeChecksum:6572f413192bdc6c45725ba54fb7f124)
+ * (GenCodeChecksum:a3ca6da006bd1e7362988bdcbf3babdc)
  */
 use CRM_Grant_ExtensionUtil as E;
 
@@ -107,7 +107,7 @@ class CRM_Grant_DAO_Grant extends CRM_Core_DAO {
   /**
    * Yes/No field stating whether grant report was received by donor.
    *
-   * @var bool|string|null
+   * @var bool|string
    *   (SQL type: tinyint)
    *   Note that values will be retrieved from the database as a string.
    */
@@ -372,6 +372,7 @@ class CRM_Grant_DAO_Grant extends CRM_Core_DAO {
           'type' => CRM_Utils_Type::T_BOOLEAN,
           'title' => E::ts('Grant report received'),
           'description' => E::ts('Yes/No field stating whether grant report was received by donor.'),
+          'required' => TRUE,
           'usage' => [
             'import' => TRUE,
             'export' => TRUE,
@@ -381,6 +382,7 @@ class CRM_Grant_DAO_Grant extends CRM_Core_DAO {
           'import' => TRUE,
           'where' => 'civicrm_grant.grant_report_received',
           'export' => TRUE,
+          'default' => '0',
           'table_name' => 'civicrm_grant',
           'entity' => 'Grant',
           'bao' => 'CRM_Grant_DAO_Grant',
index 0342d63723723be7a85af5f81051c28b9c5e89d4..28b025ed54b8e478ecf2828172dd9399f6fc9ebf 100644 (file)
@@ -232,7 +232,7 @@ class CRM_Grant_Form_Grant extends CRM_Core_Form {
     $params['id'] = $this->_id;
 
     if (empty($params['grant_report_received'])) {
-      $params['grant_report_received'] = "null";
+      $params['grant_report_received'] = 0;
     }
 
     // set the contact, when contact is selected
index e6e188e32ad8a3307f0864e611142ea31c4c3ca2..0b6179aa34750ce8f638f31afea73687d81eb9f8 100644 (file)
@@ -35,4 +35,11 @@ class CRM_Grant_Upgrader extends CRM_Extension_Upgrader_Base {
       ->execute();
   }
 
+  public function upgrade_1001(): bool {
+    $this->ctx->log->info('Applying Update 1001 - fixing database column for grant_report_received to default to 0 and be required');
+    CRM_Core_DAO::executeQuery("UPDATE civicrm_grant SET grant_report_received = 0 WHERE grant_report_received IS NULL");
+    CRM_Core_DAO::executeQuery("ALTER TABLE civicrm_grant CHANGE `grant_report_received` `grant_report_received` tinyint NOT NULL DEFAULT 0 COMMENT 'Yes/No field stating whether grant report was received by donor.'");
+    return TRUE;
+  }
+
 }
index 07b7f9396d74248c65273422d75c9372184da0f3..a8afd74d874ea73a94305316baf4915142dc52da 100644 (file)
@@ -40,7 +40,7 @@ CREATE TABLE `civicrm_grant` (
   `decision_date` date COMMENT 'Date on which grant decision was made.',
   `money_transfer_date` date COMMENT 'Date on which grant money transfer was made.',
   `grant_due_date` date COMMENT 'Date on which grant report is due.',
-  `grant_report_received` tinyint COMMENT 'Yes/No field stating whether grant report was received by donor.',
+  `grant_report_received` tinyint NOT NULL DEFAULT 0 COMMENT 'Yes/No field stating whether grant report was received by donor.',
   `grant_type_id` int unsigned NOT NULL COMMENT 'Type of grant. Implicit FK to civicrm_option_value in grant_type option_group.',
   `amount_total` decimal(20,2) NOT NULL COMMENT 'Requested grant amount, in default currency.',
   `amount_requested` decimal(20,2) COMMENT 'Requested grant amount, in original currency (optional).',
index 68ca9577324ece5f192dda092a6553ed848402b9..3d1b7bd691768690560fda1df16a53f60845017d 100644 (file)
     <type>boolean</type>
     <comment>Yes/No field stating whether grant report was received by donor.</comment>
     <import>true</import>
+    <required>true</required>
+    <default>0</default>
     <add>1.8</add>
     <html>
       <type>CheckBox</type>