diff --git a/browser/common.py b/browser/common.py index 4dcb465..9cee707 100644 --- a/browser/common.py +++ b/browser/common.py @@ -346,6 +346,10 @@ class BaseView(GenericView, I18NView): view = component.getMultiAdapter((removeAllProxies(source), self.request)) return view.render() + @Lazy + def renderedDescription(self): + return self.renderText(self.description, 'text/restructured') + # type listings def listTypes(self, include=None, exclude=None, sortOn='title'): diff --git a/browser/node.py b/browser/node.py index c767fba..fd5386e 100644 --- a/browser/node.py +++ b/browser/node.py @@ -107,11 +107,9 @@ class NodeView(BaseView): cm.register('portlet_left', 'navigation', title='Navigation', subMacro=node_macros.macros['menu']) if canWrite(self.context, 'title') or ( + # TODO: is this useful in any case? self.virtualTargetObject is not None and canWrite(self.virtualTargetObject, 'title')): - #cm.register('portlet_right', 'clipboard', title='Clipboard', - # subMacro=self.template.macros['clipboard']) - # this belongs to loops.organize cm.register('portlet_right', 'actions', title=_(u'Actions'), subMacro=node_macros.macros['actions'], priority=100) diff --git a/common.py b/common.py index fa9c6ec..b150e5e 100644 --- a/common.py +++ b/common.py @@ -113,7 +113,10 @@ class AdapterBase(object): try: object.__setattr__(self, attr, value) except AttributeError: - print '***', self.context.__name__, attr, value + from logging import getLogger + getLogger('loops.common.AdapterBase').warn( + 'AttributeError: %r, %r, %r.' % + (self.context.__name__, attr, value)) raise else: self.checkAttr(attr)