mirror of
https://github.com/lucaspalomodevelop/indico-plugins.git
synced 2026-03-15 00:14:38 +00:00
Post-WIP fixes
This commit is contained in:
parent
42bf8cbc71
commit
bc4ba3fa2b
@ -22,7 +22,7 @@ class PiwikQueryReportBase(PiwikQueryBase):
|
||||
super(PiwikQueryReportBase, self).__init__(query_script=PiwikPlugin.report_script)
|
||||
|
||||
def call(self, date=('last7',), period='day', **query_params):
|
||||
date = date[0] if len(date) == 1 else ','.join(date)
|
||||
date = ','.join(date)
|
||||
query_params.update(self.get_type_params)
|
||||
return super(PiwikQueryReportBase, self).call(date=date, period=period, **query_params)
|
||||
|
||||
|
||||
@ -1,5 +1,7 @@
|
||||
from __future__ import division
|
||||
|
||||
from operator import attrgetter, itemgetter
|
||||
|
||||
from . import PiwikQueryReportEventBase
|
||||
from .utils import get_json_from_remote_server, reduce_json, stringify_seconds
|
||||
|
||||
@ -11,12 +13,12 @@ class PiwikQueryReportEventMetricBase(PiwikQueryReportEventBase):
|
||||
return super(PiwikQueryReportEventMetricBase, self).call(method=method, apiModule=apiModule,
|
||||
format='JSON', **query_params)
|
||||
|
||||
def get_result(self, returnJSON=False):
|
||||
def get_result(self, return_json=False):
|
||||
"""Perform the call and return the sum of all unique values"""
|
||||
result = get_json_from_remote_server(self.call)
|
||||
if not result:
|
||||
return 0
|
||||
return result if returnJSON else int(reduce_json(result))
|
||||
return result if return_json else int(reduce_json(result))
|
||||
|
||||
|
||||
class PiwikQueryReportEventMetricReferrers(PiwikQueryReportEventMetricBase):
|
||||
@ -30,7 +32,7 @@ class PiwikQueryReportEventMetricReferrers(PiwikQueryReportEventMetricBase):
|
||||
referrers = list(result)
|
||||
for referrer in referrers:
|
||||
referrer['sum_visit_length'] = stringify_seconds(referrer['sum_visit_length'])
|
||||
return sorted(referrers, key=lambda r: r['nb_visits'], reverse=True)[0:10]
|
||||
return sorted(referrers, key=attrgetter('nb_visits'), reverse=True)[0:10]
|
||||
|
||||
|
||||
class PiwikQueryReportEventMetricUniqueVisits(PiwikQueryReportEventMetricBase):
|
||||
@ -54,15 +56,13 @@ class PiwikQueryReportEventMetricVisitDuration(PiwikQueryReportEventMetricBase):
|
||||
return stringify_seconds(seconds)
|
||||
|
||||
def _get_average_duration(self, result):
|
||||
data = result.values()
|
||||
if len(data) == 0:
|
||||
return 0
|
||||
|
||||
seconds = 0
|
||||
data = result.values()
|
||||
if not data:
|
||||
return seconds
|
||||
for day in data:
|
||||
if isinstance(day, dict):
|
||||
seconds += day.get('avg_time_on_site', 0)
|
||||
|
||||
return seconds / len(data)
|
||||
|
||||
|
||||
@ -73,8 +73,8 @@ class PiwikQueryReportEventMetricPeakDateAndVisitors(PiwikQueryReportEventMetric
|
||||
def get_result(self):
|
||||
"""Perform the call and return the peak date and how many users"""
|
||||
result = get_json_from_remote_server(self.call)
|
||||
if len(result) > 0:
|
||||
date, value = max(result.iteritems(), key=lambda e: e[1])
|
||||
if result:
|
||||
date, value = max(result.iteritems(), key=itemgetter(1))
|
||||
return {'date': date, 'users': value}
|
||||
else:
|
||||
return {'date': "No Data", 'users': 0}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user