web/formfields.py
changeset 4528 a51f37efc882
parent 4499 4f741341d96f
child 4544 d92aa3221c30
equal deleted inserted replaced
4527:67ab70e98488 4528:a51f37efc882
   622             self.widget.attrs.setdefault('size', 5)
   622             self.widget.attrs.setdefault('size', 5)
   623             self.widget.attrs.setdefault('maxlength', 15)
   623             self.widget.attrs.setdefault('maxlength', 15)
   624 
   624 
   625     def _ensure_correctly_typed(self, form, value):
   625     def _ensure_correctly_typed(self, form, value):
   626         if isinstance(value, basestring):
   626         if isinstance(value, basestring):
       
   627             value = value.strip()
       
   628             if not value:
       
   629                 return None
   627             try:
   630             try:
   628                 return int(value)
   631                 return int(value)
   629             except ValueError:
   632             except ValueError:
   630                 raise ProcessFormError(form._cw._('an integer is expected'))
   633                 raise ProcessFormError(form._cw._('an integer is expected'))
   631         return value
   634         return value
   653     def render_example(self, req):
   656     def render_example(self, req):
   654         return self.format_single_value(req, 1.234)
   657         return self.format_single_value(req, 1.234)
   655 
   658 
   656     def _ensure_correctly_typed(self, form, value):
   659     def _ensure_correctly_typed(self, form, value):
   657         if isinstance(value, basestring):
   660         if isinstance(value, basestring):
       
   661             value = value.strip()
       
   662             if not value:
       
   663                 return None
   658             try:
   664             try:
   659                 return float(value)
   665                 return float(value)
   660             except ValueError:
   666             except ValueError:
   661                 raise ProcessFormError(form._cw._('a float is expected'))
   667                 raise ProcessFormError(form._cw._('a float is expected'))
   662         return None
   668         return None
   667     format_prop = 'ui.date-format'
   673     format_prop = 'ui.date-format'
   668     etype = 'Date'
   674     etype = 'Date'
   669 
   675 
   670     def format_single_value(self, req, value):
   676     def format_single_value(self, req, value):
   671         if value:
   677         if value:
   672             return ustrftime(value, req.property_value(self.format_prop))
   678             return ustrftime(value.strip(), req.property_value(self.format_prop))
   673         return u''
   679         return u''
   674 
   680 
   675     def render_example(self, req):
   681     def render_example(self, req):
   676         return self.format_single_value(req, datetime.now())
   682         return self.format_single_value(req, datetime.now())
   677 
   683 
   678     def _ensure_correctly_typed(self, form, value):
   684     def _ensure_correctly_typed(self, form, value):
   679         if isinstance(value, basestring):
   685         if isinstance(value, basestring):
       
   686             value = value.strip()
       
   687             if not value:
       
   688                 return None
   680             try:
   689             try:
   681                 value = form._cw.parse_datetime(value, self.etype)
   690                 value = form._cw.parse_datetime(value, self.etype)
   682             except ValueError, ex:
   691             except ValueError, ex:
   683                 raise ProcessFormError(unicode(ex))
   692                 raise ProcessFormError(unicode(ex))
   684         return value
   693         return value