[Checkins] SVN: plone.z3cform/trunk/plone/z3cform/ Update backport to latest z3c.form trunk and add a converter to make sets come out sorted
Martin Aspeli
optilude at gmx.net
Thu Mar 12 00:38:43 EDT 2009
Log message for revision 97954:
Update backport to latest z3c.form trunk and add a converter to make sets come out sorted
Changed:
U plone.z3cform/trunk/plone/z3cform/configure.zcml
U plone.z3cform/trunk/plone/z3cform/textlines/__init__.py
U plone.z3cform/trunk/plone/z3cform/textlines/textlines.py
-=-
Modified: plone.z3cform/trunk/plone/z3cform/configure.zcml
===================================================================
--- plone.z3cform/trunk/plone/z3cform/configure.zcml 2009-03-12 03:36:02 UTC (rev 97953)
+++ plone.z3cform/trunk/plone/z3cform/configure.zcml 2009-03-12 04:38:42 UTC (rev 97954)
@@ -10,9 +10,18 @@
<include package="z3c.form" file="meta.zcml" />
<include package="z3c.form" />
+ <!-- Backported from z3c.from trunk -->
<include package=".textlines" file="textlines.zcml"
zcml:condition="not-installed z3c.form.browser.textlines"/>
+ <!-- These are not backported, but represent useful policy -->
+ <adapter
+ factory=".textlines.textlines.TextLinesSetConverter"
+ />
+ <adapter
+ factory=".textlines.textlines.TextLinesFrozenSetConverter"
+ />
+
<includeOverrides file="overrides.zcml" />
<adapter factory=".traversal.WidgetTraversal" name="widget" />
Modified: plone.z3cform/trunk/plone/z3cform/textlines/__init__.py
===================================================================
--- plone.z3cform/trunk/plone/z3cform/textlines/__init__.py 2009-03-12 03:36:02 UTC (rev 97953)
+++ plone.z3cform/trunk/plone/z3cform/textlines/__init__.py 2009-03-12 04:38:42 UTC (rev 97954)
@@ -0,0 +1 @@
+from plone.z3cform.textlines.textlines import TextLinesFieldWidget
\ No newline at end of file
Modified: plone.z3cform/trunk/plone/z3cform/textlines/textlines.py
===================================================================
--- plone.z3cform/trunk/plone/z3cform/textlines/textlines.py 2009-03-12 03:36:02 UTC (rev 97953)
+++ plone.z3cform/trunk/plone/z3cform/textlines/textlines.py 2009-03-12 04:38:42 UTC (rev 97954)
@@ -54,14 +54,43 @@
# if the value is the missing value, then an empty list is produced.
if value is self.field.missing_value:
return u''
- return "\n".join(value)
+ return u'\n'.join(unicode(v) for v in value)
def toFieldValue(self, value):
"""See interfaces.IDataConverter"""
widget = self.widget
collectionType = self.field._type
+ if isinstance(collectionType, tuple):
+ collectionType = collectionType[-1]
if not len(value):
return self.field.missing_value
valueType = self.field.value_type._type
- values = [valueType(v) for v in value.split()]
- return collectionType(values)
\ No newline at end of file
+ if isinstance(valueType, tuple):
+ valueType = valueType[0]
+ return collectionType(valueType(v) for v in value.split())
+
+class TextLinesSetConverter(TextLinesConverter):
+ """Data converter for ITextLinesWidget operating on a set."""
+
+ zope.component.adapts(
+ zope.schema.interfaces.ISet, ITextLinesWidget)
+
+ def toWidgetValue(self, value):
+ """Convert from text lines to HTML representation."""
+ # if the value is the missing value, then an empty list is produced.
+ if value is self.field.missing_value:
+ return u''
+ return u'\n'.join(unicode(v) for v in sorted(value))
+
+class TextLinesFrozenSetConverter(TextLinesConverter):
+ """Data converter for ITextLinesWidget operating on a frozenset."""
+
+ zope.component.adapts(
+ zope.schema.interfaces.IFrozenSet, ITextLinesWidget)
+
+ def toWidgetValue(self, value):
+ """Convert from text lines to HTML representation."""
+ # if the value is the missing value, then an empty list is produced.
+ if value is self.field.missing_value:
+ return u''
+ return u'\n'.join(unicode(v) for v in sorted(value))
\ No newline at end of file
More information about the Checkins
mailing list