[Checkins] SVN: grok/branches/ksmith_mcweekly-layers-011/ various
fixes based on Martijn's code review
Kevin Smith
kevin at mcweekly.com
Wed Sep 19 12:56:28 EDT 2007
Log message for revision 79752:
various fixes based on Martijn's code review
Changed:
U grok/branches/ksmith_mcweekly-layers-011/CREDITS.txt
U grok/branches/ksmith_mcweekly-layers-011/src/grok/meta.py
-=-
Modified: grok/branches/ksmith_mcweekly-layers-011/CREDITS.txt
===================================================================
--- grok/branches/ksmith_mcweekly-layers-011/CREDITS.txt 2007-09-19 14:52:01 UTC (rev 79751)
+++ grok/branches/ksmith_mcweekly-layers-011/CREDITS.txt 2007-09-19 16:56:27 UTC (rev 79752)
@@ -27,6 +27,8 @@
* Wim Boucqaert (admin interface layout improvements)
+* Kevin M. Smith (skins and layers support)
+
* ME GROK (team mascot)
Thank you
Modified: grok/branches/ksmith_mcweekly-layers-011/src/grok/meta.py
===================================================================
--- grok/branches/ksmith_mcweekly-layers-011/src/grok/meta.py 2007-09-19 14:52:01 UTC (rev 79751)
+++ grok/branches/ksmith_mcweekly-layers-011/src/grok/meta.py 2007-09-19 16:56:27 UTC (rev 79752)
@@ -193,11 +193,9 @@
raise GrokError("View %r has no associated template or "
"'render' method." % factory, factory)
- # grab layer, if there is one
- view_layer = util.class_annotation(factory, 'grok.layer',
- None) or module_info.getAnnotation('grok.layer',
- None) or IDefaultBrowserLayer
-
+ # grab layer from class or module
+ view_layer = determine_class_directive('grok.layer', factory, module_info, default=IDefaultBrowserLayer)
+
view_name = util.class_annotation(factory, 'grok.name',
factory_name)
# __view_name__ is needed to support IAbsoluteURL on views
@@ -669,9 +667,17 @@
def grok(self, name, factory, context, module_info, templates):
- layer = util.class_annotation(factory, 'grok.layer',
- None) or module_info.getAnnotation('grok.layer',
- None) or IBrowserRequest
+ layer = determine_class_directive('grok.layer', factory, module_info, default=IBrowserRequest)
name = grok.util.class_annotation(factory, 'grok.name', factory.__name__.lower())
zope.component.interface.provideInterface(name, layer, IBrowserSkinType)
return True
+
+
+def determine_class_directive(directive_name, factory, module_info, default=None):
+ directive = util.class_annotation(factory, directive_name, None)
+ if directive is None:
+ directive = module_info.getAnnotation(directive_name, None)
+ if directive is not None:
+ return directive
+ else:
+ return default
More information about the Checkins
mailing list