diff --git a/core/DataTable/Filter/CalculateEvolutionFilter.php b/core/DataTable/Filter/CalculateEvolutionFilter.php index 525257f689ee9d2335b7920bda7b9f2d2c1c4a3c..4e4c93ca926ec389c48572784aaa7efa14d068b3 100755 --- a/core/DataTable/Filter/CalculateEvolutionFilter.php +++ b/core/DataTable/Filter/CalculateEvolutionFilter.php @@ -30,6 +30,9 @@ use Piwik\Plugins\CoreHome\Metrics\EvolutionMetric; */ class CalculateEvolutionFilter extends ColumnCallbackAddColumnPercentage { + /** + * @var EvolutionMetric + */ protected $evolutionMetric; /** diff --git a/plugins/Contents/Reports/GetContentNames.php b/plugins/Contents/Reports/GetContentNames.php index 1a946f3a2116d76b2418a94c34361e32b59d12a3..82672dbcad981d854592a05cafdc0254e647b293 100644 --- a/plugins/Contents/Reports/GetContentNames.php +++ b/plugins/Contents/Reports/GetContentNames.php @@ -11,6 +11,7 @@ namespace Piwik\Plugins\Contents\Reports; use Piwik\Piwik; use Piwik\Plugin\Report; use Piwik\Plugins\Contents\Columns\ContentName; +use Piwik\Plugins\Contents\Metrics\InteractionRate; use Piwik\View; /** @@ -33,6 +34,6 @@ class GetContentNames extends Base $this->widgetTitle = 'Contents_ContentName'; $this->metrics = array('nb_impressions', 'nb_interactions'); - $this->processedMetrics = array('interaction_rate'); + $this->processedMetrics = array(new InteractionRate()); } } diff --git a/plugins/Contents/Reports/GetContentPieces.php b/plugins/Contents/Reports/GetContentPieces.php index 4601430ee19ff646696f76e268a84d464c7f9974..b977b21630ab1f2ef32ff701b72c4ffd9196e3d3 100644 --- a/plugins/Contents/Reports/GetContentPieces.php +++ b/plugins/Contents/Reports/GetContentPieces.php @@ -11,6 +11,7 @@ namespace Piwik\Plugins\Contents\Reports; use Piwik\Piwik; use Piwik\Plugin\Report; use Piwik\Plugins\Contents\Columns\ContentPiece; +use Piwik\Plugins\Contents\Metrics\InteractionRate; use Piwik\View; /** @@ -34,6 +35,6 @@ class GetContentPieces extends Base $this->widgetTitle = 'Contents_ContentPiece'; $this->metrics = array('nb_impressions', 'nb_interactions'); - $this->processedMetrics = array('interaction_rate'); + $this->processedMetrics = array(new InteractionRate()); } } diff --git a/plugins/Contents/tests/System/expected/test_Contents__Actions.getPageUrls_day.xml b/plugins/Contents/tests/System/expected/test_Contents__Actions.getPageUrls_day.xml index fde347f2b53dc66196772a7ea0e6d522367e707d..e284dab998bd432f8f3d48c90714c90e89ee5fdd 100644 --- a/plugins/Contents/tests/System/expected/test_Contents__Actions.getPageUrls_day.xml +++ b/plugins/Contents/tests/System/expected/test_Contents__Actions.getPageUrls_day.xml @@ -6,6 +6,7 @@ <nb_uniq_visitors>2</nb_uniq_visitors> <nb_hits>2</nb_hits> <sum_time_spent>540</sum_time_spent> + <sum_time_generation>0.666</sum_time_generation> <nb_hits_with_time_generation>2</nb_hits_with_time_generation> <min_time_generation>0.333</min_time_generation> <max_time_generation>0.333</max_time_generation> diff --git a/plugins/Contents/tests/System/expected/test_Contents__Actions.getPageUrls_month.xml b/plugins/Contents/tests/System/expected/test_Contents__Actions.getPageUrls_month.xml index 3dc775d40a8885e1c31b84093d990294ea6b06a2..7b8a26116979e87ae582190fc00545edc6fb7102 100644 --- a/plugins/Contents/tests/System/expected/test_Contents__Actions.getPageUrls_month.xml +++ b/plugins/Contents/tests/System/expected/test_Contents__Actions.getPageUrls_month.xml @@ -5,6 +5,7 @@ <nb_visits>2</nb_visits> <nb_hits>2</nb_hits> <sum_time_spent>540</sum_time_spent> + <sum_time_generation>0.666</sum_time_generation> <nb_hits_with_time_generation>2</nb_hits_with_time_generation> <min_time_generation>0.333</min_time_generation> <max_time_generation>0.333</max_time_generation> diff --git a/plugins/CoreHome/Metrics/EvolutionMetric.php b/plugins/CoreHome/Metrics/EvolutionMetric.php index 37ce8b77d414b49946ebec328975c268ef0b55ac..dae23aca1725ac9591c3743298ec5918be76750c 100644 --- a/plugins/CoreHome/Metrics/EvolutionMetric.php +++ b/plugins/CoreHome/Metrics/EvolutionMetric.php @@ -101,7 +101,10 @@ class EvolutionMetric extends ProcessedMetric return $this->wrapped instanceof Metric ? $this->wrapped->getName() : $this->wrapped; } - protected function getPastRowFromCurrent(Row $row) + /** + * public for Insights use. + */ + public function getPastRowFromCurrent(Row $row) { return $this->pastData->getRowFromLabel($row->getColumn('label')); } diff --git a/plugins/ExamplePlugin/tests/System/expected/test___API.get_day.xml b/plugins/ExamplePlugin/tests/System/expected/test___API.get_day.xml index c04d73d2c720bc37907d35d636f9a0915c63b3de..79d37b3acd3f4e2bd8523eaf7f498dcdcf828ebd 100644 --- a/plugins/ExamplePlugin/tests/System/expected/test___API.get_day.xml +++ b/plugins/ExamplePlugin/tests/System/expected/test___API.get_day.xml @@ -5,9 +5,8 @@ <nb_users>0</nb_users> <nb_actions>4</nb_actions> <max_actions>2</max_actions> - <bounce_rate>0%</bounce_rate> - <nb_actions_per_visit>2</nb_actions_per_visit> - <avg_time_on_site>632</avg_time_on_site> + <bounce_count>0</bounce_count> + <sum_visit_length>1264</sum_visit_length> <nb_visits_returning>0</nb_visits_returning> <nb_actions_returning>0</nb_actions_returning> <nb_uniq_visitors_returning>0</nb_uniq_visitors_returning> @@ -30,5 +29,7 @@ <nb_uniq_outlinks>0</nb_uniq_outlinks> <nb_searches>1</nb_searches> <nb_keywords>1</nb_keywords> - <avg_time_generation>0</avg_time_generation> + <bounce_rate>0%</bounce_rate> + <nb_actions_per_visit>2</nb_actions_per_visit> + <avg_time_on_site>632</avg_time_on_site> </result> \ No newline at end of file diff --git a/plugins/Insights/DataTable/Filter/Insight.php b/plugins/Insights/DataTable/Filter/Insight.php index 3c4677a5eefd7a9c0bb3c8b6b54659fedf79465a..6959509a7da64fc4935bae5764c803a98a95399e 100644 --- a/plugins/Insights/DataTable/Filter/Insight.php +++ b/plugins/Insights/DataTable/Filter/Insight.php @@ -16,6 +16,7 @@ class Insight extends DataTable\Filter\CalculateEvolutionFilter private $considerNew; private $considerDisappeared; private $currentDataTable; + private $pastDataTable; public function __construct($table, $currentDataTable, $pastDataTable, $columnToRead, $considerMovers, $considerNew, $considerDisappeared) @@ -26,6 +27,7 @@ class Insight extends DataTable\Filter\CalculateEvolutionFilter $this->considerMovers = $considerMovers; $this->considerNew = $considerNew; $this->considerDisappeared = $considerDisappeared; + $this->pastDataTable = $pastDataTable; } public function filter($table) @@ -62,7 +64,7 @@ class Insight extends DataTable\Filter\CalculateEvolutionFilter private function addRowIfNewOrMover(DataTable $table, DataTable\Row $row) { - $pastRow = $this->getPastRowFromCurrent($row); + $pastRow = $this->evolutionMetric->getPastRowFromCurrent($row); if (!$pastRow && !$this->considerNew) { return; diff --git a/plugins/Insights/tests/Integration/ApiTest.php b/plugins/Insights/tests/Integration/ApiTest.php index dfa76dcde17c245034c2966a971c087cfed09aa9..81ce0b34cf2eda810f9f1c2b8e3e2ca46b6465ca 100644 --- a/plugins/Insights/tests/Integration/ApiTest.php +++ b/plugins/Insights/tests/Integration/ApiTest.php @@ -80,7 +80,8 @@ class ApiTest extends SystemTestCase 'minDisappearedPercent' => 2, 'lastTotalValue' => 59, 'evolutionTotal' => -15.3, - 'evolutionDifference' => -9 + 'evolutionDifference' => -9, + 'processed_metrics_computed' => true ); $this->assertInternalType('array', $metadata['report']); diff --git a/tests/PHPUnit/System/expected/test_CustomEvents_Events.getAction_lastN__API.getProcessedReport_day.xml b/tests/PHPUnit/System/expected/test_CustomEvents_Events.getAction_lastN__API.getProcessedReport_day.xml index 465e8016237f4c4c1c4e67a7eef84d1a994b1c0a..18509953c4395057098aac4dec0f4b24bc05d800 100644 --- a/tests/PHPUnit/System/expected/test_CustomEvents_Events.getAction_lastN__API.getProcessedReport_day.xml +++ b/tests/PHPUnit/System/expected/test_CustomEvents_Events.getAction_lastN__API.getProcessedReport_day.xml @@ -24,7 +24,7 @@ <avg_event_value>The average of all values for this event</avg_event_value> </metricsDocumentation> <processedMetrics> - <avg_event_value>Average value</avg_event_value> + <avg_event_value>The average of all values for this event</avg_event_value> </processedMetrics> <actionToLoadSubTables>getNameFromActionId</actionToLoadSubTables> <imageGraphUrl>index.php?module=API&method=ImageGraph.get&idSite=1&apiModule=Events&apiAction=getAction&period=range&date=2010-01-03,2010-01-09</imageGraphUrl> @@ -38,7 +38,7 @@ <min_event_value>Minimum value</min_event_value> <max_event_value>Maximum value</max_event_value> <nb_events_with_value>Events with a value</nb_events_with_value> - <avg_event_value>Average value</avg_event_value> + <avg_event_value>The average of all values for this event</avg_event_value> </columns> <reportData> <result prettyDate="Sunday 3 January 2010"> diff --git a/tests/PHPUnit/System/expected/test_CustomEvents_Events.getCategory_lastN__API.getProcessedReport_day.xml b/tests/PHPUnit/System/expected/test_CustomEvents_Events.getCategory_lastN__API.getProcessedReport_day.xml index bc8b959e764e25f653bbfca7b5e3c7ad4286ea8c..dbf61d55a03f594d3d94b8db4be3e157c7030c5d 100644 --- a/tests/PHPUnit/System/expected/test_CustomEvents_Events.getCategory_lastN__API.getProcessedReport_day.xml +++ b/tests/PHPUnit/System/expected/test_CustomEvents_Events.getCategory_lastN__API.getProcessedReport_day.xml @@ -24,7 +24,7 @@ <avg_event_value>The average of all values for this event</avg_event_value> </metricsDocumentation> <processedMetrics> - <avg_event_value>Average value</avg_event_value> + <avg_event_value>The average of all values for this event</avg_event_value> </processedMetrics> <actionToLoadSubTables>getActionFromCategoryId</actionToLoadSubTables> <imageGraphUrl>index.php?module=API&method=ImageGraph.get&idSite=1&apiModule=Events&apiAction=getCategory&period=range&date=2010-01-03,2010-01-09</imageGraphUrl> @@ -38,7 +38,7 @@ <min_event_value>Minimum value</min_event_value> <max_event_value>Maximum value</max_event_value> <nb_events_with_value>Events with a value</nb_events_with_value> - <avg_event_value>Average value</avg_event_value> + <avg_event_value>The average of all values for this event</avg_event_value> </columns> <reportData> <result prettyDate="Sunday 3 January 2010"> diff --git a/tests/PHPUnit/System/expected/test_CustomEvents_Events.getName_lastN__API.getProcessedReport_day.xml b/tests/PHPUnit/System/expected/test_CustomEvents_Events.getName_lastN__API.getProcessedReport_day.xml index bc03ebf5bc9db1bbbd6b2205a7293315a8902162..15678442b584d795d21fc179d46927fe05e9bf56 100644 --- a/tests/PHPUnit/System/expected/test_CustomEvents_Events.getName_lastN__API.getProcessedReport_day.xml +++ b/tests/PHPUnit/System/expected/test_CustomEvents_Events.getName_lastN__API.getProcessedReport_day.xml @@ -24,7 +24,7 @@ <avg_event_value>The average of all values for this event</avg_event_value> </metricsDocumentation> <processedMetrics> - <avg_event_value>Average value</avg_event_value> + <avg_event_value>The average of all values for this event</avg_event_value> </processedMetrics> <actionToLoadSubTables>getActionFromNameId</actionToLoadSubTables> <imageGraphUrl>index.php?module=API&method=ImageGraph.get&idSite=1&apiModule=Events&apiAction=getName&period=range&date=2010-01-03,2010-01-09</imageGraphUrl> @@ -38,7 +38,7 @@ <min_event_value>Minimum value</min_event_value> <max_event_value>Maximum value</max_event_value> <nb_events_with_value>Events with a value</nb_events_with_value> - <avg_event_value>Average value</avg_event_value> + <avg_event_value>The average of all values for this event</avg_event_value> </columns> <reportData> <result prettyDate="Sunday 3 January 2010"> diff --git a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_pdf_tables_only__ScheduledReports.generateReport_month.original.pdf b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_pdf_tables_only__ScheduledReports.generateReport_month.original.pdf index 047dd073fdbab7ffe7a11e92b57f18e453a626c0..9c54f6ea2fe7014ca1bfa5f74a259d6e69607316 100644 Binary files a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_pdf_tables_only__ScheduledReports.generateReport_month.original.pdf and b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_pdf_tables_only__ScheduledReports.generateReport_month.original.pdf differ diff --git a/tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.getReportMetadata_day.xml b/tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.getReportMetadata_day.xml index f18c424620f762e7a198d1343af55e9c603a0bc9..456ac0aa7bce573d17c690d97d8fbfde1e8678ef 100644 --- a/tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.getReportMetadata_day.xml +++ b/tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.getReportMetadata_day.xml @@ -670,12 +670,11 @@ <quantity>Quantity</quantity> <orders>Unique Purchases</orders> <nb_visits>Visits</nb_visits> - <conversion_rate>Product Conversion Rate</conversion_rate> </metrics> <processedMetrics> <avg_price>Average Price</avg_price> <avg_quantity>Average Quantity</avg_quantity> - <conversion_rate>Conversion Rate</conversion_rate> + <conversion_rate>Product Conversion Rate</conversion_rate> </processedMetrics> <imageGraphUrl>index.php?module=API&method=ImageGraph.get&idSite=1&apiModule=Goals&apiAction=getItemsSku&period=day&date=2009-01-04</imageGraphUrl> <imageGraphEvolutionUrl>index.php?module=API&method=ImageGraph.get&idSite=1&apiModule=Goals&apiAction=getItemsSku&period=day&date=2008-12-06,2009-01-04</imageGraphEvolutionUrl> @@ -692,12 +691,11 @@ <quantity>Quantity</quantity> <orders>Unique Purchases</orders> <nb_visits>Visits</nb_visits> - <conversion_rate>Product Conversion Rate</conversion_rate> </metrics> <processedMetrics> <avg_price>Average Price</avg_price> <avg_quantity>Average Quantity</avg_quantity> - <conversion_rate>Conversion Rate</conversion_rate> + <conversion_rate>Product Conversion Rate</conversion_rate> </processedMetrics> <imageGraphUrl>index.php?module=API&method=ImageGraph.get&idSite=1&apiModule=Goals&apiAction=getItemsName&period=day&date=2009-01-04</imageGraphUrl> <imageGraphEvolutionUrl>index.php?module=API&method=ImageGraph.get&idSite=1&apiModule=Goals&apiAction=getItemsName&period=day&date=2008-12-06,2009-01-04</imageGraphEvolutionUrl> @@ -714,12 +712,11 @@ <quantity>Quantity</quantity> <orders>Unique Purchases</orders> <nb_visits>Visits</nb_visits> - <conversion_rate>Product Conversion Rate</conversion_rate> </metrics> <processedMetrics> <avg_price>Average Price</avg_price> <avg_quantity>Average Quantity</avg_quantity> - <conversion_rate>Conversion Rate</conversion_rate> + <conversion_rate>Product Conversion Rate</conversion_rate> </processedMetrics> <imageGraphUrl>index.php?module=API&method=ImageGraph.get&idSite=1&apiModule=Goals&apiAction=getItemsCategory&period=day&date=2009-01-04</imageGraphUrl> <imageGraphEvolutionUrl>index.php?module=API&method=ImageGraph.get&idSite=1&apiModule=Goals&apiAction=getItemsCategory&period=day&date=2008-12-06,2009-01-04</imageGraphEvolutionUrl> @@ -1035,7 +1032,7 @@ <avg_event_value>The average of all values for this event</avg_event_value> </metricsDocumentation> <processedMetrics> - <avg_event_value>Average value</avg_event_value> + <avg_event_value>The average of all values for this event</avg_event_value> </processedMetrics> <actionToLoadSubTables>getActionFromCategoryId</actionToLoadSubTables> <imageGraphUrl>index.php?module=API&method=ImageGraph.get&idSite=1&apiModule=Events&apiAction=getCategory&period=day&date=2009-01-04</imageGraphUrl> @@ -1064,7 +1061,7 @@ <avg_event_value>The average of all values for this event</avg_event_value> </metricsDocumentation> <processedMetrics> - <avg_event_value>Average value</avg_event_value> + <avg_event_value>The average of all values for this event</avg_event_value> </processedMetrics> <actionToLoadSubTables>getNameFromActionId</actionToLoadSubTables> <imageGraphUrl>index.php?module=API&method=ImageGraph.get&idSite=1&apiModule=Events&apiAction=getAction&period=day&date=2009-01-04</imageGraphUrl> @@ -1093,7 +1090,7 @@ <avg_event_value>The average of all values for this event</avg_event_value> </metricsDocumentation> <processedMetrics> - <avg_event_value>Average value</avg_event_value> + <avg_event_value>The average of all values for this event</avg_event_value> </processedMetrics> <actionToLoadSubTables>getActionFromNameId</actionToLoadSubTables> <imageGraphUrl>index.php?module=API&method=ImageGraph.get&idSite=1&apiModule=Events&apiAction=getName&period=day&date=2009-01-04</imageGraphUrl> @@ -1188,6 +1185,12 @@ <nb_hits_following_search>The number of times this Page was visited after a visitor did a search on your website, and clicked on this page in the search results.</nb_hits_following_search> <nb_hits>The number of times this page was visited.</nb_hits> </metricsDocumentation> + <processedMetrics> + <avg_time_on_page>Avg. time on page</avg_time_on_page> + <bounce_rate>Bounce Rate</bounce_rate> + <exit_rate>Exit rate</exit_rate> + <avg_time_generation>Avg. generation time</avg_time_generation> + </processedMetrics> <imageGraphUrl>index.php?module=API&method=ImageGraph.get&idSite=1&apiModule=Actions&apiAction=getPageUrlsFollowingSiteSearch&period=day&date=2009-01-04</imageGraphUrl> <imageGraphEvolutionUrl>index.php?module=API&method=ImageGraph.get&idSite=1&apiModule=Actions&apiAction=getPageUrlsFollowingSiteSearch&period=day&date=2008-12-06,2009-01-04</imageGraphEvolutionUrl> <uniqueId>Actions_getPageUrlsFollowingSiteSearch</uniqueId> @@ -1207,6 +1210,12 @@ <nb_hits_following_search>The number of times this Page was visited after a visitor did a search on your website, and clicked on this page in the search results.</nb_hits_following_search> <nb_hits>The number of times this page was visited.</nb_hits> </metricsDocumentation> + <processedMetrics> + <avg_time_on_page>Avg. time on page</avg_time_on_page> + <bounce_rate>Bounce Rate</bounce_rate> + <exit_rate>Exit rate</exit_rate> + <avg_time_generation>Avg. generation time</avg_time_generation> + </processedMetrics> <imageGraphUrl>index.php?module=API&method=ImageGraph.get&idSite=1&apiModule=Actions&apiAction=getPageTitlesFollowingSiteSearch&period=day&date=2009-01-04</imageGraphUrl> <imageGraphEvolutionUrl>index.php?module=API&method=ImageGraph.get&idSite=1&apiModule=Actions&apiAction=getPageTitlesFollowingSiteSearch&period=day&date=2008-12-06,2009-01-04</imageGraphEvolutionUrl> <uniqueId>Actions_getPageTitlesFollowingSiteSearch</uniqueId> diff --git a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_html_tables_only__ScheduledReports.generateReport_week.original.html b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_html_tables_only__ScheduledReports.generateReport_week.original.html index b662a5585e893bb661c5bcf16af5846bc8c25d65..8ea1ea275284e5fe6123c1a0270f16898e213368 100644 --- a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_html_tables_only__ScheduledReports.generateReport_week.original.html +++ b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_html_tables_only__ScheduledReports.generateReport_week.original.html @@ -6540,7 +6540,7 @@ <tr style="background-color: rgb(249,250,250)"> <td style="font-size: 11pt; border-bottom: 1px solid rgb(231,231,231); padding: 5px 0 5px 5px;"> - ColumnBounceRateForReturningVisits </td> + Bounce Rate for Returning Visits </td> <td style="font-size: 11pt; border-bottom: 1px solid rgb(231,231,231); padding: 5px 0 5px 5px;"> 25% </td> @@ -6548,7 +6548,7 @@ <tr style=""> <td style="font-size: 11pt; border-bottom: 1px solid rgb(231,231,231); padding: 5px 0 5px 5px;"> - ColumnAvgActionsPerReturningVisit </td> + Avg. Actions per Returning Visit </td> <td style="font-size: 11pt; border-bottom: 1px solid rgb(231,231,231); padding: 5px 0 5px 5px;"> 3 </td> @@ -6556,7 +6556,7 @@ <tr style="background-color: rgb(249,250,250)"> <td style="font-size: 11pt; border-bottom: 1px solid rgb(231,231,231); padding: 5px 0 5px 5px;"> - ColumnAverageVisitDurationForReturningVisitors </td> + Avg. Duration of a Returning Visit (in sec) </td> <td style="font-size: 11pt; border-bottom: 1px solid rgb(231,231,231); padding: 5px 0 5px 5px;"> 00:25:32 </td>