From 0b25329b4f56debe68b707afeae5f1b85bf54f0f Mon Sep 17 00:00:00 2001 From: Deepak Srivastava Date: Thu, 27 Jun 2013 18:24:08 +0530 Subject: [PATCH] CRM-12877, towards report instance api ---------------------------------------- * CRM-12877: Provide api for creating report instances http://issues.civicrm.org/jira/browse/CRM-12877 --- CRM/Campaign/BAO/Survey.php | 2 +- CRM/Core/BAO/Log.php | 2 +- CRM/Logging/Schema.php | 4 +- .../BAO/{Instance.php => ReportInstance.php} | 20 +++---- CRM/Report/Form.php | 2 +- CRM/Report/Form/Instance.php | 4 +- CRM/Report/Page/Instance.php | 6 +- CRM/Report/Utils/Report.php | 12 ++-- CRM/Upgrade/Incremental/php/FourThree.php | 2 +- CRM/Upgrade/Incremental/php/ThreeFour.php | 6 +- api/v3/ReportInstance.php | 60 +++++++++++++++++++ xml/schema/Report/Instance.xml | 2 +- 12 files changed, 91 insertions(+), 31 deletions(-) rename CRM/Report/BAO/{Instance.php => ReportInstance.php} (92%) create mode 100644 api/v3/ReportInstance.php diff --git a/CRM/Campaign/BAO/Survey.php b/CRM/Campaign/BAO/Survey.php index a23168ef41..4270067a13 100644 --- a/CRM/Campaign/BAO/Survey.php +++ b/CRM/Campaign/BAO/Survey.php @@ -389,7 +389,7 @@ SELECT survey.id as id, } $reportId = CRM_Campaign_BAO_Survey::getReportID($id); if($reportId){ - CRM_Report_BAO_Instance::delete($reportId); + CRM_Report_BAO_ReportInstance::del($reportId); } $dao = new CRM_Campaign_DAO_Survey(); $dao->id = $id; diff --git a/CRM/Core/BAO/Log.php b/CRM/Core/BAO/Log.php index 15772e8c65..690f2e292b 100644 --- a/CRM/Core/BAO/Log.php +++ b/CRM/Core/BAO/Log.php @@ -165,7 +165,7 @@ UPDATE civicrm_log if ($loggingSchema->isEnabled()) { $params = array('report_id' => 'logging/contact/summary'); $instance = array(); - CRM_Report_BAO_Instance::retrieve($params, $instance); + CRM_Report_BAO_ReportInstance::retrieve($params, $instance); if (!empty($instance) && (!CRM_Utils_Array::value('permission', $instance) || diff --git a/CRM/Logging/Schema.php b/CRM/Logging/Schema.php index beeed84620..dc02bb590e 100644 --- a/CRM/Logging/Schema.php +++ b/CRM/Logging/Schema.php @@ -255,7 +255,7 @@ AND TABLE_NAME LIKE 'log_civicrm_%' // add report instances $domain_id = CRM_Core_Config::domainID(); foreach ($this->reports as $report) { - $dao = new CRM_Report_DAO_Instance; + $dao = new CRM_Report_DAO_ReportInstance; $dao->domain_id = $domain_id; $dao->report_id = $report; $dao->title = $titles[$report]; @@ -342,7 +342,7 @@ COLS; // delete report instances $domain_id = CRM_Core_Config::domainID(); foreach ($this->reports as $report) { - $dao = new CRM_Report_DAO_Instance; + $dao = new CRM_Report_DAO_ReportInstance; $dao->domain_id = $domain_id; $dao->report_id = $report; $dao->delete(); diff --git a/CRM/Report/BAO/Instance.php b/CRM/Report/BAO/ReportInstance.php similarity index 92% rename from CRM/Report/BAO/Instance.php rename to CRM/Report/BAO/ReportInstance.php index 857fca272b..6585e29425 100644 --- a/CRM/Report/BAO/Instance.php +++ b/CRM/Report/BAO/ReportInstance.php @@ -33,7 +33,7 @@ * $Id$ * */ -class CRM_Report_BAO_Instance extends CRM_Report_DAO_Instance { +class CRM_Report_BAO_ReportInstance extends CRM_Report_DAO_ReportInstance { /** * takes an associative array and creates an instance object @@ -44,12 +44,12 @@ class CRM_Report_BAO_Instance extends CRM_Report_DAO_Instance { * * @param array $params (reference ) an assoc array of name/value pairs * - * @return object CRM_Report_DAO_Instance object + * @return object CRM_Report_DAO_ReportInstance object * @access public * @static */ static function add(&$params) { - $instance = new CRM_Report_DAO_Instance(); + $instance = new CRM_Report_DAO_ReportInstance(); if (empty($params)) { return NULL; } @@ -82,7 +82,7 @@ class CRM_Report_BAO_Instance extends CRM_Report_DAO_Instance { CRM_Utils_Hook::pre('create', 'ReportInstance', NULL, $params); } - $instance = new CRM_Report_DAO_Instance(); + $instance = new CRM_Report_DAO_ReportInstance(); $instance->copyValues($params); if ($config->userFramework == 'Joomla') { @@ -135,7 +135,7 @@ class CRM_Report_BAO_Instance extends CRM_Report_DAO_Instance { * * @param array $params (reference ) an assoc array of name/value pairs * - * @return object CRM_Report_BAO_Instance object + * @return object CRM_Report_BAO_ReportInstance object * @access public * @static */ @@ -199,11 +199,11 @@ class CRM_Report_BAO_Instance extends CRM_Report_DAO_Instance { if (CRM_Utils_Array::value('is_active', $navigationParams)) { //set the navigation id in report instance table - CRM_Core_DAO::setFieldValue('CRM_Report_DAO_Instance', $instance->id, 'navigation_id', $navigation->id); + CRM_Core_DAO::setFieldValue('CRM_Report_DAO_ReportInstance', $instance->id, 'navigation_id', $navigation->id); } else { // has been removed from the navigation bar - CRM_Core_DAO::setFieldValue('CRM_Report_DAO_Instance', $instance->id, 'navigation_id', 'NULL'); + CRM_Core_DAO::setFieldValue('CRM_Report_DAO_ReportInstance', $instance->id, 'navigation_id', 'NULL'); } //reset navigation CRM_Core_BAO_Navigation::resetNavigation(); @@ -235,14 +235,14 @@ class CRM_Report_BAO_Instance extends CRM_Report_DAO_Instance { * @access public * */ - function delete($id = NULL) { - $dao = new CRM_Report_DAO_Instance(); + static function del($id = NULL) { + $dao = new CRM_Report_DAO_ReportInstance(); $dao->id = $id; return $dao->delete(); } static function retrieve($params, &$defaults) { - $instance = new CRM_Report_DAO_Instance(); + $instance = new CRM_Report_DAO_ReportInstance(); $instance->copyValues($params); if ($instance->find(TRUE)) { diff --git a/CRM/Report/Form.php b/CRM/Report/Form.php index 75c9eba974..bfa11a967b 100644 --- a/CRM/Report/Form.php +++ b/CRM/Report/Form.php @@ -328,7 +328,7 @@ class CRM_Report_Form extends CRM_Core_Form { $this->assign('instanceId', $this->_id); $params = array('id' => $this->_id); $this->_instanceValues = array(); - CRM_Core_DAO::commonRetrieve('CRM_Report_DAO_Instance', + CRM_Core_DAO::commonRetrieve('CRM_Report_DAO_ReportInstance', $params, $this->_instanceValues ); diff --git a/CRM/Report/Form/Instance.php b/CRM/Report/Form/Instance.php index 064da4726a..785be24d63 100644 --- a/CRM/Report/Form/Instance.php +++ b/CRM/Report/Form/Instance.php @@ -49,7 +49,7 @@ class CRM_Report_Form_Instance { ); } - $attributes = CRM_Core_DAO::getAttribute('CRM_Report_DAO_Instance'); + $attributes = CRM_Core_DAO::getAttribute('CRM_Report_DAO_ReportInstance'); $form->add('text', 'title', @@ -255,7 +255,7 @@ class CRM_Report_Form_Instance { $params['navigation'] = $form->_navigation; } - $instance = CRM_Report_BAO_Instance::create($params); + $instance = CRM_Report_BAO_ReportInstance::create($params); $form->set('id', $instance->id); if ($instanceID && !$isNew) { diff --git a/CRM/Report/Page/Instance.php b/CRM/Report/Page/Instance.php index 84cb0a54cd..7c9377e97c 100644 --- a/CRM/Report/Page/Instance.php +++ b/CRM/Report/Page/Instance.php @@ -58,8 +58,8 @@ class CRM_Report_Page_Instance extends CRM_Core_Page { CRM_Core_Error::statusBounce($statusMessage, $reportUrl); } - $navId = CRM_Core_DAO::getFieldValue('CRM_Report_DAO_Instance', $instanceId, 'navigation_id', 'id'); - CRM_Report_BAO_Instance::delete($instanceId); + $navId = CRM_Core_DAO::getFieldValue('CRM_Report_DAO_ReportInstance', $instanceId, 'navigation_id', 'id'); + CRM_Report_BAO_ReportInstance::del($instanceId); //delete navigation if exists if ($navId) { @@ -88,7 +88,7 @@ class CRM_Report_Page_Instance extends CRM_Core_Page { if (strstr($templateInfo['name'], '_Form') || !is_null($reportClass)) { $instanceInfo = array(); - CRM_Report_BAO_Instance::retrieve(array('id' => $instanceId), $instanceInfo); + CRM_Report_BAO_ReportInstance::retrieve(array('id' => $instanceId), $instanceInfo); if (!empty($instanceInfo['title'])) { CRM_Utils_System::setTitle($instanceInfo['title']); diff --git a/CRM/Report/Utils/Report.php b/CRM/Report/Utils/Report.php index c7afe94ee1..8a0ea1719f 100644 --- a/CRM/Report/Utils/Report.php +++ b/CRM/Report/Utils/Report.php @@ -37,7 +37,7 @@ class CRM_Report_Utils_Report { static function getValueFromUrl($instanceID = NULL) { if ($instanceID) { - $optionVal = CRM_Core_DAO::getFieldValue('CRM_Report_DAO_Instance', + $optionVal = CRM_Core_DAO::getFieldValue('CRM_Report_DAO_ReportInstance', $instanceID, 'report_id' ); @@ -103,7 +103,7 @@ WHERE TRIM(BOTH '/' FROM CONCAT(report_id, '/', name)) = %1"; if ($instanceID) { $drilldownInstanceID = false; if (array_key_exists($urlValue, $drilldownReport)) - $drilldownInstanceID = CRM_Core_DAO::getFieldValue('CRM_Report_DAO_Instance', $instanceID, 'drilldown_id', 'id'); + $drilldownInstanceID = CRM_Core_DAO::getFieldValue('CRM_Report_DAO_ReportInstance', $instanceID, 'drilldown_id', 'id'); if (!$drilldownInstanceID) $drilldownInstanceID = self::getInstanceIDForValue($urlValue); @@ -150,7 +150,7 @@ WHERE inst.report_id = %1"; $params = array('id' => $instanceID); $instanceInfo = array(); - CRM_Core_DAO::commonRetrieve('CRM_Report_DAO_Instance', + CRM_Core_DAO::commonRetrieve('CRM_Report_DAO_ReportInstance', $params, $instanceInfo ); @@ -280,7 +280,7 @@ WHERE inst.report_id = %1"; $instanceValues = array(); $params = array('id' => $instanceId); - CRM_Core_DAO::commonRetrieve('CRM_Report_DAO_Instance', + CRM_Core_DAO::commonRetrieve('CRM_Report_DAO_ReportInstance', $params, $instanceValues ); @@ -312,7 +312,7 @@ WHERE inst.report_id = %1"; $instanceValues = array(); $params = array('id' => $instanceId); - CRM_Core_DAO::commonRetrieve('CRM_Report_DAO_Instance', + CRM_Core_DAO::commonRetrieve('CRM_Report_DAO_ReportInstance', $params, $instanceValues ); @@ -349,7 +349,7 @@ WHERE inst.report_id = %1"; $is_error = 0; if (strstr(CRM_Utils_Array::value('name', $templateInfo), '_Form')) { $instanceInfo = array(); - CRM_Report_BAO_Instance::retrieve(array('id' => $instanceId), $instanceInfo); + CRM_Report_BAO_ReportInstance::retrieve(array('id' => $instanceId), $instanceInfo); if (!empty($instanceInfo['title'])) { $obj->assign('reportTitle', $instanceInfo['title']); diff --git a/CRM/Upgrade/Incremental/php/FourThree.php b/CRM/Upgrade/Incremental/php/FourThree.php index e6469cff87..3b887d6f41 100644 --- a/CRM/Upgrade/Incremental/php/FourThree.php +++ b/CRM/Upgrade/Incremental/php/FourThree.php @@ -874,7 +874,7 @@ ALTER TABLE civicrm_financial_account $saveDao = new CRM_Contact_DAO_SavedSearch(); } else { - $saveDao = new CRM_Report_DAO_Instance(); + $saveDao = new CRM_Report_DAO_ReportInstance(); } $saveDao->id = $dao->id; diff --git a/CRM/Upgrade/Incremental/php/ThreeFour.php b/CRM/Upgrade/Incremental/php/ThreeFour.php index 750c7b320c..baa604d5a8 100644 --- a/CRM/Upgrade/Incremental/php/ThreeFour.php +++ b/CRM/Upgrade/Incremental/php/ThreeFour.php @@ -83,7 +83,7 @@ class CRM_Upgrade_Incremental_php_ThreeFour { } // save updated instance criteria - $dao = new CRM_Report_DAO_Instance(); + $dao = new CRM_Report_DAO_ReportInstance(); $dao->id = $instances->id; $dao->form_values = serialize($formValues); $dao->save(); @@ -193,7 +193,7 @@ INSERT INTO civicrm_location_type ( name, description, is_reserved, is_active ) } // save updated instance criteria - $dao = new CRM_Report_DAO_Instance(); + $dao = new CRM_Report_DAO_ReportInstance(); $dao->id = $instances->id; $dao->form_values = serialize($formValues); $dao->save(); @@ -273,7 +273,7 @@ INSERT INTO civicrm_location_type ( name, description, is_reserved, is_active ) } // save updated instance criteria - $dao = new CRM_Report_DAO_Instance(); + $dao = new CRM_Report_DAO_ReportInstance(); $dao->id = $instances->id; $dao->form_values = serialize($formValues); $dao->save(); diff --git a/api/v3/ReportInstance.php b/api/v3/ReportInstance.php new file mode 100644 index 0000000000..3809b4c63a --- /dev/null +++ b/api/v3/ReportInstance.php @@ -0,0 +1,60 @@ + CRM/Report - Instance + ReportInstance civicrm_report_instance Users can save their report instance and put in a cron tab etc. 2.2 -- 2.25.1