CRM-12877, making report-instance thinner
authorDeepak Srivastava <deepak.srivastava@webaccess.co.in>
Thu, 4 Jul 2013 13:16:30 +0000 (18:46 +0530)
committerDeepak Srivastava <deepak.srivastava@webaccess.co.in>
Thu, 4 Jul 2013 13:16:30 +0000 (18:46 +0530)
----------------------------------------
* CRM-12877:
  http://issues.civicrm.org/jira/browse/CRM-12877

CRM/Report/BAO/ReportInstance.php
CRM/Report/Form/Instance.php

index 6585e2942518444307e944ac5da3372f3bf67ed4..c58477858473a5d1d4dfc18b44e0b4bc4e3e3ae4 100644 (file)
@@ -106,16 +106,6 @@ class CRM_Report_BAO_ReportInstance extends CRM_Report_DAO_ReportInstance {
       // just take it from current url
       $instance->report_id = CRM_Report_Utils_Report::getValueFromUrl();
     }
-
-    // unset params that doesn't match with DB columns, and also not required in form-values for sure
-    $fields = array(
-      'title', 'to_emails', 'cc_emails', 'header', 'footer',
-      'qfKey', '_qf_default', 'report_header', 'report_footer', 'grouprole',
-    );
-    foreach ($fields as $field) {
-      unset($params[$field]);
-    }
-    $instance->form_values = serialize($params);
     $instance->save();
     
     if ($instanceID) {
index 785be24d6399cce3dd62b0b8d6752f3fe67b8672..a768543ce309f6fe95431955d6bc91cd4cee936d 100644 (file)
@@ -255,6 +255,20 @@ class CRM_Report_Form_Instance {
       $params['navigation'] = $form->_navigation;
     }
 
+    // make a copy of params
+    $formValues = $params;
+
+    // unset params from $formValues that doesn't match with DB columns of instance tables, and also not required in form-values for sure
+    $unsetFields = array(
+      'title', 'to_emails', 'cc_emails', 'header', 'footer',
+      'qfKey', 'id', '_qf_default', 'report_header', 'report_footer', 'grouprole',
+    );
+    foreach ($unsetFields as $field) {
+      unset($formValues[$field]);
+    }
+    // pass form_values as string
+    $params['form_values'] = serialize($formValues);
+
     $instance = CRM_Report_BAO_ReportInstance::create($params);
     $form->set('id', $instance->id);