[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