summaryrefslogtreecommitdiff
path: root/repoze/bfg/zcml.py
diff options
context:
space:
mode:
authorChris McDonough <chrism@agendaless.com>2009-10-18 02:27:43 +0000
committerChris McDonough <chrism@agendaless.com>2009-10-18 02:27:43 +0000
commit2cce431f02a37c119eacfc3dfa94af9fe3305de1 (patch)
treef154dbf4937afb3f5d08ed497f6c4cac6f843144 /repoze/bfg/zcml.py
parentf276669b505cb0565dcf854f2e0e751151ccf836 (diff)
downloadpyramid-2cce431f02a37c119eacfc3dfa94af9fe3305de1.tar.gz
pyramid-2cce431f02a37c119eacfc3dfa94af9fe3305de1.tar.bz2
pyramid-2cce431f02a37c119eacfc3dfa94af9fe3305de1.zip
- More than one ``@bfg_view`` decorator may now be stacked on top of
any number of others. Each invocation of the decorator registers a single view. For instance, the following combination of decorators and a function will register two views:: from repoze.bfg.view import bfg_view @bfg_view(name='edit') @bfg_view(name='change') def edit(context, request): pass This makes it possible to associate more than one view configuration for a single callable without requiring ZCML.
Diffstat (limited to 'repoze/bfg/zcml.py')
-rw-r--r--repoze/bfg/zcml.py7
1 files changed, 3 insertions, 4 deletions
diff --git a/repoze/bfg/zcml.py b/repoze/bfg/zcml.py
index a4c18dda9..681c4da1e 100644
--- a/repoze/bfg/zcml.py
+++ b/repoze/bfg/zcml.py
@@ -693,8 +693,8 @@ class BFGMultiGrokker(martian.core.MultiInstanceOrClassGrokkerBase):
class BFGViewGrokker(martian.InstanceGrokker):
martian.component(BFGViewMarker)
def grok(self, name, obj, **kw):
- if hasattr(obj, '__bfg_view_settings__'):
- settings = obj.__bfg_view_settings__
+ config = getattr(obj, '__bfg_view_settings__', [])
+ for settings in config:
permission = settings['permission']
for_ = settings['for_']
name = settings['name']
@@ -716,8 +716,7 @@ class BFGViewGrokker(martian.InstanceGrokker):
request_param=request_param, containment=containment,
attr=attr, renderer=renderer, wrapper=wrapper,
xhr=xhr, accept=accept, header=header)
- return True
- return False
+ return bool(config)
def exclude(name):
if name.startswith('.'):