mirror of
https://github.com/lucaspalomodevelop/indico-plugins.git
synced 2026-03-15 00:14:38 +00:00
Fix segmentation in Piwik API queries
This commit is contained in:
parent
9dc709dc95
commit
502e08d50e
@ -39,21 +39,20 @@ class PiwikQueryReportEventBase(PiwikQueryReportBase):
|
||||
|
||||
def call(self, segmentation_enabled=True, **query_params):
|
||||
if segmentation_enabled:
|
||||
query_params['segmentation'] = self.get_segmentation()
|
||||
query_params['segment'] = self.get_segmentation()
|
||||
return super(PiwikQueryReportEventBase, self).call(module='API', date=[self.start_date, self.end_date],
|
||||
**query_params)
|
||||
|
||||
def get_segmentation(self):
|
||||
segmentation = {'customVariablePageName1': ('==', 'Conference'),
|
||||
'customVariablePageValue1': ('==', self.event_id)}
|
||||
|
||||
if self.contrib_id:
|
||||
segmentation['customVariablePageName2'] = ('==', 'Contribution')
|
||||
segmentation['customVariablePageValue2'] = ('==', self.contrib_id)
|
||||
|
||||
segments = set()
|
||||
for name, (equality, value) in segmentation.iteritems():
|
||||
if isinstance(value, list):
|
||||
value = ','.join(value)
|
||||
segment = '{}{}{}'.format(name, equality, value)
|
||||
segments.add(segment)
|
||||
|
||||
|
||||
@ -20,20 +20,20 @@ class PiwikQueryReportEventMetricBase(PiwikQueryReportEventBase):
|
||||
|
||||
class PiwikQueryReportEventMetricVisitsBase(PiwikQueryReportEventMetricBase):
|
||||
def get_result(self, reduced=True):
|
||||
query_params = {} if reduced else {'segmentation_enabled': False}
|
||||
result = get_json_from_remote_server(self.call, **query_params)
|
||||
result = get_json_from_remote_server(self.call)
|
||||
if reduced:
|
||||
return int(reduce_json(result)) if result else 0
|
||||
return result if result else {}
|
||||
|
||||
|
||||
class PiwikQueryReportEventMetricDownloads(PiwikQueryReportEventMetricBase):
|
||||
def call(self, download_url):
|
||||
def call(self, download_url, **query_params):
|
||||
return super(PiwikQueryReportEventMetricDownloads, self).call(method='Actions.getDownload',
|
||||
downloadUrl=quote(download_url))
|
||||
downloadUrl=quote(download_url),
|
||||
**query_params)
|
||||
|
||||
def get_result(self, download_url):
|
||||
result = get_json_from_remote_server(self.call, download_url=download_url)
|
||||
result = get_json_from_remote_server(self.call, download_url=download_url, segmentation_enabled=False)
|
||||
return {'cumulative': self._get_cumulative_results(result),
|
||||
'individual': self._get_per_day_results(result)}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user