From dc5d258fbecb07c0536e9f118e1efac6c0b072fa Mon Sep 17 00:00:00 2001 From: diosmosis <benaka@piwik.pro> Date: Mon, 10 Nov 2014 18:49:36 -0800 Subject: [PATCH] Fixing UI regression and adding avg_order_value to abandoned carts report. --- core/API/DataTablePostProcessor.php | 6 ------ plugins/Actions/API.php | 6 +++--- plugins/Goals/API.php | 13 ++++++++----- plugins/VisitsSummary/API.php | 5 +++-- ...OneVisitorTwoVisits_csv__API.get_month.csv | Bin 1682 -> 1754 bytes 5 files changed, 14 insertions(+), 16 deletions(-) diff --git a/core/API/DataTablePostProcessor.php b/core/API/DataTablePostProcessor.php index ddff42fd05..3e6deae6b3 100644 --- a/core/API/DataTablePostProcessor.php +++ b/core/API/DataTablePostProcessor.php @@ -195,12 +195,6 @@ class DataTablePostProcessor // after queued filters are run so processed metrics can be removed, too) $hideColumns = Common::getRequestVar('hideColumns', '', 'string', $this->request); $showColumns = Common::getRequestVar('showColumns', '', 'string', $this->request); - if (empty($showColumns)) { - // if 'columns' is used, we remove all temporary metrics by showing only the columns specified in - // 'columns' - $showColumns = Common::getRequestVar('columns', '', 'string', $this->request); - } - if (!empty($hideColumns) || !empty($showColumns) ) { diff --git a/plugins/Actions/API.php b/plugins/Actions/API.php index 7fcde2f144..4b730c0c07 100644 --- a/plugins/Actions/API.php +++ b/plugins/Actions/API.php @@ -57,15 +57,15 @@ class API extends \Piwik\Plugin\API Piwik::checkUserHasViewAccess($idSite); $archive = Archive::build($idSite, $period, $date, $segment); - $columns = Piwik::getArrayFromApiParameter($columns); - $columns = Report::factory("Actions", "get")->getMetricsRequiredForReport($allColumns = null, $columns); + $requestedColumns = Piwik::getArrayFromApiParameter($columns); + $columns = Report::factory("Actions", "get")->getMetricsRequiredForReport($allColumns = null, $requestedColumns); $inDbColumnNames = array_map(function ($value) { return 'Actions_' . $value; }, $columns); $dataTable = $archive->getDataTableFromNumeric($inDbColumnNames); + $dataTable->deleteColumns(array_diff($requestedColumns, $columns)); $newNameMapping = array_combine($inDbColumnNames, $columns); $dataTable->filter('ReplaceColumnNames', array($newNameMapping)); - return $dataTable; } diff --git a/plugins/Goals/API.php b/plugins/Goals/API.php index b807a024ce..22bfcb5788 100644 --- a/plugins/Goals/API.php +++ b/plugins/Goals/API.php @@ -333,8 +333,8 @@ class API extends \Piwik\Plugin\API $allMetrics = Goals::getGoalColumns($idGoal); - $columns = Piwik::getArrayFromApiParameter($columns); - $columnsToGet = Report::factory("Goals", "get")->getMetricsRequiredForReport($allMetrics, $columns); + $requestedColumns = Piwik::getArrayFromApiParameter($columns); + $columnsToGet = Report::factory("Goals", "get")->getMetricsRequiredForReport($allMetrics, $requestedColumns); $inDbMetricNames = array_map(function ($value) use ($idGoal) { return Archiver::getRecordName($value, $idGoal); }, $columnsToGet); $dataTable = $archive->getDataTableFromNumeric($inDbMetricNames); @@ -342,12 +342,15 @@ class API extends \Piwik\Plugin\API $newNameMapping = array_combine($inDbMetricNames, $columnsToGet); $dataTable->filter('ReplaceColumnNames', array($newNameMapping)); + $dataTable->deleteColumns(array_diff($requestedColumns, $columnsToGet)); + // TODO: this should be in Goals/Get.php but it depends on idGoal parameter which isn't always in _GET (ie, // it's not in ProcessedReport.php). more refactoring must be done to report class before this can be // corrected. - if ((in_array('avg_order_revenue', $columns) - || empty($columns)) - && $idGoal === GoalManager::IDGOAL_ORDER + if ((in_array('avg_order_revenue', $requestedColumns) + || empty($requestedColumns)) + && ($idGoal === GoalManager::IDGOAL_ORDER + || $idGoal === GoalManager::IDGOAL_CART) ) { $dataTable->filter(function (DataTable $table) { $extraProcessedMetrics = $table->getMetadata(DataTable::EXTRA_PROCESSED_METRICS_METADATA_NAME); diff --git a/plugins/VisitsSummary/API.php b/plugins/VisitsSummary/API.php index 81fd49f8df..0530fd7ae3 100644 --- a/plugins/VisitsSummary/API.php +++ b/plugins/VisitsSummary/API.php @@ -28,12 +28,13 @@ class API extends \Piwik\Plugin\API Piwik::checkUserHasViewAccess($idSite); $archive = Archive::build($idSite, $period, $date, $segment); - $columns = Piwik::getArrayFromApiParameter($columns); + $requestedColumns = Piwik::getArrayFromApiParameter($columns); $report = Report::factory("VisitsSummary", "get"); - $columns = $report->getMetricsRequiredForReport($this->getCoreColumns($period), $columns); + $columns = $report->getMetricsRequiredForReport($this->getCoreColumns($period), $requestedColumns); $dataTable = $archive->getDataTableFromNumeric($columns); + $dataTable->deleteColumns(array_diff($requestedColumns, $columns)); return $dataTable; } diff --git a/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits_csv__API.get_month.csv b/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits_csv__API.get_month.csv index 95ce6d8b142f94396d959d9568f9892c09e2d7a3..9ca1f08519c5d1c20ebcdf7ad4a884963a4c37a1 100644 GIT binary patch delta 40 wcmbQldy99&1}1)IhJ1!nhCGH61_g#RhWyEl%*vA=FtKc2#8k&TS%$3)0O+6#EC2ui delta 16 Ycmcb`JBfG02Bytlm<pIDXRs9k06V4zcmMzZ -- GitLab