From bb32bcef8f22fe0b126beff7a21f54da1e58f6c9 Mon Sep 17 00:00:00 2001 From: Adrian Moennich Date: Wed, 22 Oct 2014 18:12:44 +0200 Subject: [PATCH] Fail if search plugin is loaded but no engines --- search/indico_search/controllers.py | 2 +- search/indico_search/plugin.py | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/search/indico_search/controllers.py b/search/indico_search/controllers.py index 656ef3c..8d03391 100644 --- a/search/indico_search/controllers.py +++ b/search/indico_search/controllers.py @@ -16,7 +16,7 @@ from __future__ import unicode_literals -from flask import request, session +from flask import request from flask_pluginengine import current_plugin from MaKaC.conference import ConferenceHolder, Conference, CategoryManager diff --git a/search/indico_search/plugin.py b/search/indico_search/plugin.py index fd1d46a..c0cd9c1 100644 --- a/search/indico_search/plugin.py +++ b/search/indico_search/plugin.py @@ -16,6 +16,8 @@ from __future__ import unicode_literals +from flask_pluginengine import plugins_loaded + from indico.core.plugins import IndicoPlugin from indico_search.blueprint import blueprint @@ -30,6 +32,14 @@ class SearchPlugin(IndicoPlugin): hidden = True _engine_plugin = None # the search engine plugin + def init(self): + super(SearchPlugin, self).init() + self.connect(plugins_loaded, self._plugins_loaded, sender=self.app) + + def _plugins_loaded(self, sender, **kwargs): + if not self.engine_plugin: + raise RuntimeError('Search plugin active but no search engine plugin loaded') + @property def engine_plugin(self): return self._engine_plugin