[Checkins] SVN: z3c.form/trunk/ Make error messages for number
parsing error more user-friendly.
Stephan Richter
srichter at cosmos.phy.tufts.edu
Thu Jul 19 14:30:45 EDT 2007
Log message for revision 78188:
Make error messages for number parsing error more user-friendly.
Changed:
U z3c.form/trunk/CHANGES.txt
U z3c.form/trunk/src/z3c/form/converter.py
U z3c.form/trunk/src/z3c/form/converter.txt
-=-
Modified: z3c.form/trunk/CHANGES.txt
===================================================================
--- z3c.form/trunk/CHANGES.txt 2007-07-19 18:22:08 UTC (rev 78187)
+++ z3c.form/trunk/CHANGES.txt 2007-07-19 18:30:45 UTC (rev 78188)
@@ -2,6 +2,12 @@
CHANGES
=======
+Version 1.6.0 (?/??/2007)
+-------------------------
+
+- Feature: Provide more user-friendly error messages for number formatting.
+
+
Version 1.5.0 (7/18/2007)
-------------------------
Modified: z3c.form/trunk/src/z3c/form/converter.py
===================================================================
--- z3c.form/trunk/src/z3c/form/converter.py 2007-07-19 18:22:08 UTC (rev 78187)
+++ z3c.form/trunk/src/z3c/form/converter.py 2007-07-19 18:30:45 UTC (rev 78188)
@@ -88,6 +88,7 @@
"""A general data converter for numbers."""
type = None
+ errorMessage = None
def __init__(self, field, widget):
super(NumberDataConverter, self).__init__(field, widget)
@@ -108,25 +109,28 @@
try:
return self.formatter.parse(value)
except zope.i18n.format.NumberParseError, err:
- raise FormatterValidationError(err.args[0], value)
+ raise FormatterValidationError(self.errorMessage, value)
class IntegerDataConverter(NumberDataConverter):
"""A data converter for integers."""
zope.component.adapts(
zope.schema.interfaces.IInt, interfaces.IWidget)
type = int
+ errorMessage = _('The entered value is not a valid integer literal.')
class FloatDataConverter(NumberDataConverter):
"""A data converter for integers."""
zope.component.adapts(
zope.schema.interfaces.IFloat, interfaces.IWidget)
type = float
+ errorMessage = _('The entered value is not a valid decimal literal.')
class DecimalDataConverter(NumberDataConverter):
"""A data converter for integers."""
zope.component.adapts(
zope.schema.interfaces.IDecimal, interfaces.IWidget)
type = decimal.Decimal
+ errorMessage = _('The entered value is not a valid decimal literal.')
class CalendarDataConverter(BaseDataConverter):
Modified: z3c.form/trunk/src/z3c/form/converter.txt
===================================================================
--- z3c.form/trunk/src/z3c/form/converter.txt 2007-07-19 18:22:08 UTC (rev 78187)
+++ z3c.form/trunk/src/z3c/form/converter.txt 2007-07-19 18:30:45 UTC (rev 78188)
@@ -165,7 +165,7 @@
Traceback (most recent call last):
...
FormatterValidationError:
- ("Not a valid number for this pattern u'#,##0.###;-#,##0.###'.", u'fff')
+ (u'The entered value is not a valid integer literal.', u'fff')
The formatter validation error derives from the regular validation error, but
allows you to specify the message that is output when asked for the
@@ -194,6 +194,14 @@
>>> floatdc.toFieldValue(u'10,239.43')
10239.43
+The error message, however, is customized to the floating point:
+
+ >>> floatdc.toFieldValue(u'fff')
+ Traceback (most recent call last):
+ ...
+ FormatterValidationError:
+ (u'The entered value is not a valid decimal literal.', u'fff')
+
The decimal converter works like the other two before.
>>> money = zope.schema.Decimal()
@@ -215,7 +223,15 @@
>>> decimaldc.toFieldValue(u'10,239.43')
Decimal("10239.43")
+Again, the error message, is customized to the floating point:
+ >>> floatdc.toFieldValue(u'fff')
+ Traceback (most recent call last):
+ ...
+ FormatterValidationError:
+ (u'The entered value is not a valid decimal literal.', u'fff')
+
+
Date Data Converter
-------------------
More information about the Checkins
mailing list