Compare commits
No commits in common. "350a600ffc9cdaa512d8f36b7bf6cac2112a2a0a" and "0e5270f8d58fbb695e1744ff3c05ad7b66d16f0c" have entirely different histories.
350a600ffc
...
0e5270f8d5
1 changed files with 5 additions and 10 deletions
|
@ -7,12 +7,13 @@ from datetime import datetime
|
|||
from logging import getLogger
|
||||
from time import strptime, strftime
|
||||
from zope.browser.interfaces import ITerms
|
||||
from zope.i18n.format import DateTimeParseError
|
||||
from zope.i18n.locales import locales
|
||||
from zope.interface import implementer
|
||||
from zope.cachedescriptors.property import Lazy
|
||||
from zope.component import adapts
|
||||
from zope import component
|
||||
from zope.i18n.format import DateTimeParseError
|
||||
from zope.i18n.locales import locales
|
||||
from zope.schema.interfaces import IVocabularyFactory, IContextSourceBinder
|
||||
from zope.tales.engine import Engine
|
||||
from zope.tales.tales import Context
|
||||
|
@ -262,9 +263,9 @@ class DecimalFieldInstance(NumberFieldInstance):
|
|||
format = 'decimal'
|
||||
|
||||
def marshall(self, value):
|
||||
return self.display(value, pattern='0.00;-0.00')
|
||||
return self.display(value, pattern=u'0.00;-0.00')
|
||||
|
||||
def display(self, value, pattern='#,##0.00;-#,##0.00'):
|
||||
def display(self, value, pattern=u'#,##0.00;-#,##0.00'):
|
||||
if value is None:
|
||||
return ''
|
||||
if isinstance(value, str):
|
||||
|
@ -279,15 +280,9 @@ class DecimalFieldInstance(NumberFieldInstance):
|
|||
return fmt.format(value, pattern=pattern)
|
||||
return '%.2f' % value
|
||||
|
||||
def unmarshall(self, value, pattern='#,##0.00;-#,##0.00'):
|
||||
def unmarshall(self, value):
|
||||
if not value:
|
||||
return None
|
||||
view = self.clientInstance.view
|
||||
langInfo = view and getattr(view, 'languageInfo', None) or None
|
||||
if langInfo:
|
||||
locale = locales.getLocale(langInfo.language)
|
||||
fmt = locale.numbers.getFormatter(self.format)
|
||||
return fmt.parse(value, pattern=pattern)
|
||||
if ',' in value:
|
||||
value = value.replace(',', '.')
|
||||
return float(value)
|
||||
|
|
Loading…
Add table
Reference in a new issue