diff --git a/ckan/config/middleware.py b/ckan/config/middleware.py index ffa6bb14230..431c59b1506 100644 --- a/ckan/config/middleware.py +++ b/ckan/config/middleware.py @@ -35,7 +35,7 @@ from flask_debugtoolbar import DebugToolbarExtension from ckan.plugins import PluginImplementations -from ckan.plugins.interfaces import IMiddleware, IRoutes +from ckan.plugins.interfaces import IMiddleware, IBlueprint from ckan.lib.i18n import get_locales_from_config import ckan.lib.uploader as uploader from ckan.lib import jinja_extensions @@ -347,7 +347,7 @@ def hello_world_post(): app.register_blueprint(api) # Set up each iRoute extension as a Flask Blueprint - for plugin in PluginImplementations(IRoutes): + for plugin in PluginImplementations(IBlueprint): if hasattr(plugin, 'get_blueprint'): app.register_blueprint(plugin.get_blueprint(), prioritise_rules=True) diff --git a/ckan/plugins/interfaces.py b/ckan/plugins/interfaces.py index e29d390f132..f013ae9913b 100644 --- a/ckan/plugins/interfaces.py +++ b/ckan/plugins/interfaces.py @@ -1566,3 +1566,11 @@ def get_resource_uploader(self): :type id: string ''' + + +class IBlueprint(Interface): + + '''Register an extension as a Flask Blueprint.''' + + def get_blueprint(self): + '''Return a Flask Blueprint object to be registered by the app.'''