summaryrefslogtreecommitdiff
path: root/repoze/bfg/view.py
diff options
context:
space:
mode:
Diffstat (limited to 'repoze/bfg/view.py')
-rw-r--r--repoze/bfg/view.py27
1 files changed, 10 insertions, 17 deletions
diff --git a/repoze/bfg/view.py b/repoze/bfg/view.py
index 8ef8f3bb6..d94da9570 100644
--- a/repoze/bfg/view.py
+++ b/repoze/bfg/view.py
@@ -18,9 +18,7 @@ from webob.exc import HTTPFound
from paste.urlparser import StaticURLParser
-from zope.component import getSiteManager
from zope.component import providedBy
-from zope.component import queryUtility
from zope.deprecation import deprecated
from zope.interface.advice import getFrameInfo
@@ -62,8 +60,8 @@ def render_view_to_response(context, request, name='', secure=True):
``args`` attribute explains why the view access was disallowed.
If ``secure`` is ``False``, no permission checking is done."""
provides = map(providedBy, (context, request))
- sm = getSiteManager()
- view = sm.adapters.lookup(provides, IView, name=name)
+ reg = request.registry
+ view = reg.adapters.lookup(provides, IView, name=name)
if view is None:
return None
@@ -454,7 +452,12 @@ def default_view(context, request, status):
""" % (status, status, msg)
headers = [('Content-Length', str(len(html))),
('Content-Type', 'text/html')]
- response_factory = queryUtility(IResponseFactory, default=Response)
+ response_factory = Response
+ registry = getattr(request, 'registry', None)
+ if registry is not None:
+ # be kind to old tests
+ response_factory = registry.queryUtility(IResponseFactory,
+ default=Response)
return response_factory(status = status,
headerlist = headers,
app_iter = [html])
@@ -490,7 +493,8 @@ def append_slash_notfound_view(context, request):
"""
path = request.environ.get('PATH_INFO', '/')
- mapper = queryUtility(IRoutesMapper)
+ registry = request.registry
+ mapper = registry.queryUtility(IRoutesMapper)
if mapper is not None and not path.endswith('/'):
slashpath = path + '/'
for route in mapper.get_routes():
@@ -498,14 +502,3 @@ def append_slash_notfound_view(context, request):
return HTTPFound(location=slashpath)
return default_view(context, request, '404 Not Found')
-def derive_view(original_view, permission=None, predicates=(), attr=None,
- renderer_name=None, wrapper_viewname=None, viewname=None):
- reg = getSiteManager()
- from repoze.bfg.configuration import Configurator
- config = Configurator(reg)
- return config.derive_view(original_view, permission=permission,
- predicates=predicates, attr=attr,
- renderer_name=renderer_name,
- wrapper_viewname=wrapper_viewname,
- viewname=viewname)
-