From 1519c82877679e87d141637ff2aad02a32961f6e Mon Sep 17 00:00:00 2001 From: Seamus Lee Date: Sat, 31 Aug 2019 08:49:45 +1000 Subject: [PATCH] Convert pledge date fields to use datepicker rather than jcalendar Add support for url variables Standardise search form as per contribute form Add in pledge payment xml change --- CRM/Pledge/BAO/Query.php | 23 +++++++++++++++----- CRM/Pledge/DAO/PledgePayment.php | 3 ++- CRM/Pledge/Form/Search.php | 19 +++++----------- CRM/Upgrade/Incremental/php/FiveEighteen.php | 13 +++++++++++ templates/CRM/Pledge/Form/Search/Common.tpl | 8 +++---- xml/schema/Pledge/PledgePayment.xml | 1 + 6 files changed, 42 insertions(+), 25 deletions(-) diff --git a/CRM/Pledge/BAO/Query.php b/CRM/Pledge/BAO/Query.php index 0e0ff052c2..733e26abda 100644 --- a/CRM/Pledge/BAO/Query.php +++ b/CRM/Pledge/BAO/Query.php @@ -537,11 +537,27 @@ class CRM_Pledge_BAO_Query extends CRM_Core_BAO_Query { public static function getSearchFieldMetadata() { $fields = [ 'pledge_status_id', + 'pledge_start_date', + 'pledge_end_date', + 'pledge_create_date', ]; $metadata = civicrm_api3('Pledge', 'getfields', [])['values']; return array_intersect_key($metadata, array_flip($fields)); } + /** + * Get the metadata for fields to be included on the grant search form. + * + * @throws \CiviCRM_API3_Exception + */ + public static function getPledgePaymentSearchFieldMetadata() { + $fields = [ + 'pledge_payment_scheduled_date', + ]; + $metadata = civicrm_api3('PledgePayment', 'getfields', [])['values']; + return array_intersect_key($metadata, array_flip($fields)); + } + /** * Build the search for for pledges. * @@ -553,13 +569,8 @@ class CRM_Pledge_BAO_Query extends CRM_Core_BAO_Query { public static function buildSearchForm(&$form) { // pledge related dates $form->addSearchFieldMetadata(['Pledge' => self::getSearchFieldMetadata()]); + $form->addSearchFieldMetadata(['PledgePayment' => self::getPledgePaymentSearchFieldMetadata()]); $form->addFormFieldsFromMetadata(); - CRM_Core_Form_Date::buildDateRange($form, 'pledge_start_date', 1, '_low', '_high', ts('From'), FALSE); - CRM_Core_Form_Date::buildDateRange($form, 'pledge_end_date', 1, '_low', '_high', ts('From'), FALSE); - CRM_Core_Form_Date::buildDateRange($form, 'pledge_create_date', 1, '_low', '_high', ts('From'), FALSE); - - // pledge payment related dates - CRM_Core_Form_Date::buildDateRange($form, 'pledge_payment_date', 1, '_low', '_high', ts('From'), FALSE); $form->addYesNo('pledge_test', ts('Pledge is a Test?'), TRUE); $form->add('text', 'pledge_amount_low', ts('From'), ['size' => 8, 'maxlength' => 8]); diff --git a/CRM/Pledge/DAO/PledgePayment.php b/CRM/Pledge/DAO/PledgePayment.php index 5e1da56ae5..879a6fa973 100644 --- a/CRM/Pledge/DAO/PledgePayment.php +++ b/CRM/Pledge/DAO/PledgePayment.php @@ -6,7 +6,7 @@ * * Generated from xml/schema/CRM/Pledge/PledgePayment.xml * DO NOT EDIT. Generated by CRM_Core_CodeGen - * (GenCodeChecksum:7dfb4f8000b79fa8b1abab1de3712fc1) + * (GenCodeChecksum:563e2926d00b9fe0c4919bfd9a0a05e7) */ /** @@ -236,6 +236,7 @@ class CRM_Pledge_DAO_PledgePayment extends CRM_Core_DAO { 'entity' => 'PledgePayment', 'bao' => 'CRM_Pledge_BAO_PledgePayment', 'localizable' => 0, + 'unique_title' => ts('Payment Scheduled'), 'html' => [ 'type' => 'Select Date', 'formatType' => 'activityDate', diff --git a/CRM/Pledge/Form/Search.php b/CRM/Pledge/Form/Search.php index ecf8f503e4..1f735e48af 100644 --- a/CRM/Pledge/Form/Search.php +++ b/CRM/Pledge/Form/Search.php @@ -98,6 +98,10 @@ class CRM_Pledge_Form_Search extends CRM_Core_Form_Search { } if ($this->_force) { + // pledge related dates + $this->addSearchFieldMetadata(['Pledge' => CRM_Pledge_BAO_Query::getSearchFieldMetadata()]); + $this->addSearchFieldMetadata(['PledgePayment' => CRM_Pledge_BAO_Query::getPledgePaymentSearchFieldMetadata()]); + $this->addFormFieldsFromMetadata(); $this->postProcess(); $this->set('force', 0); } @@ -230,7 +234,7 @@ class CRM_Pledge_Form_Search extends CRM_Core_Form_Search { $this->_done = TRUE; - $this->_formValues = $this->controller->exportValues($this->_name); + $this->setFormValues(); $this->fixFormValues(); @@ -321,19 +325,6 @@ class CRM_Pledge_Form_Search extends CRM_Core_Form_Search { $this->addFormRule(['CRM_Pledge_Form_Search', 'formRule']); } - /** - * Set the default form values. - * - * - * @return array - * the default array reference - */ - public function setDefaultValues() { - $defaults = []; - $defaults = $this->_formValues; - return $defaults; - } - public function fixFormValues() { if (!$this->_force) { return; diff --git a/CRM/Upgrade/Incremental/php/FiveEighteen.php b/CRM/Upgrade/Incremental/php/FiveEighteen.php index 54af4a9657..e475d3b060 100644 --- a/CRM/Upgrade/Incremental/php/FiveEighteen.php +++ b/CRM/Upgrade/Incremental/php/FiveEighteen.php @@ -82,6 +82,19 @@ class CRM_Upgrade_Incremental_php_FiveEighteen extends CRM_Upgrade_Incremental_B $this->addTask('Remove Foreign Key from civicrm_dashboard on domain_id if exists', 'removeDomainIDFK'); $this->addTask('Remove Index on domain_id that might have been randomly added in the same format as FK', 'dropIndex', 'civicrm_dashboard', 'FK_civicrm_dashboard_domain_id'); $this->addTask('Re-Create Foreign key between civicrm_dashboard and civicrm_domain correctly', 'recreateDashboardFK'); + $this->addTask('Update smart groups to rename filters on pledge_payment_date to pledge_payment_scheduled_date', 'updateSmartGroups', [ + 'renameField' => [ + ['old' => 'pledge_payment_date', 'new' => 'pledge_payment_scheduled_date'], + ], + ]); + $this->addTask('Update smart groups where jcalendar fields have been converted to datepicker', 'updateSmartGroups', [ + 'datepickerConversion' => [ + 'pledge_payment_scheduled_date', + 'pledge_create_date', + 'pledge_end_date', + 'pledge_start_date', + ], + ]); } public static function removeDomainIDFK() { diff --git a/templates/CRM/Pledge/Form/Search/Common.tpl b/templates/CRM/Pledge/Form/Search/Common.tpl index dbd5cc6d6c..9168c503b3 100644 --- a/templates/CRM/Pledge/Form/Search/Common.tpl +++ b/templates/CRM/Pledge/Form/Search/Common.tpl @@ -25,7 +25,7 @@ *} -{include file="CRM/Core/DateRange.tpl" fieldName="pledge_payment_date" from='_low' to='_high' label=""} +{include file="CRM/Core/DatePickerRangeWrapper.tpl" fieldName="pledge_payment_scheduled_date" colspan="2"} @@ -45,13 +45,13 @@ -{include file="CRM/Core/DateRange.tpl" fieldName="pledge_create_date" from='_low' to='_high' label=""} +{include file="CRM/Core/DatePickerRangeWrapper.tpl" fieldName="pledge_create_date" colspan="2"} -{include file="CRM/Core/DateRange.tpl" fieldName="pledge_start_date" from='_low' to='_high' label=""} +{include file="CRM/Core/DatePickerRangeWrapper.tpl" fieldName="pledge_start_date" colspan="2"} -{include file="CRM/Core/DateRange.tpl" fieldName="pledge_end_date" from='_low' to='_high' label=""} +{include file="CRM/Core/DatePickerRangeWrapper.tpl" fieldName="pledge_end_date" colspan="2"} diff --git a/xml/schema/Pledge/PledgePayment.xml b/xml/schema/Pledge/PledgePayment.xml index 711204820b..459c03206d 100644 --- a/xml/schema/Pledge/PledgePayment.xml +++ b/xml/schema/Pledge/PledgePayment.xml @@ -107,6 +107,7 @@ Select Date activityDate + Payment Scheduled reminder_date -- 2.25.1