Example #1
0
    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)
Example #2
0
    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)
Example #3
0
    def materialDownloaded(cls, obj, resource):
        register = StatisticsRegister()
        listeners = register.getAllPluginDownloadListeners()

        for listener in listeners:
            listener.trackDownload(resource)

        return False
Example #4
0
    def materialDownloaded(cls, obj, resource):
        register = StatisticsRegister()
        listeners = register.getAllPluginDownloadListeners()

        for listener in listeners:
            listener.trackDownload(resource)

        return False
Example #5
0
 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()
Example #6
0
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)
Example #7
0
 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()
Example #8
0
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()
Example #9
0
    def fillManagementSideMenu(cls, obj, params={}):
        if obj._conf.canModify(obj._rh._aw):

            if StatisticsRegister().hasActivePlugins():
                params['Statistics'] = wcomponents.SideMenuItem(
                    _('Statistics'), UHConfModifStatistics.getURL(obj._conf))
Example #10
0
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)
Example #11
0
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)