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

Reply via email to