diff --git a/piwik/indico_piwik/zodbimport.py b/piwik/indico_piwik/zodbimport.py
new file mode 100644
index 0000000..fc765de
--- /dev/null
+++ b/piwik/indico_piwik/zodbimport.py
@@ -0,0 +1,50 @@
+# This file is part of Indico.
+# Copyright (C) 2002 - 2014 European Organization for Nuclear Research (CERN).
+#
+# Indico is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 3 of the
+# License, or (at your option) any later version.
+#
+# Indico is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Indico; if not, see .
+
+from __future__ import unicode_literals
+
+from indico.core.db import db
+from indico.util.console import cformat
+from indico_zodbimport import Importer, convert_to_unicode
+
+from indico_piwik import PiwikPlugin
+
+
+class PiwikImporter(Importer):
+ plugins = {'piwik'}
+
+ def migrate(self):
+ self.migrate_settings()
+
+ def migrate_settings(self):
+ print cformat('%{white!}migrating settings')
+ PiwikPlugin.settings.delete_all()
+ type_opts = self.zodb_root['plugins']['statistics']._PluginBase__options
+ settings_map = {'cacheEnabled': 'cache_enabled',
+ 'cacheTTL': 'cache_ttl'}
+ for old, new in settings_map.iteritems():
+ PiwikPlugin.settings.set(new, type_opts[old].getValue())
+ opts = self.zodb_root['plugins']['statistics']._PluginType__plugins['piwik']._PluginBase__options
+ settings_map = {'serverAPIUrl': 'server_api_url',
+ 'serverUrl': 'server_url',
+ 'serverSiteID': 'site_id_general',
+ 'serverTok': 'server_token',
+ 'useOnlyServerURL': 'use_only_server_url',
+ 'jsHookEnabled': 'enabled_for_events',
+ 'downloadTrackingEnabled': 'enabled_for_downloads'}
+ for old, new in settings_map.iteritems():
+ PiwikPlugin.settings.set(new, opts[old].getValue())
+ db.session.commit()
diff --git a/piwik/setup.py b/piwik/setup.py
index 97b6b1b..0bd9839 100644
--- a/piwik/setup.py
+++ b/piwik/setup.py
@@ -14,6 +14,8 @@
# You should have received a copy of the GNU General Public License
# along with Indico; if not, see .
+from __future__ import unicode_literals
+
from setuptools import setup, find_packages
@@ -37,5 +39,6 @@ setup(
'License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)',
'Programming Language :: Python :: 2.7'
],
- entry_points={'indico.plugins': {'piwik = indico_piwik:PiwikPlugin'}}
+ entry_points={'indico.plugins': {'piwik = indico_piwik:PiwikPlugin'},
+ 'indico.zodb_importers': {'piwik = indico_piwik.zodbimport:PiwikImporter'}}
)