diff options
6 files changed, 70 insertions, 5 deletions
diff --git a/core/ArchiveProcessing/Period.php b/core/ArchiveProcessing/Period.php index e1d4d96c23..53d78b5782 100644 --- a/core/ArchiveProcessing/Period.php +++ b/core/ArchiveProcessing/Period.php @@ -117,8 +117,13 @@ class Piwik_ArchiveProcessing_Period extends Piwik_ArchiveProcessing $records = array(); foreach($results as $name => $value) { - if($name == 'nb_uniq_visitors' && ($this->periodId == Piwik::$idPeriods['week'] || $this->periodId == Piwik::$idPeriods['month'])) + if($name == 'nb_uniq_visitors') { + // we do not process Unique Visitors for year + if($this->periodId == Piwik::$idPeriods['year']) + { + continue; + } $value = (float) $this->computeNbUniqVisitors(); } $records[$name] = new Piwik_ArchiveProcessing_Record_Numeric( diff --git a/plugins/API/API.php b/plugins/API/API.php index 07e73ec471..46556e21e9 100644 --- a/plugins/API/API.php +++ b/plugins/API/API.php @@ -300,12 +300,13 @@ class Piwik_API_API $reportMetadata['metrics'] ); - if($period != 'day') + // See ArchiveProcessing/Period.php - unique visitors are not processed for year period + if($period == 'year') { unset($columns['nb_uniq_visitors']); unset($reportMetadata['metrics']['nb_uniq_visitors']); } - + if(isset($reportMetadata['processedMetrics'])) { $processedMetricsAdded = Piwik_API_API::getInstance()->getDefaultProcessedMetrics(); diff --git a/plugins/VisitsSummary/templates/sparklines.tpl b/plugins/VisitsSummary/templates/sparklines.tpl index 9ca3776784..bb85534385 100644 --- a/plugins/VisitsSummary/templates/sparklines.tpl +++ b/plugins/VisitsSummary/templates/sparklines.tpl @@ -1,6 +1,8 @@ <div id='leftcolumn'> <div class="sparkline">{sparkline src=$urlSparklineNbVisits} {'VisitsSummary_NbVisits'|translate:"<strong>$nbVisits</strong>"}</div> +{if $period != 'year'} <div class="sparkline">{sparkline src=$urlSparklineNbUniqVisitors} {'VisitsSummary_NbUniqueVisitors'|translate:"<strong>$nbUniqVisitors</strong>"}</div> +{/if} <div class="sparkline">{sparkline src=$urlSparklineNbActions} {'VisitsSummary_NbActionsDescription'|translate:"<strong>$nbActions</strong>"}</div> <div class="sparkline">{sparkline src=$urlSparklineActionsPerVisit} {'VisitsSummary_NbActionsPerVisit'|translate:"<strong>$nbActionsPerVisit</strong>"}</div> </div> diff --git a/tests/integration/Main.test.php b/tests/integration/Main.test.php index 3963f9e55a..8abee9c2a2 100644 --- a/tests/integration/Main.test.php +++ b/tests/integration/Main.test.php @@ -55,6 +55,15 @@ class Test_Piwik_Integration_Main extends Test_Integration $this->callGetApiCompareOutput(__FUNCTION__, 'xml', $idSite, $dateTime); } + function test_apiGetReportMetadata_year() + { + $this->setApiNotToCall(array()); + $this->setApiToCall( 'API.getProcessedReport' ); + $dateTime = '2009-01-04 00:11:42'; + $idSite = $this->createWebsite($dateTime); + $this->callGetApiCompareOutput(__FUNCTION__, 'xml', $idSite, $dateTime, 'year'); + } + /* * Testing various wrong Tracker requests and check that they behave as expected: * not throwing errors and not recording data. diff --git a/tests/integration/expected/test_TwoVisitors_twoWebsites_differentDays__VisitsSummary.get_year.xml b/tests/integration/expected/test_TwoVisitors_twoWebsites_differentDays__VisitsSummary.get_year.xml index 8e8f7a42d4..95bbc5ab74 100644 --- a/tests/integration/expected/test_TwoVisitors_twoWebsites_differentDays__VisitsSummary.get_year.xml +++ b/tests/integration/expected/test_TwoVisitors_twoWebsites_differentDays__VisitsSummary.get_year.xml @@ -5,7 +5,6 @@ <bounce_count>2</bounce_count> <max_actions>2</max_actions> <nb_actions>4</nb_actions> - <nb_uniq_visitors>3</nb_uniq_visitors> <nb_visits>3</nb_visits> <sum_visit_length>360</sum_visit_length> <bounce_rate>67%</bounce_rate> @@ -24,7 +23,6 @@ <bounce_count>1</bounce_count> <max_actions>1</max_actions> <nb_actions>1</nb_actions> - <nb_uniq_visitors>1</nb_uniq_visitors> <nb_visits>1</nb_visits> <bounce_rate>100%</bounce_rate> <nb_actions_per_visit>1</nb_actions_per_visit> diff --git a/tests/integration/expected/test_apiGetReportMetadata_year__API.getProcessedReport_year.xml b/tests/integration/expected/test_apiGetReportMetadata_year__API.getProcessedReport_year.xml new file mode 100644 index 0000000000..9c57b325a6 --- /dev/null +++ b/tests/integration/expected/test_apiGetReportMetadata_year__API.getProcessedReport_year.xml @@ -0,0 +1,50 @@ +<?xml version="1.0" encoding="utf-8" ?> +<result> + <website>Piwik test</website> + <prettyDate>2009</prettyDate> + <metadata> + <category>Visitors</category> + <name>Country</name> + <module>UserCountry</module> + <action>getCountry</action> + <dimension>Country</dimension> + <metrics> + <nb_visits>Visits</nb_visits> + <nb_actions>Actions</nb_actions> + + </metrics> + <processedMetrics> + <nb_actions_per_visit>Actions per Visit</nb_actions_per_visit> + <avg_time_on_site>Avg. Time on Website</avg_time_on_site> + <bounce_rate>Bounce Rate</bounce_rate> + <conversion_rate>Conversion Rate</conversion_rate> + + </processedMetrics> + <metricsGoal> + <nb_conversions>Conversions</nb_conversions> + <conversion_rate>Conversion Rate</conversion_rate> + <revenue>Revenue</revenue> + + </metricsGoal> + <processedMetricsGoal> + <revenue_per_visit>Value per Visit</revenue_per_visit> + + </processedMetricsGoal> + <uniqueId>UserCountry_getCountry</uniqueId> + + </metadata> + <columns> + <label>Country</label> + <nb_visits>Visits</nb_visits> + <nb_actions>Actions</nb_actions> + <nb_actions_per_visit>Actions per Visit</nb_actions_per_visit> + <avg_time_on_site>Avg. Time on Website</avg_time_on_site> + <bounce_rate>Bounce Rate</bounce_rate> + <conversion_rate>Conversion Rate</conversion_rate> + <revenue>Revenue</revenue> + + </columns> + <reportData/> + <reportMetadata/> + +</result>
\ No newline at end of file |