From 06b67c43bb065cc38c38bb49aec12d5f7edb2a1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alejandro=20Avil=C3=A9s?= Date: Thu, 9 Oct 2014 14:17:37 +0200 Subject: [PATCH] Fix server_url in injected templates --- piwik/indico_piwik/__init__.py | 20 +++++++++++++------ piwik/indico_piwik/piwik.py | 2 +- .../indico_piwik/templates/site_tracking.html | 3 ++- 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/piwik/indico_piwik/__init__.py b/piwik/indico_piwik/__init__.py index 9f1901f..0666f1b 100644 --- a/piwik/indico_piwik/__init__.py +++ b/piwik/indico_piwik/__init__.py @@ -1,3 +1,5 @@ +from urllib2 import urlparse + from flask import request from flask_pluginengine import render_plugin_template @@ -10,7 +12,6 @@ from MaKaC.webinterface.wcomponents import SideMenuItem from .controllers import RHStatistics from .forms import SettingsForm -from .piwik import PiwikRequest from .queries.tracking import PiwikQueryTrackDownload @@ -38,6 +39,10 @@ class PiwikPlugin(IndicoPlugin): 'site_id_events': 2 } + @staticmethod + def get_logger(self): + return Logger.get('plugin.piwik') + def init(self): super(PiwikPlugin, self).init() self.connect(signals.event_management_sidemenu, self.add_sidemenu_item) @@ -46,7 +51,7 @@ class PiwikPlugin(IndicoPlugin): self.template_hook('page-footer', self.inject_page_footer) def inject_page_header(self, template, **kwargs): - server_url = self.settings.get('server_url') + server_url = self._get_tracking_url() site_id_general = self.settings.get('site_id_general') if not self.settings.get('enabled') or not server_url or not site_id_general: return '' @@ -58,7 +63,7 @@ class PiwikPlugin(IndicoPlugin): site_id_events = PiwikPlugin.settings.get('site_id_events') if not self.settings.get('enabled_for_events') or not site_id_events: return '' - params = {'url': PiwikRequest._get_query_url(), + params = {'url': self._get_tracking_url(), 'site_id': site_id_events} if request.blueprint == 'event': params['event_id'] = request.view_args['confId'] @@ -75,9 +80,6 @@ class PiwikPlugin(IndicoPlugin): def get_blueprints(self): return blueprint - def get_logger(self): - return Logger.get('plugin.piwik') - def register_assets(self): self.register_js_bundle('statistics_js', 'js/statistics.js') self.register_css_bundle('statistics_css', 'css/statistics.css') @@ -91,6 +93,12 @@ class PiwikPlugin(IndicoPlugin): resource_title = 'Download - {}'.format(resource_title) tracker.call(resource_url, resource_title) + def _get_tracking_url(self): + url = self.settings.get('server_url') + url = url if url.endswith('/') else url + '/' + url = urlparse.urlparse(url) + return url.netloc + url.path + blueprint = IndicoPluginBlueprint('piwik', __name__) blueprint.add_url_rule('/event//manage/statistics_new', 'view', RHStatistics) diff --git a/piwik/indico_piwik/piwik.py b/piwik/indico_piwik/piwik.py index eaf3aee..80a9f2d 100644 --- a/piwik/indico_piwik/piwik.py +++ b/piwik/indico_piwik/piwik.py @@ -22,7 +22,7 @@ class PiwikRequest(object): @property def api_url(self): - url = urlparse(self.server_url) + url = urlparse.urlparse(self.server_url) return url.netloc + url.path + self.query_script def call(self, default_response=None, **query_params): diff --git a/piwik/indico_piwik/templates/site_tracking.html b/piwik/indico_piwik/templates/site_tracking.html index 85e6b1a..00f82f4 100644 --- a/piwik/indico_piwik/templates/site_tracking.html +++ b/piwik/indico_piwik/templates/site_tracking.html @@ -1,7 +1,8 @@