From 8226e32b7fbf1496443d5e7673e1354ec20bcdda Mon Sep 17 00:00:00 2001 From: Seamus Lee Date: Thu, 4 Jan 2024 12:03:58 +1100 Subject: [PATCH] [REF] Fix grant_report_received column to be not null and default to 0 Fix form handling --- ext/civigrant/CRM/Grant/DAO/Grant.php | 6 ++++-- ext/civigrant/CRM/Grant/Form/Grant.php | 2 +- ext/civigrant/CRM/Grant/Upgrader.php | 7 +++++++ ext/civigrant/sql/auto_install.sql | 2 +- ext/civigrant/xml/schema/CRM/Grant/Grant.xml | 2 ++ 5 files changed, 15 insertions(+), 4 deletions(-) diff --git a/ext/civigrant/CRM/Grant/DAO/Grant.php b/ext/civigrant/CRM/Grant/DAO/Grant.php index 3e1c6c18ae..fd1c21fbfc 100644 --- a/ext/civigrant/CRM/Grant/DAO/Grant.php +++ b/ext/civigrant/CRM/Grant/DAO/Grant.php @@ -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', diff --git a/ext/civigrant/CRM/Grant/Form/Grant.php b/ext/civigrant/CRM/Grant/Form/Grant.php index 0342d63723..28b025ed54 100644 --- a/ext/civigrant/CRM/Grant/Form/Grant.php +++ b/ext/civigrant/CRM/Grant/Form/Grant.php @@ -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 diff --git a/ext/civigrant/CRM/Grant/Upgrader.php b/ext/civigrant/CRM/Grant/Upgrader.php index e6e188e32a..0b6179aa34 100644 --- a/ext/civigrant/CRM/Grant/Upgrader.php +++ b/ext/civigrant/CRM/Grant/Upgrader.php @@ -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; + } + } diff --git a/ext/civigrant/sql/auto_install.sql b/ext/civigrant/sql/auto_install.sql index 07b7f9396d..a8afd74d87 100644 --- a/ext/civigrant/sql/auto_install.sql +++ b/ext/civigrant/sql/auto_install.sql @@ -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).', diff --git a/ext/civigrant/xml/schema/CRM/Grant/Grant.xml b/ext/civigrant/xml/schema/CRM/Grant/Grant.xml index 68ca957732..3d1b7bd691 100644 --- a/ext/civigrant/xml/schema/CRM/Grant/Grant.xml +++ b/ext/civigrant/xml/schema/CRM/Grant/Grant.xml @@ -110,6 +110,8 @@ boolean Yes/No field stating whether grant report was received by donor. true + true + 0 1.8 CheckBox -- 2.25.1