From a664df6400b3721a40f665d04b751e7a50b42ebc Mon Sep 17 00:00:00 2001 From: Chris McDonough Date: Thu, 19 Nov 2009 15:52:01 +0000 Subject: Reword notfound and forbidden view handlers. --- repoze/bfg/zcml.py | 45 ++++++++++++++++++++------------------------- 1 file changed, 20 insertions(+), 25 deletions(-) (limited to 'repoze/bfg/zcml.py') diff --git a/repoze/bfg/zcml.py b/repoze/bfg/zcml.py index eae53c337..6cbea96df 100644 --- a/repoze/bfg/zcml.py +++ b/repoze/bfg/zcml.py @@ -293,7 +293,6 @@ def route(_context, name, path, view=None, view_for=None, view_path_info), ) - class ISystemViewDirective(Interface): view = GlobalObject( title=u"", @@ -316,33 +315,29 @@ class ISystemViewDirective(Interface): description = u'', required=False) -def notfound(_context, view=None, attr=None, renderer=None, wrapper=None): - view_utility(_context, view, attr, renderer, wrapper, INotFoundView) - -def forbidden(_context, view=None, attr=None, renderer=None, wrapper=None): - view_utility(_context, view, attr, renderer, wrapper, IForbiddenView) +class SystemViewHandler(object): + def __init__(self, iface): + self.iface = iface -def view_utility(_context, view, attr, renderer, wrapper, iface): - if not view: - if renderer: - def view(context, request): - return {} - else: - raise ConfigurationError('"view" attribute was not specified and ' - 'no renderer specified') - - if renderer and '.' in renderer: - renderer = resource_spec(renderer, package_name(_context.resolve('.'))) + def __call__(self, _context, view=None, attr=None, renderer=None, + wrapper=None): + if renderer and '.' in renderer: + renderer = resource_spec( + renderer, package_name(_context.resolve('.'))) - def register(): - reg = get_current_registry() - config = Configurator(reg) - config.view_utility(view, attr, renderer, wrapper, iface, _context.info) + def register(iface=self.iface): + reg = get_current_registry() + config = Configurator(reg) + config.system_view(iface, view=view, attr=attr, renderer=renderer, + wrapper=wrapper, _info=_context.info) - _context.action( - discriminator = iface, - callable = register, - ) + _context.action( + discriminator = self.iface, + callable = register, + ) + +notfound = SystemViewHandler(INotFoundView) +forbidden = SystemViewHandler(IForbiddenView) class IResourceDirective(Interface): """ -- cgit v1.2.3