def eventDetailFooter(cls, obj, vars): """ Add the footer extension for the statistics tracking. """ stats = PluginsHolder().getPluginType('statistics') register = StatisticsRegister() if not stats.isActive() or not register.hasActivePlugins(): return False key = 'extraFooterContent' extension = {} tracking = {} tracking['trackingActive'] = True tracking['trackingHooks'] = register.getAllPluginJSHooks(obj) # Build the extension object to be passed to the footer. extension['path'] = register.getJSInjectionPath() extension['args'] = tracking if key not in vars: vars[key] = [extension] else: vars[key].append(extension)
def materialDownloaded(cls, obj, resource): register = StatisticsRegister() listeners = register.getAllPluginDownloadListeners() for listener in listeners: listener.trackDownload(resource) return False
def __init__(self, rh, templateClass, activeTab, params): WPConferenceModifBase.__init__(self, rh, rh._conf) self._rh = rh self._conf = self._rh._conf self._register = StatisticsRegister() self._plugins = self._register.getAllPlugins(activeOnly=True) self._templateClass = templateClass self._extraJS = [] self._activeTabName = activeTab self._params = params self._tabs = [] self._tabCtrl = wcomponents.TabControl()
class WPStatisticsView(WPConferenceModifBase): def __init__(self, rh, templateClass, activeTab, params): WPConferenceModifBase.__init__(self, rh, rh._conf) self._rh = rh self._conf = self._rh._conf self._register = StatisticsRegister() self._plugins = self._register.getAllPlugins(activeOnly=True) self._templateClass = templateClass self._extraJS = [] self._activeTabName = activeTab self._params = params self._tabs = [] self._tabCtrl = wcomponents.TabControl() def _createTabCtrl(self): for plugin in self._plugins: self._tabs.append(self._tabCtrl.newTab(plugin.getName(), plugin.getName(), UHConfModifStatistics.getURL(self._conf, tab=plugin.getName()))) def _getTitle(self): return WPConferenceModifBase._getTitle(self) + " - " + _("Statistics") def _getPageContent(self, params): self._createTabCtrl() plugin = self._register.getPluginByName(self._activeTabName) if not plugin: raise Exception(_('There is no tab called %s available.') % \ self._activeTabName) return wcomponents.WTabControl(self._tabCtrl, self._getAW()).getHTML( self._templateClass.forModule(plugin.getImplementationPackage(), self._register, self._activeTabName, self._params).getHTML(params)) def getCSSFiles(self): return WPConferenceModifBase.getCSSFiles(self) + \ ['statistics/css/main.css'] def getJSFiles(self): return WPConferenceModifBase.getJSFiles(self) + \ ['statistics/js/statistics.js'] def _setActiveSideMenuItem(self): if 'Statistics' in self._pluginsDictMenuItem: self._pluginsDictMenuItem['Statistics'].setActive(True)
class RHStatisticsView(RHConferenceModifBase): _register = StatisticsRegister() def _checkProtection(self): if not PluginsHolder().hasPluginType("statistics"): raise PluginError(_("Statistics plugin is not active.")) self._checkSessionUser() RHConferenceModifBase._checkProtection(self) def _checkParams(self, params): RHConferenceModifBase._checkParams(self, params) self._activeTab = params.pop("tab", 'Piwik') self._params = params def _process(self): return WPStatisticsView(self, WStatisticsView, self._activeTab, self._params).display()
def fillManagementSideMenu(cls, obj, params={}): if obj._conf.canModify(obj._rh._aw): if StatisticsRegister().hasActivePlugins(): params['Statistics'] = wcomponents.SideMenuItem( _('Statistics'), UHConfModifStatistics.getURL(obj._conf))
class WPStatisticsView(WPConferenceModifBase): def __init__(self, rh, templateClass, activeTab, params): WPConferenceModifBase.__init__(self, rh, rh._conf) self._rh = rh self._conf = self._rh._conf self._register = StatisticsRegister() self._plugins = self._register.getAllPlugins(activeOnly=True) self._templateClass = templateClass self._extraJS = [] self._activeTabName = activeTab self._params = params self._tabs = [] self._tabCtrl = wcomponents.TabControl() def _addjqPlotPlugins(self, plugins, extraJS): """ Util function to include jqPlot plugins easier. """ if not isinstance(plugins, list): plugins = list(plugins) prefix = '/statistics/js/lib/jqPlot/plugins/jqplot.' suffix = '.min.js' for plugin in plugins: extraJS.append(prefix + plugin + suffix) def _createTabCtrl(self): for plugin in self._plugins: self._tabs.append( self._tabCtrl.newTab( plugin.getName(), plugin.getName(), UHConfModifStatistics.getURL(self._conf, tab=plugin.getName()))) def _getTitle(self): return WPConferenceModifBase._getTitle(self) + " - " + _("Statistics") def _getPageContent(self, params): self._createTabCtrl() plugin = self._register.getPluginByName(self._activeTabName) if not plugin: raise Exception(_('There is no tab called %s available.') % \ self._activeTabName) return wcomponents.WTabControl(self._tabCtrl, self._getAW()).getHTML( self._templateClass.forModule(plugin.getImplementationPackage(), self._register, self._activeTabName, self._params).getHTML(params)) def getCSSFiles(self): extraCSS = [ '/statistics/css/main.css', '/statistics/js/lib/jqTree/jqtree.css', '/statistics/js/lib/jqPlot/jquery.jqplot.css' ] return WPConferenceModifBase.getCSSFiles(self) + extraCSS def getJSFiles(self): extraJS = [ '/statistics/js/statistics.js', '/statistics/js/lib/jqPlot/excanvas.min.js', '/statistics/js/lib/jqTree/tree.jquery.js', '/statistics/js/lib/jqPlot/jquery.jqplot.min.js' ] jqPlotPlugins = ['dateAxisRenderer', 'highlighter', 'cursor'] self._addjqPlotPlugins(jqPlotPlugins, extraJS) return WPConferenceModifBase.getJSFiles(self) + extraJS def _setActiveSideMenuItem(self): if 'Statistics' in self._pluginsDictMenuItem: self._pluginsDictMenuItem['Statistics'].setActive(True)
class WPStatisticsView(WPConferenceModifBase): def __init__(self, rh, templateClass, activeTab, params): WPConferenceModifBase.__init__(self, rh, rh._conf) self._rh = rh self._conf = self._rh._conf self._register = StatisticsRegister() self._plugins = self._register.getAllPlugins(activeOnly=True) self._templateClass = templateClass self._extraJS = [] self._activeTabName = activeTab self._params = params self._tabs = [] self._tabCtrl = wcomponents.TabControl() def _addjqPlotPlugins(self, plugins, extraJS): """ Util function to include jqPlot plugins easier. """ if not isinstance(plugins, list): plugins = list(plugins) prefix = '/statistics/js/lib/jqPlot/plugins/jqplot.' suffix = '.min.js' for plugin in plugins: extraJS.append(prefix + plugin + suffix) def _createTabCtrl(self): for plugin in self._plugins: self._tabs.append(self._tabCtrl.newTab(plugin.getName(), plugin.getName(), UHConfModifStatistics.getURL(self._conf, tab=plugin.getName()))) def _getTitle(self): return WPConferenceModifBase._getTitle(self) + " - " + _("Statistics") def _getPageContent(self, params): self._createTabCtrl() plugin = self._register.getPluginByName(self._activeTabName) if not plugin: raise Exception(_('There is no tab called %s available.') % \ self._activeTabName) return wcomponents.WTabControl(self._tabCtrl, self._getAW()).getHTML( self._templateClass.forModule(plugin.getImplementationPackage(), self._register, self._activeTabName, self._params).getHTML(params)) def getCSSFiles(self): extraCSS = ['/statistics/css/main.css', '/statistics/js/lib/jqTree/jqtree.css', '/statistics/js/lib/jqPlot/jquery.jqplot.css'] return WPConferenceModifBase.getCSSFiles(self) + extraCSS def getJSFiles(self): extraJS = ['/statistics/js/statistics.js', '/statistics/js/lib/jqPlot/excanvas.min.js', '/statistics/js/lib/jqTree/tree.jquery.js', '/statistics/js/lib/jqPlot/jquery.jqplot.min.js'] jqPlotPlugins = ['dateAxisRenderer', 'highlighter', 'cursor'] self._addjqPlotPlugins(jqPlotPlugins, extraJS) return WPConferenceModifBase.getJSFiles(self) + extraJS def _setActiveSideMenuItem(self): if 'Statistics' in self._pluginsDictMenuItem: self._pluginsDictMenuItem['Statistics'].setActive(True)