CRM-17837 Report class pager function, test/ api access fix.
authoreileen <emcnaughton@wikimedia.org>
Tue, 19 Jan 2016 21:32:15 +0000 (10:32 +1300)
committereileen <emcnaughton@wikimedia.org>
Tue, 19 Jan 2016 21:32:15 +0000 (10:32 +1300)
This minor patch just checks if the get function is callable before calling it. It allows the api calls to not fatal.
The api calls are primarily used in the unit tests at this stage although the original intent was about more flexible charting by retrieving
the data from an api & passing it to 'any' charting library

Change-Id: I8b3e4e9ade3f75ce8bc6e608cb3c7c6e60d127b9

CRM/Report/Form.php

index 93b813de400cab54b66d50ba25c1ead983f3159c..9426e0f9ba947b6cbb4194b439cd69edb92a7e31 100644 (file)
@@ -3305,8 +3305,12 @@ WHERE cg.extends IN ('" . implode("','", $this->_customGroupExtends) . "') AND
         'status' => ts('Records') . ' %%StatusMessage%%',
         'buttonBottom' => 'PagerBottomButton',
         'buttonTop' => 'PagerTopButton',
-        'pageID' => $this->get(CRM_Utils_Pager::PAGE_ID),
       );
+      if (!empty($this->controller)) {
+        // This happens when being called from the api Really we want the api to be able to
+        // pass paging parameters, but at this stage just preventing test crashes.
+        $params['pageID'] = $this->get(CRM_Utils_Pager::PAGE_ID);
+      }
 
       $pager = new CRM_Utils_Pager($params);
       $this->assign_by_ref('pager', $pager);