[Checkins] SVN: zc.datetimewidget/trunk/src/zc/datetimewidget/datetimewidget.py Fix broken _toFromValue methods. This needs tests.

Gary Poster gary at zope.com
Sun Apr 30 22:24:00 EDT 2006


Log message for revision 67776:
  Fix broken _toFromValue methods.  This needs tests.
  
  Also note that the functional tests were already failing before this change.  Contacting the author of the revisions now.
  

Changed:
  U   zc.datetimewidget/trunk/src/zc/datetimewidget/datetimewidget.py

-=-
Modified: zc.datetimewidget/trunk/src/zc/datetimewidget/datetimewidget.py
===================================================================
--- zc.datetimewidget/trunk/src/zc/datetimewidget/datetimewidget.py	2006-05-01 00:10:54 UTC (rev 67775)
+++ zc.datetimewidget/trunk/src/zc/datetimewidget/datetimewidget.py	2006-05-01 02:23:59 UTC (rev 67776)
@@ -80,7 +80,7 @@
         lang = self.request.locale.id.language
         lang = lang in LANGS and lang or 'en'
         if lang != 'en':
-            # en is always loadad via the resourcelibrary, so that all
+            # en is always loaded via the resourcelibrary, so that all
             # variables are defined in js
             # TODO: do not hardcode this
             langFile = '/@@/zc.datetimewidget/lang/calendar-%s.js' % lang
@@ -94,6 +94,7 @@
                            "datetime_format": self._format,
                            "langDef":langDef}
 
+
 class DatetimeWidget(DatetimeBase, textwidgets.DatetimeWidget):
     """Datetime entry widget."""
 
@@ -101,16 +102,13 @@
     _showsTime = "true"
 
     def _toFormValue(self, value):
-        dt = localizeDateTime(
-            super(DatetimeWidget, self)._toFormValue(value),
-            self.request)
-        return dt.strftime(self._format)
+        if not isinstance(value, datetime.date):
+            return super(DatetimeWidget, self)._toFormValue(value)
+        value = localizeDateTime(value, self.request)
+        return value.strftime(self._format)
         
-    
-
     def _toFieldValue(self, input):
         res = super(DatetimeWidget, self)._toFieldValue(input)
-        #import pdb;pdb.set_trace()
         if res is not self.context.missing_value:
             res = normalizeDateTime(res, self.request)
         return res
@@ -120,13 +118,15 @@
 
     displayWidth = 10
 
-    def _toFormValue(self, value):
-        return localizeDateTime(
-            super(DateWidget, self)._toFormValue(value), self.request)
-
     _format = '%Y-%m-%d'
     _showsTime = "false"
 
+    def _toFormValue(self, value):
+        if not isinstance(value, datetime.date):
+            return super(DateWidget, self)._toFormValue(value)
+        value = localizeDateTime(value, self.request)
+        return value.strftime(self._format)
+        
 class DatetimeDisplayBase(object):
 
     def __call__(self):



More information about the Checkins mailing list