Thanks Hermann,

This still does not work for me.  The pattern = '#,##0.####' seems to have no effect on the converter. Perhaps I'm doing something wrong, I'm posting my setup below.

This most certainly have to be a bug in the system if you can't put 1.2345 into a decimal field, no?  If so is there a bug tracker for z3c.form where I can post this and get it fixed?

#interfaces.py
class IFixedDecimal(IDecimal):
    """Fixed decimal field."""
   
class FixedDecimal(schema.Decimal):
    interface.implements(
IFixedDecimal)
   
class ITaxLot(interface.Interface):
    """A tax lot"""
   
    quantity = FixedDecimal(
        title = u'Quantity',
        required = True)

#holding.py
class MyDecimalDataConverter(DecimalDataConverter):
    """Adapt decimal data converter"""
    adapts(IFixedDecimal, IWidget)

    # The amount of '#' after the '.' outlines the no. of decimal places
    pattern = '#,##0.####'  

#configure.zcml

  <includeOverrides file="overrides.zcml" />

#overrides.zcml

  <adapter factory=".holding.MyDecimalDataConverter" />


On Thu, Feb 11, 2010 at 3:21 AM, Hermann Himmelbauer <dusty@qwer.tk> wrote:
Am Mittwoch 10 Februar 2010 17:27:09 schrieb Mats Nordgren:
> I have an interface with a decimal field.  It validates fine for 1,2 and 3
> fractions but if I enter a decimal with 4 fractions I get validation error
> "The entered value is not a valid decimal literal."
>
> I'm using the pypi release of bluebream and z3c.form 2.3.2.

I remember that one - quite cumbersome. Try something like this:

# You should use the following interface for your forms:
class IMyDecimal(IDecimal):
   """Specify custom decimal interface"""

# Now create a custom data converter
class MyDecimalDataConverter(BaseDecimalDataConverter):
   """Adapt decimal data converter"""
   adapts(IMyDecimal, IWidget)
   # The amount of '#' after the '.' outlines the no. of decimal places
   pattern = '#,##0.####'

# And specify in overrides.zcml
 <adapter  factory="mymodule.MyDecimalDataConverter" />

This works for me.

Best Regards,
Hermann

--
hermann@qwer.tk
GPG key ID: 299893C7 (on keyservers)
FP: 0124 2584 8809 EF2A DBF9  4902 64B4 D16B 2998 93C7