[Checkins] SVN: zope.app.form/branches/faassen-zaf/src/zope/app/form/ zope.app.form -> zope.formlib.widget

Martijn Faassen faassen at startifact.com
Wed Dec 30 14:21:24 EST 2009


Log message for revision 107376:
  zope.app.form -> zope.formlib.widget
  zope.app.form.browser.interfaces -> zope.formlib.interfaces
  

Changed:
  U   zope.app.form/branches/faassen-zaf/src/zope/app/form/__init__.py
  U   zope.app.form/branches/faassen-zaf/src/zope/app/form/browser/interfaces.py
  U   zope.app.form/branches/faassen-zaf/src/zope/app/form/browser/metaconfigure.py
  U   zope.app.form/branches/faassen-zaf/src/zope/app/form/browser/objectwidget.py
  U   zope.app.form/branches/faassen-zaf/src/zope/app/form/browser/sequencewidget.py
  U   zope.app.form/branches/faassen-zaf/src/zope/app/form/browser/tests/test_add.py
  U   zope.app.form/branches/faassen-zaf/src/zope/app/form/browser/tests/test_sequencewidget.py
  U   zope.app.form/branches/faassen-zaf/src/zope/app/form/browser/widgets.txt
  U   zope.app.form/branches/faassen-zaf/src/zope/app/form/tests/test_utility.py
  U   zope.app.form/branches/faassen-zaf/src/zope/app/form/tests/test_widget.py

-=-
Modified: zope.app.form/branches/faassen-zaf/src/zope/app/form/__init__.py
===================================================================
--- zope.app.form/branches/faassen-zaf/src/zope/app/form/__init__.py	2009-12-30 19:20:59 UTC (rev 107375)
+++ zope.app.form/branches/faassen-zaf/src/zope/app/form/__init__.py	2009-12-30 19:21:24 UTC (rev 107376)
@@ -17,96 +17,4 @@
 """
 __docformat__ = 'restructuredtext'
 
-from zope.formlib.interfaces import IWidget, InputErrors, IWidgetFactory
-from zope.interface import implements
-from zope.i18n import translate
-from zope.schema.interfaces import IChoice, ICollection
-
-class Widget(object):
-    """Mixin class providing functionality common across widget types."""
-
-    implements(IWidget)
-
-    _prefix = 'field.'
-    _data_marker = object()
-    _data = _data_marker
-
-    visible = True
-
-    def __init__(self, context, request):
-        self.context = context
-        self.request = request
-        self.name = self._prefix + context.__name__
-        self.label = self.context.title
-        self.hint = self.context.description
-
-    def _translate(self, text):
-        return translate(text, context=self.request, default=text)
-
-    def _renderedValueSet(self):
-        """Returns ``True`` if the the widget's rendered value has been set.
-
-        This is a convenience method that widgets can use to check whether
-        or not `setRenderedValue` was called.
-        """
-        return self._data is not self._data_marker
-
-    def setPrefix(self, prefix):
-        if prefix and not prefix.endswith("."):
-            prefix += '.'
-        self._prefix = prefix
-        self.name = prefix + self.context.__name__
-
-    def setRenderedValue(self, value):
-        self._data = value
-
-
-class InputWidget(Widget):
-    """Mixin class providing some default input widget methods."""
-
-    def hasValidInput(self):
-        try:
-            self.getInputValue()
-            return True
-        except InputErrors:
-            return False
-
-    def applyChanges(self, content):
-        field = self.context
-        value = self.getInputValue()
-        if field.query(content, self) != value:
-            field.set(content, value)
-            return True
-        else:
-            return False
-
-
-class CustomWidgetFactory(object):
-    """Custom Widget Factory."""
-    implements(IWidgetFactory)
-
-    def __init__(self, widget_factory, *args, **kw):
-        self._widget_factory = widget_factory
-        self.args = args
-        self.kw = kw
-
-    def _create(self, args):
-        instance = self._widget_factory(*args)
-        for name, value in self.kw.items():
-            setattr(instance, name, value)
-        return instance
-
-    def __call__(self, context, request):
-        # Sequence widget factory
-        if ICollection.providedBy(context):
-            args = (context, context.value_type, request) + self.args
-
-        # Vocabulary widget factory
-        elif IChoice.providedBy(context):
-            args = (context, context.vocabulary, request) + self.args
-
-        # Regular widget factory
-        else:
-            args = (context, request) + self.args
-
-        return self._create(args)
+from zope.formlib.widget import Widget, InputWidget, CustomWidgetFactory

Modified: zope.app.form/branches/faassen-zaf/src/zope/app/form/browser/interfaces.py
===================================================================
--- zope.app.form/branches/faassen-zaf/src/zope/app/form/browser/interfaces.py	2009-12-30 19:20:59 UTC (rev 107375)
+++ zope.app.form/branches/faassen-zaf/src/zope/app/form/browser/interfaces.py	2009-12-30 19:21:24 UTC (rev 107376)
@@ -26,53 +26,10 @@
 # preferred to import from there now.
 from zope.browser.interfaces import ITerms
 
+from zope.formlib.interfaces import (
+    IBrowserWidget, ISimpleInputWidget, ITextBrowserWidget,
+    IWidgetInputErrorView)
 
-class IBrowserWidget(IWidget):
-    """A widget for use in a web browser UI."""
-
-    def __call__():
-        """Render the widget."""
-
-    def hidden():
-        """Render the widget as a hidden field."""
-
-    def error():
-        """Render the validation error for the widget, or return
-        an empty string if no error"""
-
-
-class ISimpleInputWidget(IBrowserWidget, IInputWidget):
-    """A widget that uses a single HTML element to collect user input."""
-
-    tag = TextLine(
-        title=u'Tag',
-        description=u'The widget HTML element.')
-
-    type = TextLine(
-        title=u'Type',
-        description=u'The element type attribute',
-        required=False)
-
-    cssClass = TextLine(
-        title=u'CSS Class',
-        description=u'The element class attribute.',
-        required=False)
-
-    extra = TextLine(
-        title=u'Extra',
-        description=u'The element extra attribute.',
-        required=False)
-
-
-class ITextBrowserWidget(ISimpleInputWidget):
-
-    convert_missing_value = Bool(
-        title=u'Translate Input Value',
-        description=
-            u'If True, an empty string is converted to field.missing_value.',
-        default=True)
-
-
 class IFormCollaborationView(Interface):
     """Views that collaborate to create a single form.
 
