Author: jmorliaguet Date: Fri Apr 14 20:49:52 2006 New Revision: 2848 Added: cpsskins/branches/jmo-perspectives/standard/ds/html.py (contents, props changed) Modified: cpsskins/branches/jmo-perspectives/standard/ds/configure.zcml cpsskins/branches/jmo-perspectives/standard/filters/widget/__init__.py cpsskins/branches/jmo-perspectives/standard/filters/widget/widgets.zcml Log:
- work-around to avoid using HTML widgets for rendering structured data Modified: cpsskins/branches/jmo-perspectives/standard/ds/configure.zcml ============================================================================== --- cpsskins/branches/jmo-perspectives/standard/ds/configure.zcml (original) +++ cpsskins/branches/jmo-perspectives/standard/ds/configure.zcml Fri Apr 14 20:49:52 2006 @@ -3,6 +3,15 @@ <!-- to be moved to cpsskins.configuration --> + <class class=".html.HTML"> + + <require + permission="zope.View" + interface=".html.IHTML" + /> + + </class> + <class class=".metadata.MetaData"> <require Added: cpsskins/branches/jmo-perspectives/standard/ds/html.py ============================================================================== --- (empty file) +++ cpsskins/branches/jmo-perspectives/standard/ds/html.py Fri Apr 14 20:49:52 2006 @@ -0,0 +1,54 @@ +############################################################################## +# +# Copyright (c) 2005-2006 Nuxeo and Contributors. +# All Rights Reserved. +# +# This software is subject to the provisions of the Zope Public License, +# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution. +# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED +# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS +# FOR A PARTICULAR PURPOSE. +# +############################################################################## +""" + +$Id$ +""" +__docformat__ = "reStructuredText" + +from pprint import pprint + +from zope.interface import implements, Interface +from zope.i18nmessageid import MessageFactory +from zope.schema import TextLine + +_ = MessageFactory("cpsskins") + +class IHTML(Interface): + """Plain HTML + """ + html = TextLine( + title=_(u"HTML"), + description=_(u"Plain HTML content."), + required=False, + ) + +IHTML.setTaggedValue('name', u'plainhtml') + +class HTML(object): + """Plain HTML content + """ + implements(IHTML) + + def __init__(self, html=u''): + self.html = html + + def __repr__(self): + return "<HTML>" + + def __call__(self): + return { + 'html': self.html, + } + Modified: cpsskins/branches/jmo-perspectives/standard/filters/widget/__init__.py ============================================================================== --- cpsskins/branches/jmo-perspectives/standard/filters/widget/__init__.py (original) +++ cpsskins/branches/jmo-perspectives/standard/filters/widget/__init__.py Fri Apr 14 20:49:52 2006 @@ -26,6 +26,7 @@ from zope.i18nmessageid import MessageFactory from cpsskins.browser.rendering.interfaces import IFilterView +from cpsskins.standard.ds.html import HTML from cpsskins.standard.formats.widget import IWidget from cpsskins.standard.filters.widget.interfaces import ( IBasicWidgetView, IWidgetView) @@ -52,6 +53,12 @@ engine = info.globals.engine data = info.data + # create a transient HTML data structure if there is no data + if data is None: + data = HTML() + + factory = None + types = context.types for type in types: # look for a widget specific to the engine @@ -66,10 +73,10 @@ break if factory is None: - logger.warning("'%s' with data '%s' could not be displayed " - "with the specified widget. " - "Falling back to the basic widget view.", - repr(info.element), repr(data)) + logger.debug("'%s' with data '%s' could not be displayed " + "with the specified widget. " + "Falling back to the basic widget view.", + repr(info.element), repr(data)) factory = queryMultiAdapter(objects=(data, request), interface=IBasicWidgetView) Modified: cpsskins/branches/jmo-perspectives/standard/filters/widget/widgets.zcml ============================================================================== --- cpsskins/branches/jmo-perspectives/standard/filters/widget/widgets.zcml (original) +++ cpsskins/branches/jmo-perspectives/standard/filters/widget/widgets.zcml Fri Apr 14 20:49:52 2006 @@ -6,32 +6,33 @@ <widget name="standard.plain_html" - view=".widgets.PlainHTML" title="Plain HTML" + view=".widgets.PlainHTML" + for="cpsskins.standard.ds.html.IHTML" basic="True" /> <widget name="standard.plain_image" + title="Plain image" view=".widgets.PlainImage" for="cpsskins.standard.ds.image.IImage" - title="Plain image" basic="True" /> <widget name="standard.plain_menuitem" + title="Plain menu item" view=".widgets.PlainMenuItem" for="cpsskins.standard.ds.menuitem.IMenuItem" - title="Plain menu item" basic="True" /> <widget name="standard.plain_items" + title="Plain menu items" view=".widgets.PlainMenuItems" for="cpsskins.standard.ds.menuitems.IMenuItems" - title="Plain menu items" basic="True" /> @@ -42,6 +43,7 @@ name="standard.page_body" title="Page body" view=".widgets.PageBody" + for="cpsskins.standard.ds.html.IHTML" /> @@ -51,12 +53,14 @@ name="standard.pageblock_frame" title="Page block frame" view=".widgets.PageBlockFrame" + for="cpsskins.standard.ds.html.IHTML" /> <widget name="standard.pageblock_frame" title="Page block frame" view=".widgets.TablelessPageBlockFrame" + for="cpsskins.standard.ds.html.IHTML" engine="tableless" /> @@ -67,12 +71,14 @@ name="standard.cell_frame" title="Cell frame" view=".widgets.CellFrame" + for="cpsskins.standard.ds.html.IHTML" /> <widget name="standard.cell_frame" title="Cell frame" view=".widgets.TablelessCellFrame" + for="cpsskins.standard.ds.html.IHTML" engine="tableless" /> @@ -80,6 +86,7 @@ name="standard.horizontal_scrollbar" title="Horizontal scroll bar" view=".widgets.HorizontalScrollBar" + for="cpsskins.standard.ds.html.IHTML" /> @@ -127,6 +134,7 @@ name="standard.frame_box" title="Frame box" view=".widgets.FrameBox" + for="cpsskins.standard.ds.html.IHTML" /> -- http://lists.nuxeo.com/mailman/listinfo/z3lab-checkins