From bcb8737c24a0c94f85f775a805efa337bebccf4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alejandro=20Avil=C3=A9s?= Date: Tue, 30 Sep 2014 17:49:19 +0200 Subject: [PATCH] Fleshing out * Improve docstring * Add settings form * Register blueprint * Register management side menu item --- piwik/indico_statistics/__init__.py | 29 +++++++++++++++++++++++--- piwik/indico_statistics/controllers.py | 7 +++++++ piwik/indico_statistics/forms.py | 8 +++++++ 3 files changed, 41 insertions(+), 3 deletions(-) create mode 100644 piwik/indico_statistics/controllers.py create mode 100644 piwik/indico_statistics/forms.py diff --git a/piwik/indico_statistics/__init__.py b/piwik/indico_statistics/__init__.py index 2d159e8..9aae859 100644 --- a/piwik/indico_statistics/__init__.py +++ b/piwik/indico_statistics/__init__.py @@ -1,8 +1,31 @@ -from indico.core.plugins import IndicoPlugin +from indico.core import signals +from indico.core.plugins import IndicoPlugin, IndicoPluginBlueprint, url_for_plugin +from MaKaC.i18n import _ +from MaKaC.webinterface.wcomponents import SideMenuItem + +from controllers import RHStatisticsView +from forms import SettingsForm class StatisticsPlugin(IndicoPlugin): - """Statistic plugin + """Statistics plugin - A plugin to export statistic of Indico. + This statistics plugin provides statistics of conferences, meetings and + contributions. Notice it's not designed to provide general analytics. """ + + settings_form = SettingsForm + + def init(self): + super(StatisticsPlugin, self).init() + self.connect(signals.event_management_sidemenu, self.add_sidemenu_item) + + def add_sidemenu_item(self, event): + return (SideMenuItem(_("Statistics (new)"), url_for_plugin('statistics.view', event)),) + + def get_blueprints(self): + return blueprint + + +blueprint = IndicoPluginBlueprint('statistics', __name__) +blueprint.add_url_rule('/event//manage/statistics_new', 'view', RHStatisticsView) diff --git a/piwik/indico_statistics/controllers.py b/piwik/indico_statistics/controllers.py new file mode 100644 index 0000000..b33ae08 --- /dev/null +++ b/piwik/indico_statistics/controllers.py @@ -0,0 +1,7 @@ +from MaKaC.webinterface.rh.conferenceModif import RHConferenceModifBase + + +class RHStatisticsView(RHConferenceModifBase): + + def _process(self): + return 'statistics' diff --git a/piwik/indico_statistics/forms.py b/piwik/indico_statistics/forms.py new file mode 100644 index 0000000..aa8814e --- /dev/null +++ b/piwik/indico_statistics/forms.py @@ -0,0 +1,8 @@ +from wtforms import BooleanField, IntegerField + +from indico.web.forms.base import IndicoForm + + +class SettingsForm(IndicoForm): + cache_enabled = BooleanField('Enable report caching', default=True) + cache_ttl = IntegerField('Report caching TTL (seconds)', default=3600)