Add has_subclasses checks for iplugins (prevent for loading parent class)

This commit is contained in:
Gregory Soutade 2015-04-06 17:54:44 +02:00
parent df78a3f4cb
commit ee184f86b5
4 changed files with 12 additions and 5 deletions

View File

@ -79,13 +79,19 @@ def preloadPlugins(plugins, iwla):
classes = [c for _,c in inspect.getmembers(mod)\ classes = [c for _,c in inspect.getmembers(mod)\
if inspect.isclass(c) and \ if inspect.isclass(c) and \
issubclass(c, IPlugin) and \ issubclass(c, IPlugin) and \
c.__name__ != 'IPlugin' c.__name__ != 'IPlugin' and \
not c.__subclasses__()
] ]
if not classes: if not classes:
logger.warning('No plugin defined in %s' % (plugin_path)) logger.warning('No plugin defined in %s' % (plugin_path))
continue continue
if len(classes) > 1:
logger.warning('More than one class found in %s, loading may fail. Selecting %s' % (plugin_path, classes[0]))
print classes
continue
plugin = classes[0](iwla) plugin = classes[0](iwla)
plugin_name = plugin.__class__.__name__ plugin_name = plugin.__class__.__name__

View File

@ -21,7 +21,6 @@
from iwla import IWLA from iwla import IWLA
from iplugin import IPlugin from iplugin import IPlugin
from display import * from display import *
from plugins.post_analysis.feeds import IWLAPostAnalysisFeeds
""" """
Display hook Display hook
@ -60,6 +59,8 @@ class IWLADisplayFeeds(IPlugin):
return True return True
def hook(self): def hook(self):
from plugins.post_analysis.feeds import IWLAPostAnalysisFeeds
display = self.iwla.getDisplay() display = self.iwla.getDisplay()
hits = self.iwla.getCurrentVisists() hits = self.iwla.getCurrentVisists()
nb_feeds_parsers = 0 nb_feeds_parsers = 0
@ -88,7 +89,7 @@ class IWLADisplayFeeds(IPlugin):
else: else:
table.appendRow([address, super_hit['viewed_pages'], super_hit['viewed_hits']]) table.appendRow([address, super_hit['viewed_pages'], super_hit['viewed_hits']])
page.appendBlock(table) page.appendBlock(table)
note = DisplayHTMLRaw(self.iwla, ('<small>*%s</small>' % (self.iwla._('Merged feeds parsers')))) note = DisplayHTMLRaw(self.iwla, ('<small>*%s</small>' % (self.iwla._(u'Merged feeds parsers'))))
page.appendBlock(note) page.appendBlock(note)
display.addPage(page) display.addPage(page)

View File

@ -24,7 +24,7 @@ from display import *
import logging import logging
""" """
Display hook itnerface Display hook interface
Enlight new and updated statistics Enlight new and updated statistics

View File

@ -53,7 +53,7 @@ class IWLADisplayReferersDiff(IWLADisplayStatsDiff):
self.requires = ['IWLADisplayReferers'] self.requires = ['IWLADisplayReferers']
self.month_stats_key = 'key_phrases' self.month_stats_key = 'key_phrases'
self.filename = 'key_phrases.html' self.filename = 'key_phrases.html'
self.block_name = u'Key phrases' self.block_name = self.iwla._(u'Key phrases')
def load(self): def load(self):
if not self.iwla.getConfValue('create_all_key_phrases_page', True): if not self.iwla.getConfValue('create_all_key_phrases_page', True):