@@ -157,13 +114,6 @@
         i.e. it delegates to the `IAdding` view.
         """
 
-class IWidgetInputErrorView(Interface):
-    """Display an input error as a snippet of text."""
-
-    def snippet():
-        """Convert a widget input error to an html snippet."""
-
-
 class ISourceQueryView(Interface):
     """View support for querying non-iterable sources
     """

Modified: zope.app.form/branches/faassen-zaf/src/zope/app/form/browser/metaconfigure.py
===================================================================
--- zope.app.form/branches/faassen-zaf/src/zope/app/form/browser/metaconfigure.py	2009-12-30 19:20:59 UTC (rev 107375)
+++ zope.app.form/branches/faassen-zaf/src/zope/app/form/browser/metaconfigure.py	2009-12-30 19:21:24 UTC (rev 107376)
@@ -30,7 +30,7 @@
 from zope.publisher.interfaces.browser import IDefaultBrowserLayer
 from zope.browsermenu.metaconfigure import menuItemDirective
 
-from zope.app.form import CustomWidgetFactory
+from zope.formlib.widget import CustomWidgetFactory
 from zope.app.form.browser.i18n import _
 from zope.formlib.interfaces import IInputWidget, IDisplayWidget
 from zope.formlib.interfaces import IWidgetFactory

Modified: zope.app.form/branches/faassen-zaf/src/zope/app/form/browser/objectwidget.py
===================================================================
--- zope.app.form/branches/faassen-zaf/src/zope/app/form/browser/objectwidget.py	2009-12-30 19:20:59 UTC (rev 107375)
+++ zope.app.form/branches/faassen-zaf/src/zope/app/form/browser/objectwidget.py	2009-12-30 19:21:24 UTC (rev 107376)
@@ -22,7 +22,7 @@
 from zope.schema import getFieldNamesInOrder
 
 from zope.formlib.interfaces import IInputWidget
-from zope.app.form import InputWidget
+from zope.formlib.widget import InputWidget
 from zope.formlib.widget import BrowserWidget
 from zope.app.form.utility import setUpWidgets, applyWidgetsChanges
 from zope.browserpage import ViewPageTemplateFile

Modified: zope.app.form/branches/faassen-zaf/src/zope/app/form/browser/sequencewidget.py
===================================================================
--- zope.app.form/branches/faassen-zaf/src/zope/app/form/browser/sequencewidget.py	2009-12-30 19:20:59 UTC (rev 107375)
+++ zope.app.form/branches/faassen-zaf/src/zope/app/form/browser/sequencewidget.py	2009-12-30 19:21:24 UTC (rev 107376)
@@ -24,7 +24,7 @@
 
 from zope.formlib.interfaces import IDisplayWidget, IInputWidget
 from zope.formlib.interfaces import WidgetInputError, MissingInputError
-from zope.app.form import InputWidget
+from zope.formlib.widget import InputWidget
 from zope.app.form.browser.i18n import _
 from zope.formlib.widget import BrowserWidget
 from zope.formlib.widget import DisplayWidget, renderElement

Modified: zope.app.form/branches/faassen-zaf/src/zope/app/form/browser/tests/test_add.py
===================================================================
--- zope.app.form/branches/faassen-zaf/src/zope/app/form/browser/tests/test_add.py	2009-12-30 19:20:59 UTC (rev 107375)
+++ zope.app.form/branches/faassen-zaf/src/zope/app/form/browser/tests/test_add.py	2009-12-30 19:21:24 UTC (rev 107376)
@@ -32,7 +32,7 @@
 from zope.security.checker import CheckerPublic
 from zope.site.site import SiteManagerAdapter
 
-from zope.app.form import CustomWidgetFactory
+from zope.formlib.widget import CustomWidgetFactory
 from zope.app.form.browser import TextWidget as Text
 from zope.app.form.browser.add import AddViewFactory, AddView
 from zope.app.form.browser.metaconfigure import AddFormDirective

Modified: zope.app.form/branches/faassen-zaf/src/zope/app/form/browser/tests/test_sequencewidget.py
===================================================================
--- zope.app.form/branches/faassen-zaf/src/zope/app/form/browser/tests/test_sequencewidget.py	2009-12-30 19:20:59 UTC (rev 107375)
+++ zope.app.form/branches/faassen-zaf/src/zope/app/form/browser/tests/test_sequencewidget.py	2009-12-30 19:21:24 UTC (rev 107376)
@@ -31,7 +31,7 @@
 from zope.formlib.interfaces import IInputWidget, MissingInputError
 from zope.formlib.interfaces import IWidgetInputError, WidgetInputError
 from zope.app.form.browser.interfaces import IWidgetInputErrorView
-from zope.app.form import CustomWidgetFactory
+from zope.formlib.widget import CustomWidgetFactory
 from zope.app.form.browser.exception import WidgetInputErrorView
 
 from zope.app.form.browser.tests.support import VerifyResults

Modified: zope.app.form/branches/faassen-zaf/src/zope/app/form/browser/widgets.txt
===================================================================
--- zope.app.form/branches/faassen-zaf/src/zope/app/form/browser/widgets.txt	2009-12-30 19:20:59 UTC (rev 107375)
+++ zope.app.form/branches/faassen-zaf/src/zope/app/form/browser/widgets.txt	2009-12-30 19:21:24 UTC (rev 107376)
@@ -77,7 +77,7 @@
 
     from zope.app.form.browser.editview import EditView
     from zope.app.form.browser.add import AddView
-    from zope.app.form import CustomWidgetFactory
+    from zope.formlib.widget import CustomWidgetFactory
     from zope.app.form.browser import SequenceWidget, ObjectWidget
 
     from interfaces import IPoll

Modified: zope.app.form/branches/faassen-zaf/src/zope/app/form/tests/test_utility.py
===================================================================
--- zope.app.form/branches/faassen-zaf/src/zope/app/form/tests/test_utility.py	2009-12-30 19:20:59 UTC (rev 107375)
+++ zope.app.form/branches/faassen-zaf/src/zope/app/form/tests/test_utility.py	2009-12-30 19:21:24 UTC (rev 107376)
@@ -28,7 +28,7 @@
 
 from zope.app.testing import ztapi
 
-from zope.app.form import Widget
+from zope.formlib.widget import Widget
 from zope.formlib.interfaces import IWidget, IInputWidget, IDisplayWidget
 from zope.formlib.interfaces import ConversionError, InputErrors, WidgetsError
 from zope.formlib.interfaces import IWidgetFactory

Modified: zope.app.form/branches/faassen-zaf/src/zope/app/form/tests/test_widget.py
===================================================================
--- zope.app.form/branches/faassen-zaf/src/zope/app/form/tests/test_widget.py	2009-12-30 19:20:59 UTC (rev 107375)
+++ zope.app.form/branches/faassen-zaf/src/zope/app/form/tests/test_widget.py	2009-12-30 19:21:24 UTC (rev 107376)
@@ -21,7 +21,7 @@
 from zope.publisher.browser import TestRequest
 from zope.testing.doctest import DocTestSuite
 
-from zope.app.form import Widget
+from zope.formlib.widget import Widget
 
 
 class TestContext(object):
@@ -105,7 +105,7 @@
     To test the default methods, we must create a basic input widget
     that provides a getInputValue method:
 
-        >>> from zope.app.form import InputWidget
+        >>> from zope.formlib.widget import InputWidget
         >>> from zope.formlib.interfaces import WidgetInputError
         >>> class TestInputWidget(InputWidget):
         ...     def getInputValue(self):
@@ -162,7 +162,7 @@
 
     Test regular widget:
 
-        >>> from zope.app.form import CustomWidgetFactory
+        >>> from zope.formlib.widget import CustomWidgetFactory
         >>> factory = CustomWidgetFactory(FooWidget, bar='baz')
         >>> widget = factory(context, request)
         >>> isinstance(widget, FooWidget)



More information about the checkins mailing list