From 0464f1403990d3bfd85cd471f6676e70b1e81648 Mon Sep 17 00:00:00 2001 From: Simo Sorce Date: Mon, 7 Apr 2014 16:49:06 -0400 Subject: Change provider plugins registration and enablement When plugins are not enabled at startup the admin page is not available as it is created only on enablement. Split enablement and registration, so plugins can be registered even when actually disabled. Also rework the way enablement is tracked and make sure enablement status is saved back to the database when it changes so it is kept on restarts. Signed-off-by: Simo Sorce --- ipsilon/admin/providers.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'ipsilon/admin/providers.py') diff --git a/ipsilon/admin/providers.py b/ipsilon/admin/providers.py index 1a2df7c..ba5e1e7 100755 --- a/ipsilon/admin/providers.py +++ b/ipsilon/admin/providers.py @@ -43,12 +43,17 @@ class ProviderPlugins(Page): def root_with_msg(self, message=None, message_type=None): plugins = self._site[FACILITY] + enabled_plugins = [] + for item in plugins['available']: + plugin = plugins['available'][item] + if plugin.is_enabled: + enabled_plugins.append(item) return self._template('admin/providers.html', title=self.title, baseurl=self.url, message=message, message_type=message_type, available=plugins['available'], - enabled=plugins['enabled'], + enabled=enabled_plugins, menu=self._master.menu) def root(self, *args, **kwargs): @@ -61,7 +66,7 @@ class ProviderPlugins(Page): msg = "Unknown plugin %s" % plugin return self.root_with_msg(msg, "error") obj = plugins['available'][plugin] - if obj not in plugins['enabled']: + if not obj.is_enabled: obj.enable(self._site) msg = "Plugin %s enabled" % obj.name return self.root_with_msg(msg, "success") @@ -74,7 +79,7 @@ class ProviderPlugins(Page): msg = "Unknown plugin %s" % plugin return self.root_with_msg(msg, "error") obj = plugins['available'][plugin] - if obj in plugins['enabled']: + if obj.is_enabled: obj.disable(self._site) msg = "Plugin %s disabled" % obj.name return self.root_with_msg(msg, "success") -- cgit